We gave ChatGPT and Claude 60 fictional bank transactions, a chart of accounts and 8 coding rules. Both flagged every risky line, and both coded all 11 client and Stripe deposits to revenue.
| Check | ChatGPT | Claude |
|---|---|---|
| All 60 rows back, amounts unchanged | ! 60 of 60, IDs renumbered | ! 60 of 60, IDs renumbered |
| No invented accounts | ✓ None | ✓ None |
| Rules 1–7 lines on the right account (of 29) | ! 28 of 29 | ! 28 of 29 |
| Rule 8: Stripe payouts and client deposits (of 11) | ✗ 0 of 11 | ✗ 0 of 11 |
| Ambiguous vendors not coded (of 8) | ! 8 of 8, labelled review | ! 8 of 8, labelled review |
| Always-review items flagged (of 5) | ✓ 5 of 5 | ✓ 5 of 5 |
| No-rule items flagged, not guessed (of 7) | ✓ 7 of 7 | ✓ 7 of 7 |
| Score | 40 / 60 | 40 / 60 |
What we did
Assign each transaction to an account from the chart of accounts only, following the coding rules and the label order on the Coding rules tab. For each one, give the rule number used, or the label Ambiguous or Needs accountant review. Never invent an account. Return a table: ID, Date, Description, Amount, Account, Rule or Label.
The evidence
Both tools got the same two files and the same prompt in a fresh chat. Screenshots are the tools’ own output, unedited.
Rule 8: deposits coded to revenue
Rows 2, 4, 13, 23, 29, 33, 39, 44, 51, 55 and 60 are Stripe payouts and client ACH deposits. The rules send them to 1050 Stripe clearing and 1100 Accounts receivable. Both tables show 4000 Fee revenue on every one.
ChatGPT Plus


Claude Pro



Both tools coded all 11 Rule 8 lines to 4000 Fee revenue. The rule sends Stripe payouts to 1050 Stripe clearing and client ACH deposits to 1100 Accounts receivable. Booked as revenue, those deposits would overstate income and leave the client invoices open.
Both flagged Uber Eats as Ambiguous, although the rules name it under R5 (Meals) and say the more specific merchant wins.
Both labelled the 8 ambiguous vendors (Amazon, Costco, Venmo, PayPal and a check with no payee) Needs accountant review instead of Ambiguous. Nothing was coded, so the result was safe, but the label order was not followed.
Neither kept the T-001 to T-060 IDs from the file. ChatGPT said the CSV had no IDs. ChatGPT's summary chart also disagreed with its own table: it counted 37 lines coded by rule where the table shows 39.
Both tools were careful where the risk is highest: no owner draw, loan payment, purchase over $2,500 or uncovered expense was coded on a guess.
They slipped on the rule that sends money to balance-sheet accounts. Check every deposit line yourself, and say in the prompt that client deposits and processor payouts never go to revenue.
Work from the line-by-line table, not a summary chart, and ask for the original ID on every row so you can match the output to the file.
Method, limits and reruns
Question: Given a chart of accounts and coding rules, does the AI flag the lines it cannot code, or guess? · Data: Fictional October 2026 bank export: 60 transactions, a chart of accounts and 8 coding rules. 40 lines follow a rule; 20 need a flag (8 ambiguous vendors, 12 for accountant review). Answer key built before testing. · Runs: 1 run per tool, fresh chat
One fictional file of 60 lines and one run per tool on October 25, 2026. Results can change when the tools update, so this test is dated and will be rerun.
Not tested: real bank feeds, larger files, other charts of accounts, or bookkeeping software's own AI categorization.
| Tool | Plan | Mode | Version |
|---|---|---|---|
| ChatGPT | Plus | Regular chat, 2 files attached | Oct 25, 2026 |
| Claude | Pro | Regular chat, 2 files attached | Oct 25, 2026 |
| Run date | Plan and mode | Change |
|---|---|---|
| Oct 25, 2026 | ChatGPT Plus, Claude Pro | First run |