Claude vs ChatGPT for Bookkeeping: A Test You Can Run on Bank Data

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Claude vs ChatGPT for Bookkeeping: A Test You Can Run on Bank Data.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Claude vs ChatGPT for Bookkeeping: A Test You Can Run on Bank Data.

Neither is proven better, so test rather than guess. Anonymise one month of a client's bank export, plant a few known errors, give both tools the same prompt and chart of accounts, and keep the one with fewer wrong categories and no missed duplicates. Both can categorise routine lines; where they may differ is arithmetic, duplicates and ambiguous payees.

The file below is a 26-line March export for an invented landscaping company, built so every right answer is known in advance. It holds a possible duplicate, a refund that looks like income, a transfer that is not an expense and three lines only the owner can classify. You can paste it into both tools in about ten minutes and score the results the same afternoon.

Follow me on Instagram@sagnikteaches

The 26-line file and its answer key

Save the block below as a CSV. Negative amounts are money out. The opening balance on the statement was 8,420.00 and the closing balance 9,655.26. All names and figures are invented.

Connect on LinkedInSagnik Bhattacharya
date,description,amount
2026-03-02,CARD PAYOUT,1240.00
2026-03-02,FUEL STATION 4471,-68.40
2026-03-02,FUEL STATION 4471,-68.40
2026-03-03,GREENFIELD NURSERY SUPPLIES,-412.50
2026-03-03,TRANSFER TO SAVINGS 8841,-1000.00
2026-03-04,SCHEDULING SOFTWARE SUBSCRIPTION,-49.00
2026-03-05,CUSTOMER PMT REF 1043,385.00
2026-03-06,SUPERMARKET 2210,-86.15
2026-03-06,GREENFIELD NURSERY SUPPLIES REFUND,112.00
2026-03-09,VAN FINANCE DD,-385.00
2026-03-09,INV 2917 TURF SUPPLY CO,-540.00
2026-03-10,CARD PAYOUT,960.00
2026-03-11,PUBLIC LIABILITY INS,-94.30
2026-03-12,MOBILE PHONE CO,-37.99
2026-03-13,HIRE SHOP MINI DIGGER,-165.00
2026-03-16,CUSTOMER PMT REF 1051,1150.00
2026-03-17,FUEL STATION 2290,-71.20
2026-03-18,WAGES CASUAL LABOUR,-420.00
2026-03-19,CASH WITHDRAWAL ATM,-200.00
2026-03-20,ONLINE MARKETPLACE ORDER,-58.60
2026-03-23,CARD PAYOUT,1375.00
2026-03-24,ACCOUNTANT FEE,-150.00
2026-03-26,WAGES CASUAL LABOUR,-420.00
2026-03-27,BANK CHARGES,-12.00
2026-03-30,GREENFIELD NURSERY SUPPLIES,-388.20
2026-03-31,CUSTOMER PMT REF 1058,640.00

Here is the answer key at category level. Check it yourself before using it; the totals add up to a net movement of 1,235.26, which is the closing balance less the opening balance.

Subscribe on YouTube@sagnikteaches
CategoryLinesTotalNote
Sales65,750.00Three card payouts and three customer payments; the refund is not sales
Fuel3-208.00The first two lines are a possible duplicate
Materials4-1,228.70Net of the 112.00 refund
Transfer (not P&L)1-1,000.00Savings transfer
Software and phone2-86.99
Query (owner to confirm)3-344.75Supermarket, cash withdrawal, online order
Loan repayment1-385.00Interest and capital need the lender's statement
Insurance1-94.30
Equipment hire1-165.00
Wages2-840.00Two identical payments eight days apart, a legitimate repeat
Professional fees1-150.00
Bank charges1-12.00

Money in totals 5,862.00 (the 5,750.00 of sales plus the 112.00 refund), money out totals 4,626.74, and the closing balance is 8,420.00 + 5,862.00 - 4,626.74 = 9,655.26. Those three numbers are your arithmetic test. The key also has two lines that look alike but differ: the two fuel payments might be a double charge, while the two wage payments are a genuine repeat. A tool that treats both pairs the same way has not thought about them.

The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

One prompt for both tools

Open a fresh chat in each tool, paste the CSV below the prompt, and change nothing between them. The restrictions in the prompt are where you learn the most, because they remove the easy ways to look good.

