Tools · Finance

Reconciliation workbench

Books versus bank, the monthly ritual — done in minutes instead of an afternoon, and done without your client’s bank data ever leaving your machine. Drop two CSVs; get exact, near-date and combined matches, the exceptions that need your judgement, and a difference that balances to the cent.

Your files never leave this browser. Parsing and matching run on your device; this tool has no upload, no account and no sync — deliberately, because client bank data should not be in anyone else’s custody, including ours. Verify it: open your browser’s network tab while you work.

Your books

Bank statement

How does a bank reconciliation work?

A bank reconciliation works by proving that the difference between your books balance and your bank balance is fully explained by known timing differences and errors — not by anything missing. You total each record independently, then account for every item in one that is not in the other: outstanding items in your books, unrecorded items from the bank, and any amount that was keyed differently in the two. When those adjustments sum back to the exact difference between the two totals, the accounts are reconciled.

books total − bank total =
      Σ (in books, not in bank)
    − Σ (in bank, not in books)
    + Σ (book amount − bank amount) for mismatches
books total
The signed sum of every line in your ledger export — money in positive, money out negative
bank total
The signed sum of every line on the bank statement, the same way
in books, not in bank
Outstanding cheques and deposits in transit — recorded by you, not yet cleared by the bank
in bank, not in books
Bank fees, interest and direct debits that hit the account before you entered them
mismatches
The same transaction present in both, but for a different amount — a keying error in one system

The equation is the definition, not a rule of thumb: a reconciliation is precisely the demonstration that this identity holds to the cent. If the two sides do not match, the account is not reconciled and the residual is the amount still unexplained — never a figure to quietly write off. This tool computes both sides independently and shows the "fully explained" badge only when they agree.

One shortcut worth knowing lives inside the mismatch term: when an amount is out by a figure divisible by 9 (99.99 keyed as 99.00, 540 as 450), the most likely cause is two transposed digits rather than two different transactions. The tool flags those automatically, because the fix is a one-character edit in one system, not an investigation.

Questions people actually ask

Why does it matter that files are not uploaded?
Because a client’s bank statement is sensitive data that many accountants and bookkeepers would rather not hand to third parties — engagement letters and firm policy often restrict it — while every cloud converter, SaaS reconciler and AI chatbot requires precisely that upload. This tool parses and matches entirely inside your browser: there is no upload, no account, and deliberately no sync. You can watch the network tab while you work and see that your files never upload — and if you would rather read the code than trust the claim, the whole matching engine is published under the MIT licence at github.com/Mokshraj-ssr7/bank-reconcile.
Can I read the code that does the matching?
Yes — all of it. The engine is published as a standalone MIT-licensed module at github.com/Mokshraj-ssr7/bank-reconcile: 665 lines of pure functions that import nothing at all, plus the test suite that holds them to their claims. There is no server-side half to hide, which is the point — a promise that your files never leave the page is worth exactly as much as your ability to check it. You can also run the tests yourself, including the one asserting that the exception schedule always reconciles to the difference between the totals — an arithmetic check, not proof that each match is the right one.
How does the matching work?
In tiers, strictest first: exact matches (same amount, same date), then near-date matches (same amount within your date tolerance — bank clearing delays), then combined matches, where one bank line equals the sum of several book entries — the batched deposit case that breaks VLOOKUP. Ties are broken by description similarity. Every match is labelled with its tier, so you always know how confident to be.
What is the "fully explained" badge?
The reconciliation identity — the property that makes a reconciliation a reconciliation. The difference between your books total and the bank total must exactly equal: items missing from the bank, minus items missing from the books, plus the amount mismatches. This tool computes both sides independently and shows the badge only when they agree to the cent. If they ever disagree, the tool is wrong and says so — it never quietly absorbs a discrepancy.
What does "÷9 — transposed digits?" mean?
An old auditor’s trick: when two digits are swapped in an amount (99.99 entered as 99.00, 540 as 450), the resulting error is always divisible by 9. When an amount mismatch has a difference divisible by 9, the tool flags it, because the most likely explanation is a typo in one system rather than two different transactions.
What file formats work?
CSV exports — from QuickBooks, Xero, Sage, FreeAgent, any online banking portal, or a spreadsheet saved as CSV. Columns are detected from the data itself (dates look like dates regardless of what the header claims), split debit/credit columns are recognised and combined, day-first and month-first dates are auto-disambiguated, and accounting formats like (500.00) and trailing DR/CR parse correctly. Every detected column can be overridden by hand.
Can it reconcile PDF bank statements?
Not yet — CSV first, because it is lossless. Most online banking portals export CSV alongside PDF; use that. If your bank genuinely only provides PDFs, the text can usually be extracted via our PDF Studio and saved as CSV, and native text-layer PDF support here is on the roadmap.

Read this before relying on it

Automated matching accelerates a reconciliation; it does not perform one. Every fuzzy and combined match is labelled so you can review it, the exceptions are where your professional judgement happens, and the exported schedules are working papers — not a substitute for them. Matching quality depends on your export’s quality: check the detected columns against the preview before trusting the numbers.