Twelve PDFs, maybe more if you have several accounts, and a deadline. The goal is one spreadsheet your accountant can work from — complete, in order, no duplicates, and provably nothing missing. The last part is what this guide is really about, because the failure everyone worries about (a wrong number) is far less likely than the one nobody checks for: a whole statement that never made it into the pile.
Step 1 — Gather every statement, including the boring accounts
Download the full period for every account that saw business money: current accounts, the savings account interest lands in, credit cards, the payment processor that settles into your bank, the personal account you occasionally paid a supplier from. Keep the original PDFs in one folder named by account and month — current-2026-01.pdf — because you'll want them later for tracing, and your accountant may need the originals regardless of what your spreadsheet says.
Two things to get right at this stage. If your bank only offers statements for the last 12 or 24 months, download older ones now rather than discovering the gap in March. And if a statement period straddles a year boundary (many do — 20 December to 19 January), note it; that's where duplicates come from later.
Step 2 — Convert them in one batch
Converting twelve statements one at a time is twelve chances to misname a file or skip one. Do it in a single pass: upload the whole folder at once — Statement Mill takes up to 300 pages per batch, which covers a year of most accounts — and every page is verified against its own statement's balances as it goes.
If you're doing this by hand instead, the Excel PDF import route works for text-based PDFs, and scans need OCR. Either way, keep one sheet per statement for now. Merging comes after checking, not before — it's much harder to find a problem once everything is in one pile.
Step 3 — The balance chain (the check that catches a missing month)
This is the step almost nobody does, and it's the one that matters most at year-end.
Per-statement reconciliation — opening + credits − debits = closing — proves each file was read correctly. But twelve individually perfect statements can still be missing March entirely, and no per-file check will ever notice. What catches it is chaining them:
January's closing balance = February's opening balance
February's closing balance = March's opening balance
…and so on through December
Build a small table — one row per statement, with period start, period end, opening balance and closing balance — and add a column comparing each opening to the previous closing:
=IF(ROUND(C3,2)=ROUND(D2,2), "ok", "GAP")
where C is opening balance and D is closing. Any GAP means a statement is missing or out of order between those two periods. Chase it down before doing anything else; a missing month discovered now is an annoyance, and discovered by your accountant in March it's a bill.
This chain also catches statements filed in the wrong order, an account you thought was dormant that wasn't, and the classic case of downloading the same month twice while believing you had two different ones.
Step 4 — Merge, then handle overlaps properly
Now combine into one sheet, adding two columns as you go: Account and Source statement. They cost nothing and make every later question answerable — which account was this, which PDF do I open to check it.
Then the overlap problem. Statements that straddle month boundaries can report the same transaction twice, and the instinct is to delete every repeated date/description/amount combination. Don't. Two identical €4.50 coffees on the same day are two real transactions, and deleting one silently breaks your reconciliation.
Deduplicate by period instead:
- Decide the exact date range each statement contributes — usually its own period, but where two overlap, give the shared days to one statement only.
- Filter out rows outside each statement's assigned range.
- Only then look for remaining identical rows, and check each by hand against the source PDF before deleting anything.
Then re-run the arithmetic: your merged sheet's total should equal the sum of every statement's net movement. If it doesn't, you removed a real row.
Step 5 — Categorize once, for the whole year
With everything in one sheet, categorizing is a single pass instead of twelve. If your converted rows came with a category column, you're mostly done and can spend the time on corrections. If not, build a keyword rules table and tag every row with one formula — the full setup, with copy-paste formulas and a month-by-month summary, is in categorizing bank transactions in Excel.
Working across the whole year at once has a real advantage: patterns show up that a single month hides. The subscription you forgot to cancel in April. The supplier you paid from a personal account twice. The quarterly fee you've never actually looked at.
Step 6 — The four checks before you hand it over
- ☐ Every statement reconciles against its own opening and closing balances
- ☐ The balance chain is unbroken across all twelve months, per account
- ☐ Row count matches — merged rows equal the sum of per-statement counts, minus exactly the duplicates you deliberately removed
- ☐ The totals are plausible — does annual income roughly match what you know you earned? A tenfold error usually means a decimal separator, not a missing sale
Send the folder of original PDFs along with the spreadsheet. Accountants trust data they can trace, and it saves the round-trip when they want to see one transaction in context.
Doing this monthly instead
The honest advice at the end of a guide about doing a year in one sitting: don't do it in one sitting next year. Twenty minutes a month — convert, chain-check against last month's closing balance, paste into the running sheet — removes the entire exercise, and the balance chain becomes a two-second check rather than a forensic investigation.
You can even skip the download step: forward each statement to convert@statementmill.com as it arrives and the converted, verified file comes back by reply. Start with this month's statement — 20 pages free, no credit card, no trial timer.