Not the job you came for? Tell me what you need
One says one number, the other says another. Upload both and get the list of what's actually different — line by line, with the arithmetic.
A sales ledger against the payouts that came back from the bank, run through the same comparison your files go through — not a recording. They disagree in the three ways two files can, and the sum at the bottom is the point: every term in it names a row you can go and look at.
Invoice,Customer,Amount INV-1001,Northside Cafe,240.00 INV-1002,Harbour Fitness,485.00 INV-1003,Kembla Plumbing,180.00 INV-1004,Northside Cafe,320.50 INV-1006,Bellambi Dental,75.00 INV-1007,Harbour Fitness,610.00
Reference,Paid,Amount INV-1001,04/08/2026,240.00 INV-1002,04/08/2026,460.00 INV-1004,05/08/2026,320.50 INV-1005,05/08/2026,90.00 INV-1006,06/08/2026,75.00 INV-1007,07/08/2026,610.00
| What we found | Reference | Detail |
|---|---|---|
| Different amount | INV-1002 |
485.00 in the ledger, 460.00 paid |
| Only in sales-ledger.csv | INV-1003 |
180.00 invoiced, no payment against it |
| Only in bank-payouts.csv | INV-1005 |
90.00 paid, nothing invoiced for it |
| The differences | Same reference in both files, different amount — with the gap on each one. |
| What's missing | Rows in one file and not the other, both ways round. |
| The arithmetic | The findings add back up to the difference between the two totals, so you can check that nothing was skipped. |
We look for a reference the two files share — an invoice number, an order number, a receipt number — and pair rows one to one. The columns don't have to be named the same thing in both files, and case or a stray space won't stop a match.
It won't work out that one deposit settles three invoices. That means guessing which rows add up to it, and two unrelated ones that happen to sum would pair up looking exactly like a real match. If there's no shared reference we'll say so rather than guess.
This finds where two files disagree about the same rows. If yours are different rows — one file a month, say — you want merging them into one instead, which stacks them and accounts for every row. Two jobs, and which one you need depends on whether your files describe the same transactions or different ones.