Find unmatched rows
Bank versus ledger match
Compare a bank CSV with your cashbook CSV, confirm the pairs that match and export the rows left unmatched. Runs in your browser.
This tool processes your file and entries in this browser tab, without uploading or saving them.
Bank CSV
UTF-8 .csv or .txt, up to 5 MB. File contents never leave this tool.
Cashbook CSV
UTF-8 .csv or .txt, up to 5 MB. File contents never leave this tool.
Privacy and clearing your input
This tool does not send your file contents to a server or save them in browser storage. Use Clear or reload to clear the active input. Navigating away and Back may restore uncleared contents. Download and print actions, where offered, create copies only when you choose them. Your browser manages temporary memory and any separate print window. The PDF converter has its own upload workflow.
Use two lists of the same real account and currency. This is a limited review of supplied rows, not an audit or accounting advice. Every pair needs your confirmation.
Bank columns and conventions
If mapped, every account and currency cell must exactly match its label above, including case and spaces. Split mixed files first. The two account labels can differ only after you confirm they mean the same real account.
Cashbook columns and conventions
If mapped, every account and currency cell must exactly match its label above, including case and spaces. Split mixed files first. The two account labels can differ only after you confirm they mean the same real account.
Choose what counts as a candidate
Reference-first keeps exact, case-sensitive reference and amount pairs inside the date window. Amount-only fallback is considered only if neither row has a reference match. Empty references never match each other as references. Changing inputs or matching settings clears all pair decisions.
Files read: 0 bank / 0 cashbook data records.
Format: not ready. Resolve file issues, confirm both mappings and confirm the account.
Matching: not calculated.
Compare a bank CSV with an independently kept cashbook for the same account. Review proposed pairs, confirm the ones supported by your records, and keep the exceptions. Nothing is posted to your books.
By AnyStatement
Published , 5 min read
Start with two independent lists
A bank export and a cashbook export show the same account from different records. This tool looks for equal signed amounts inside your chosen date window. It does not treat the second copy of the bank export as independent evidence, and it cannot tell you whether either file is complete.
Use your bank's native CSV and your accounting system's own reconciliation workflow when they meet the need. For an offline comparison, load both CSVs here, map their columns separately and check the normalized preview. Dates and money direction need an explicit choice. Positive output amounts mean money into the account; negative amounts mean money out.
Confirm that the two account labels mean the same real account. Different currencies cannot be matched. If either file has account or currency columns, map them: every value must match that file's label exactly. Otherwise your declaration is the only account and currency information the tool has.
Equal amounts are a starting point
The default window is zero, so dates must be equal. You can widen it to seven calendar days either way, including across month-end. The cashbook-minus-bank date gap is shown for each candidate. This is not a business-day or bank-holiday calculation.
With amount-and-date matching, two equal payments can compete for the same row. They stay in the ambiguous list rather than becoming whichever pair sorts first. Only rows with no competing candidate on either side appear as one-to-one proposals. You can confirm a specific ambiguous pair after checking supporting records, but each row can belong to only one confirmed pair.
Reference-first mode prioritizes equal, nonblank references and amounts inside the same date window. References are case-sensitive after trimming outer whitespace. Amount-only fallback applies only when neither endpoint has a reference match. Duplicate references are retained with a warning, and an empty reference is not evidence of a match. Descriptions are shown for your review, not scored by a fuzzy-matching model.
Changing inputs, mappings, account confirmation, precision or matching settings clears pair decisions. You can undo a pair without editing either source file. One-to-many payments, tolerance matching and combined payout fees are outside this tool's scope.
Two outstanding rows explain a four-dollar difference
Load example contains fictional USD records. Both lists have a deposit of 1,250.00, supplies of -42.50, utilities of -157.35 and a refund of 19.99. These four common entries total 1,070.14. The bank adds a -12.00 fee; the cashbook instead has an outstanding -8.00 payment.
Confirm the four proposed pairs. The bank then has one unmatched row totaling -12.00 and the cashbook has one totaling -8.00. Bank net movement is 1,058.14, cashbook net movement is 1,062.14, and bank minus cashbook is -4.00. That is not one missing four-dollar transaction: it is the net of two separate entries.
Starting each fictional list at 1,000.00 gives a bank closing balance of 2,058.14 and a cashbook closing balance of 2,062.14. The bridge is 2,058.14 - (-12.00) + (-8.00) = 2,062.14. Removing the bank-only fee adds 12.00; including the cashbook-only payment subtracts 8.00. The unexplained difference is 0.00, but the fee and payment still need review.
A balance bridge is not a balancing entry
When you supply both closing balances, the statement starts with the bank balance, subtracts the bank-only signed total, then adds the cashbook-only signed total. It compares that calculated balance with your entered cashbook balance. All amounts use exact integer minor units at your chosen precision, with no rounding.
The two balances must share a cutoff and a consistent cash perspective. Include earlier outstanding items needed at that cutoff: a current-month export alone might omit a check entered last month. A balance discrepancy that survives the bridge is shown separately as an unexplained difference. It is never added as a plug to make the statement appear to balance.
Bank-only and cashbook-only mean not confirmed, so they include candidates you have not reviewed yet. They do not establish which record needs a correction. Even an exact bridge can hide offsetting errors or two equally incomplete files. This is a workpaper, not an audit, accounting advice, reconciliation certification, fraud check or document-authenticity test.
What stops the calculation
Each input is a UTF-8 CSV or pasted table, up to 5,000,000 bytes. The combined limit is 10,000 data records, with comma, semicolon, tab or pipe separators. This tool does not read Excel workbooks, PDFs or live bank connections. Save a working copy as CSV first.
Blank rows, repeated headers, subtotal-like labels, malformed dates or amounts, mismatched widths and encoding replacement characters block matching. The original-record preview retains readable rows, including problems. Fix a working copy rather than deleting inconvenient exceptions. No transaction is silently removed from a calculation.
Choose zero through six decimal places to fit your currency. Excess precision is rejected. Dates with a trailing time retain the printed calendar date without timezone conversion, with a visible issue. Two-digit years follow the displayed 69 cutoff, so use four-digit years where possible. Candidate construction stops above 50,000 pairs; narrow the date window or use smaller periods rather than accepting a truncated result.
Export a review copy, not new postings
Your file and the values you enter are processed in this browser tab. They are not uploaded or sent to analytics. We do not save them between visits. Downloads you choose to save remain on your device.
Clear removes active inputs, entered balances and decisions. It is not a secure memory wipe; Back navigation can restore uncleared state. A print preview is a separate local tab with its own copy, and downloaded files remain until you remove them.
The printable exception summary omits descriptions, account labels and original records. It still contains financial totals. Detailed CSVs contain source lines, descriptions and original cells, so inspect them before sharing. Confirmed-pair exports record the matching reason, date difference and whether the pair was originally ambiguous.
Exports use fresh CSV quoting and line endings. Formula-like text receives an apostrophe prefix while normalized negative amounts remain numeric. Original amount cells are preserved as protected text when needed, not substituted for normalized amounts. This follows the shared CSV safety policy; no export is guaranteed safe in every spreadsheet or after save-and-reopen. These are review files, not posting or accounting-import files.
How the example was checked
We recomputed the fictional amounts with Python Decimal and tested the matching and export logic. We opened RFC 4180 (October 2005) and OWASP's CSV injection guidance on 18 October 2026. OWASP showed no update date and warns that spreadsheet save-and-reopen behavior can defeat formula protection. No live bank account, accounting import or desktop spreadsheet was tested for this tool.
If the bank side exists only as a PDF
First ask for the bank's native CSV, or prepare a checked working list manually. If only PDFs remain, AnyStatement's separate PDF conversion workflow can help you prepare transaction data for review. That workflow uploads the selected PDFs; this local tool does not pass either CSV to it. 3 pages a day without an account or card. The free allowance is shared per network and resets at midnight UTC. Conversion is a separate upload; this tool does not send its contents there.