You are assisting a bookkeeper. Below is one month of bank transactions for a small landscaping company (CSV: date, description, amount; negative = money out). Opening balance 8420.00.
Chart of accounts, use only these: Sales; Fuel; Materials; Software and phone; Insurance; Equipment hire; Wages; Professional fees; Bank charges; Loan repayment; Transfer (not P&L); Query (owner to confirm).
Tasks:
1. Return a table: date, description, amount, category, confidence (high/medium/low), note.
2. Do not merge, delete or net any lines. If two lines look like duplicates, keep both and mark "possible duplicate".
3. If a line could be personal or needs a document to classify, use Query. Do not guess.
4. Then give total money in, total money out, closing balance and total by category, showing how you calculated each.
5. State how many lines you processed.

Rule 3 is the one that separates tools that know what they do not know. Rule 5 is a cheap integrity check: if you pasted 26 lines and the tool processed 25, one vanished. If either tool offers to run code, let it, and ask it to show the code. Arithmetic done by running code on the file is auditable; arithmetic produced as a fluent paragraph is not.

What each trap is testing

TrapCorrect behaviourFailure to look for
Two fuel payments, same day, same amountKeep both, mark possible duplicate, askMerges them silently, or deletes one
Nursery refund of 112.00Materials credit; sales stays 5,750.00Counts it as income, so sales read 5,862.00
Transfer to savingsTransfer, excluded from profitLists 1,000.00 as an expense
Van finance direct debitLoan repayment, note that interest needs splittingCalls it all vehicle expense
Supermarket, cash withdrawal, online orderQuery for all threeConfidently assigns Materials or Sundry
Card payoutsSales, noting payouts are after processor feesIgnores that gross sales and fees are hidden

The failures in the third column are well-known weaknesses of general-purpose assistants, not results from a run of mine. Whether either product falls into them on your file is the point of the test.

A formatting trap deserves its own warning. If your real export writes amounts such as 1,150.00 without quotation marks, a CSV reader splits the field at the comma. The tool may then read the amount as 1 or as 150.00, with no error message. Before you upload a real client file, open it in a text editor, find a figure above a thousand, and confirm it is quoted or has no separator. Also convert amounts in brackets such as (68.40), and separate debit and credit columns, into one signed column, or tell the prompt how to read them.

A scoring card with a maximum of 46

Score each tool on the same card so the result is a number, not an impression.

  • Line categories, up to 26. One point per line in the right category. For the three Query lines, only a Query label counts.
  • Traps flagged, up to 12. Two points for each of the six traps in the table above where the note says what is unusual.
  • Arithmetic, up to 8. Two points each for money in, money out, closing balance, and category totals that agree with each other.
  • Penalties. Minus three for every line merged, deleted or netted, and minus three for an invented line. Minus two if the stated line count is wrong.

Here is a hypothetical result, to show how the card works. The figures are invented and describe neither product.

Illustrative onlyLinesTrapsArithmeticPenaltiesTotal
Tool A2410 (5 flagged)8042 of 46 (91%)
Tool B256 (3 flagged)4-3 (merged the fuel lines)32 of 46 (70%)

Tool B categorised more lines correctly and still scored far lower, because it merged the possible duplicate, reported two wrong totals and flagged fewer oddities. For a bookkeeper that ordering is right. A wrong category costs a minute to fix on review. A silently merged line changes the balance and may not be noticed until reconciliation fails.

Reading a first response line by line

Here are five rows from an illustrative response, with the review notes you would make. They are written to show the kinds of slips to look for and are not output from either product.

LineTool saysReview note
2 March, fuel station 4471, -68.40 (first)Fuel, highFine
2 March, fuel station 4471, -68.40 (second)Fuel, high, "possible duplicate"Correct: kept both and flagged
6 March, nursery supplies refund, +112.00Sales, mediumWrong: a refund reduces Materials. Check whether Sales now shows 5,862.00
19 March, cash withdrawal, -200.00Wages, highWrong to be confident: should be Query
9 March, van finance direct debit, -385.00Loan repayment, medium, "split needs lender statement"Correct and useful

Notice the two errors carry different confidence labels. The refund error is labelled medium, which at least invites a look. The cash withdrawal is labelled high, which does not. Add a calibration check to the scoring card: of all lines the tool marked high confidence, how many were wrong? The target is none. A tool that is wrong occasionally but says so is far easier to supervise than one that is wrong rarely and sounds certain every time. If a tool's high-confidence labels cannot be trusted, you will end up reviewing every line anyway, and the time saving disappears.

Time and cost of running this on real clients

The test itself takes about ten minutes to run and half an hour to score. Whether the approach pays depends on volume, so work it out with your own numbers. Suppose a small client has 120 bank lines a month. Categorising by hand at about 40 seconds a line takes 80 minutes. With a first pass from an assistant, you review each line in about 12 seconds (24 minutes) and fix roughly one line in five at 40 seconds each (24 fixes, 16 minutes), for 40 minutes in all. That saves 40 minutes per client per month. Across 15 clients it is 10 hours a month, set against two seats at $25 each, or about $50. All the times and the one-in-five error rate are assumptions for illustration, and the error rate is precisely what your test measures.

The same sum shows why a high error rate defeats the purpose. If one line in three needed fixing, the review would take 120 x 12 seconds (24 minutes) plus 40 fixes at 40 seconds (about 27 minutes), roughly 51 minutes, leaving a saving of under half an hour. Put your measured error rate into the sum before you commit to a plan, and re-measure after a few months of real use.

Three realistic misses and how they show up

The three slips below are worked through on the test file to show how each would surface; none is a result from a recorded run.

A refund counted as income. Suppose the tool reports sales of 5,862.00 instead of 5,750.00 and materials of 1,340.70 instead of 1,228.70, each 112.00 too high. Net profit is unchanged, which hides the error, but a gross margin report would look better than it should. You catch it by comparing the sales total with the sum of the customer and payout lines, or by asking the tool to list every line it put in Sales.

A shifted column. With an unquoted 1,150.00, the customer payment on 16 March might be read as 150.00. Money in is then 4,862.00, not 5,862.00, and the closing balance misses by exactly 1,000.00, a round gap that points to a parsing fault, not a categorisation fault. The cure is in the export, not the prompt.

A confident guess on a Query line. The 200.00 cash withdrawal is filed as Wages because casual labour is paid in cash in this business, with confidence high. It may even be right. But the bank line says nothing about why the cash left, and filing it as an expense without the owner's confirmation turns an assumption into a record. Rule 3 in the prompt exists to prevent exactly this.

When the two tools disagree on a line

The lines where the tools differ are the most informative part of the exercise, so list them before you score anything. Say one assistant files the hire-shop payment for the mini digger under Equipment hire and the other under Materials. Both are defensible, and your chart of accounts decides which is right for this client. Record the right category for this client, then look for patterns across all the disagreements. If one tool consistently reaches for Materials when the payee is unfamiliar and the other reaches for Query, you have learned about their defaults, and the Query habit is the safer one for a first pass. Then ask each tool to explain its reasoning for the disagreement lines only. The explanations can expose an assumption, such as treating a hire charge as a consumable, which you can fix with one line in the client's rules.

Export shapes that trip up either tool

Real exports are messier than the 26-line file. Many banks give separate debit and credit columns instead of one signed amount, so a fuel payment appears as 68.40 in the debit column and nothing in the credit column. A tool that reads the debit figure as a positive amount turns every expense into income, and the closing balance then misses by twice the total of your debits. Others print negatives in brackets, or put dates in day-first and month-first formats within one file. Add a sentence to the prompt that spells out the shape of your file:

This file has separate debit and credit columns. Treat debit as money out (negative) and credit as money in (positive). Dates are day-month-year. Confirm the closing balance reconciles before categorising anything.

Putting the reconciliation first is deliberate. If the opening balance plus credits minus debits does not equal the closing balance, the file was misread, and there is no point categorising rows built on wrong amounts. Make it a standing step: reconcile, then categorise, then total.

Plans, privacy and what to remove first

For a free run, ChatGPT Free allows 3 file uploads a day, enough for one CSV, and Claude Free covers a file this size too. For real client files, use a business plan: ChatGPT Business and Claude Team both say they do not train on your content by default, at $20 a seat a month billed annually or $25 monthly, with two seats minimum. On personal plans, both vendors have a model-improvement setting, and both have a chat mode that is not used for training (Claude's Incognito, ChatGPT's Temporary Chat). Treat that as a backstop, not a licence to upload.

Anonymise first. Remove account numbers, bank codes and card digits. Replace the client's name and any customer names in payment references with a code, because references often carry a person's full name. Keep supplier names where they are businesses, since they are what drives categorisation. Hold the mapping in your own system and put a line in your engagement letter about AI-assisted processing. For a step-by-step method that strips names, account numbers and payment references, see how to anonymise client data before pasting it into AI.

Round two: teach it this client's rules, then run April

Categorisation improves most when you stop asking the tool to infer your client's habits. Both products let you save instructions in a Project: Claude Free allows up to five Projects, and ChatGPT Projects exist on every plan. Write the client's payee rules once, then run the next month's file against them. A filled-in set for this client:

Client rules: landscaping company
- GREENFIELD NURSERY SUPPLIES and TURF SUPPLY CO: Materials. Refunds from them reduce Materials.
- FUEL STATION: Fuel. Same-day identical amounts: keep both, mark possible duplicate.
- CARD PAYOUT and CUSTOMER PMT: Sales. Payouts are after processor fees, so note gross is unknown.
- TRANSFER TO SAVINGS: Transfer, never an expense.
- SUPERMARKET, ONLINE MARKETPLACE, CASH WITHDRAWAL: Query.
- VAN FINANCE DD: Loan repayment. Interest and capital need the lender statement.
- WAGES CASUAL LABOUR: Wages.
If a payee is not listed here, use Query.

Score April on the same card. Two things should happen: line accuracy rises, because the rules do the guessing, and the Query list shrinks only when you answer it. If a tool's accuracy does not improve with explicit rules, it is not following instructions well, and that matters more than any first-run score. Claude shares Projects only on Team and Enterprise plans, while OpenAI says ChatGPT project sharing works on every plan, so a practice where two bookkeepers share client rule sets should check that before choosing.

Pass or fail gates, then the decision

Before you add up scores, apply two gates that no total can outweigh. First, a tool that merges or deletes a line has failed, because it altered the evidence. Second, a tool whose closing balance does not reconcile on two attempts has failed, because you cannot trust any figure it reports. These are the two defects that a reviewer will not see in a quick read of a clean-looking table.

For tools that pass both gates, the rule is simple. Take the higher total on the 46-point card, averaged over two different months. If the totals are within about five points, choose on cost, sharing and workflow. A practice that lives in a spreadsheet may prefer the tool whose Excel add-in or extension its staff will use; one that runs many clients may care more about Project sharing and seat management. If the gap is bigger than five points, take the higher scorer and move on.

Keep one more realistic expectation in view. Even the better tool will leave Query lines, will not know your client's habits on day one, and cannot see what the bank line leaves out. Its job is a first-pass table that you review, not a posted ledger. Dedicated bookkeeping software with bank feeds and rules may beat either assistant on volume work, which the receipt capture and bank categorisation setup explores, and the matching step is covered in how to automate bank reconciliation and check the matches. If you are weighing whether to hand data access to a tool at all, the safety guide to connecting AI tools to a business bank account covers that decision. And for applying the same method to any vendor's own claims, testing a bookkeeping tool on your own client files is the wider protocol.

Questions bookkeepers ask before running the test

Do I need a paid plan to run this test?

No. The test is one CSV file and a few prompts, which fits inside the free allowance of both tools, though ChatGPT Free allows only 3 file uploads a day. A paid plan matters later, when you process many clients' files or want shared Projects, not for the first comparison.

Why use CSV instead of an Excel file?

CSV removes a variable. Claude accepts CSV directly but needs code execution and file creation switched on to accept XLSX, and spreadsheet formatting such as merged cells or hidden rows can confuse any tool. Export a plain CSV, and check that amounts with thousands separators are quoted.

Should I let either tool connect straight to a client's bank?

Not for this job. Uploading an anonymised export keeps you in control of exactly what the tool sees, and it leaves a file you can audit. Direct connections give a tool standing access to live account data, which is a much bigger decision with its own checks.

How often should I repeat the test?

Repeat it whenever a vendor changes plans or models, and at least every few months, using a fresh month of data. Keep the same scoring card so results stay comparable. A tool that was accurate in the spring can behave differently after an update, and you will only notice if you measure.

Further reads

Sources: Claude's help article on uploading files, OpenAI's file-uploads FAQ, claude.com/pricing, openai.com/business/pricing, Anthropic and OpenAI privacy pages (checked 1 November 2026). The bank file is invented for illustration.

Want the test set up on your own client files?

On a 1:1 call we can build a safe anonymised test file from your typical client, agree the scoring card, and decide where a human check stays in the workflow.

Book a 1:1 call with me