Reconciliation August 2026 15 min read

The missing month problem

A year of statements with one month absent does not look wrong. Every file opens cleanly, every balance inside it ties, the folder is full, and the books are simply quieter than they should be. There is one test that finds the gap in about sixty seconds — and it is not the one almost everybody runs.

FlowParse
flowparse.io

A gap that looks like nothing at all

Most errors in financial data announce themselves. A number is wrong, a total does not add up, something obviously does not belong. The missing month is different, and that is what makes it worth a whole article: it produces no wrong values anywhere. Everything present is correct. Only the absence is the problem, and absence is the one thing the eye cannot see.

Consider what the books look like afterwards. Turnover for the year is lower than it should be, and so are costs. The profit figure is off by whatever the net movement of that month was — possibly a small number even when the month was busy. Nothing looks anomalous, because a business with eleven months of trading looks exactly like a business with a slightly quieter year.

The good news is that a series of bank statements carries a built-in proof of its own continuity, and checking it takes about a minute for a full year. Almost nobody runs it, because the check is so simple that it feels like it cannot be necessary.

Why the usual checks miss it entirely

The instinctive check is to count the files. Twelve files, twelve months, done. This fails in both directions: twelve files can contain a duplicate and a gap simultaneously, and a year does not always consist of twelve statements in the first place.

The second instinct is to reconcile. But reconciliation compares your books to a statement, and if both the books and the statement are missing the same period, they agree perfectly. The whole method works by comparing two records, and it has nothing to say about a period that appears in neither.

The third instinct is to check that each statement balances internally. That is a genuinely valuable test — it proves each document is whole — but it is a statement about individual files. A perfectly complete March and a perfectly complete May tell you nothing whatsoever about April.

The uncomfortable part

Every one of those three checks can pass while a month is missing. They are all worth doing; none of them is looking at the question. Completeness of a series is a different property from completeness of a document.
FlowParse
flowparse.io

How months actually go missing

The download window closed. Online banking typically exposes a limited history — often far shorter than the period you need at year end. Anyone collecting statements retrospectively will find the oldest months have simply scrolled out of reach, and it is the oldest months nobody thinks to verify.

The cycle is not a calendar month.Plenty of accounts issue statements on a cycle that runs to the 5th, or every four weeks, or on a date that drifts. A statement covering 6 March to 5 April is easy to file as "March", at which point the first five days of April belong to a document nobody realises they still need.

A bank switch. The month an account moved is the classic casualty. Part of the period sits with the old bank and part with the new, and each side looks complete on its own terms. This is also the hardest gap to fill later, because the old relationship has ended.

A file failed quietly in a batch. Twenty documents go in, nineteen come out, and the summary says the run finished. Batch processes that report completion rather than a count are unusually good at losing exactly one file.

It was never issued. Some accounts issue nothing for a period with no activity. In that case there is no gap in reality, only in the file list — and proving that is exactly what the continuity test does, since the balances will agree across the apparent gap.

The continuity test

Here is the whole thing: the closing balance of each statement must equal the opening balance of the next. Not approximately. Exactly, to the cent, every time, for the entire series.

It holds because a bank balance is continuous. There is no moment at which an account has two different balances, so the figure the bank printed at the end of one period is definitionally the figure it starts the next with. If the two numbers differ, money moved in between — and if money moved in between, there is a period you are not looking at.

Better still, the size of the disagreement is itself informative. It is the net movement of everything you are missing, which tells you immediately whether the gap is a quiet fortnight or a substantial trading period — and gives you a figure to check the replacement statement against when it arrives.

In practice: sort the statements by opening date, write the opening and closing balances in two columns, and read down. The first row where a closing balance fails to match the next opening balance is where the gap is. A year takes under a minute.

FlowParse
flowparse.io

Why checking date ranges is the wrong test

The obvious alternative is to check that the date ranges are contiguous — March ends the 31st, April starts the 1st, no gaps. It is a reasonable instinct and a weaker test, for a specific reason worth understanding.

Date ranges describe what a document claims to cover. Balances describe what actually happened. A statement labelled 1 to 31 March can be missing its final page and still be labelled 1 to 31 March. The header does not change when content is lost, so a label-based check reports a complete series over incomplete data.

Balances have no such weakness, because they are outcomes rather than descriptions. If a page went missing, the printed closing balance still reflects reality, and the arithmetic underneath it will not reach that figure. The document itself gives away that something is absent.

Use dates for sorting, and balances for proving. Dates put the documents in order; balances tell you whether the order is unbroken.

CheckWhat it provesWhat it misses
File countNothing on its ownDuplicates and gaps that offset each other
Contiguous date rangesDocuments claim to cover the periodA file missing pages still claims its full range
Each file balances internallyEach document is wholeWhether any documents are absent from the series
Closing equals next openingThe series is unbrokenErrors inside a file that cancel out
Both of the last two togetherSeries complete and every document wholeCorrect data classified to the wrong account

Statement numbers and other weaker signals

Many banks number their statements sequentially, and a numbered series looks like an obvious completeness check: statement 7 follows statement 6, nothing is missing. It is a genuinely useful signal and a weaker one than balances, for reasons worth being explicit about.

Numbering is per account, and it usually restarts — annually at some banks, at account opening at others, sometimes after a product change. A folder containing two accounts, or a year that spans a restart, produces a sequence that appears broken when nothing is missing, and can appear intact when something is. The number describes the bank's filing, not your continuity.

Page markers are weaker still. "Page 3 of 7" is excellent evidence about the document you are holding, and says nothing whatever about which documents exist. It is worth checking — a statement that stops at page 5 of 7 is a finding — but it belongs to the within-document question rather than the series question.

The hierarchy is straightforward. Balances prove continuity, because they are outcomes and cannot be faked by a label. Sequence numbers corroborate it, cheaply, and are worth checking second. Dates and page markers are useful for sorting and for spotting truncated files, and prove nothing about the series on their own.

Use all three, in that order of trust. When they disagree — a sequence that looks unbroken while the balances do not meet — believe the balances, and treat the disagreement itself as information about how the folder was assembled.

FlowParse
flowparse.io

The opposite failure, and it is worse

A gap loses transactions. An overlap counts them twice, and it is the more damaging of the two because it inflates rather than depletes — turnover rises, expenses rise, and the numbers look healthier rather than thinner.

Overlaps arise from the same collection habits as gaps. Someone downloads "the last three months" twice at different times, or pulls a custom range that intersects an existing statement, or a bank issues both a monthly statement and a year-to-date summary covering the same days. Nothing about any individual document is wrong.

The same comparison detects it. If a statement's opening balance appears earlier in the sequence than the previous document's closing balance, or if two date ranges intersect at all, you are looking at duplicated activity. Deduplicate on the combination of date, amount and description before anything reaches a ledger — this is the mechanic we cover in merging bank statements.

One warning about deduplicating: identical rows are not automatically duplicates. Two coffees at the same shop on the same day for the same amount is an ordinary Tuesday. Deduplication that removes genuine repeats creates the very gap it was meant to prevent, which is why range-based detection beats row-based guessing.

FlowParse
flowparse.io

The third possibility: the wrong account

Sometimes the balances disagree and nothing is missing at all — one of the documents belongs to a different account. Businesses with a current account, a deposit account and a card produce statements that look extremely similar, and a mis-filed one is completely ordinary.

The continuity test catches this too, and usually louder than it catches a gap. A statement from another account will normally disagree by a large and arbitrary amount rather than by a plausible month of trading, which is a useful tell.

Confirm by account number rather than by the balance, and confirm it for every document in the set rather than the one that looks suspicious. If one file was mis-filed, the folder was assembled in a way that permits mis-filing, and that rarely happens exactly once.

A worked example

A client hands over twelve PDFs for the year. The folder looks complete, the names run January to December, and the previous year reconciled cleanly. Listing the balances takes two minutes.

StatementOpeningClosingMatches next opening?
March18,204.5522,870.10Yes
April22,870.1019,455.80No — May opens at 24,102.35
May24,102.3526,880.00Yes
June26,880.0025,140.72Yes

April closes at 19,455.80 and May opens at 24,102.35. The difference of 4,646.55 is net movement in a period nobody has a document for. Twelve files were present, and one of them was the previous year's April, mis-filed — so the year was simultaneously short one month and holding a document from a different period.

Note what would have happened without the check. Every individual file balanced. The date ranges looked contiguous, because the mis-filed statement was labelled April. The file count was right. Reconciliation would have produced books that agreed with an incomplete set of statements, and the year would have closed with a discrepancy nobody could locate.

Reading the symptom

When the balances disagree, the shape of the disagreement narrows the cause before you go looking for anything.

What you observeMost likely causeNext step
Closing ≠ next opening, plausible amountA period is missingRequest the statement for the gap
Closing ≠ next opening, wildly differentA file from another accountCheck account numbers on every document
Next opening is earlier in the sequenceOverlapping periodsDeduplicate on date, amount and description
Balances agree but dates leave a gapNo statement was issued for a quiet periodNothing missing — record why the gap exists
Within one file: opening + Σ ≠ closingA page or rows lost inside the documentRe-read the document before requesting anything
Disagreement of a few centsInterest or a fee posted at the boundaryInvestigate, do not round it away
FlowParse
flowparse.io

What a missing month costs downstream

Tax and VAT. A return built on an incomplete series understates income and expenses together. Because it remains internally consistent, it can survive several periods before anything surfaces, and the correction is then retrospective across all of them.

Lending. Lenders read statements precisely to see continuity, and a gap is a recognised signal. Even a wholly innocent omission invites questions about the missing period, and supplying the document is far easier than explaining its absence.

Audit and review. Completeness is a core assertion. An auditor who finds a gap does not merely ask for the statement — they widen the sample, because a control that permitted one omission permits others.

Cash-flow analysis. Any trend built on the series inherits the hole. Seasonality gets misread, averages shift, and a forecast produced from eleven months presented as twelve is wrong in a way that no amount of downstream sophistication can repair.

Getting the statement back

Start with the archive rather than the bank. The missing document has often already been emailed, saved to a shared drive, or attached to a previous year's file. A PDF found in an old email is exactly as usable as one requested today, and it arrives immediately.

If it genuinely has to come from the bank, ask for the original statement document rather than a transaction export. Retention obligations generally run considerably longer than online display windows, so a period that has scrolled out of the app very often still exists in the bank's records. Expect a wait, and in some cases a fee.

When it arrives, verify it before relying on it: its opening balance should equal the previous statement's closing balance, and its closing balance should equal the next one's opening. That closes the chain in both directions and proves the gap is filled rather than merely covered.

For a closed account, the same request usually still works, though it is slower and may need identification. This is one of the situations where a converter earns its place, because there is no live connection to fall back on — a point we go into on converting statements.

FlowParse
flowparse.io

Checking a year in one pass

Doing this once for one client is a minute. Doing it for forty clients every January is a different proposition, and it is where the check quietly stops happening — which is exactly when it matters most, because year-end is when the oldest and least accessible months are being gathered.

The workflow that survives volume is to convert the whole year in one run, keep a source column identifying which file each row came from, and produce two things: the balance ladder for the series and the internal identity result per document. Both are mechanical, both are fast, and neither depends on anyone remembering.

The source column matters more than it sounds. When a disagreement shows up, the first question is always which document is at fault, and a merged sheet without provenance turns a two-minute answer into an hour of re-opening PDFs. We cover the mechanics in consolidating a year of statements and processing statements at scale.

FlowParse
flowparse.io

Gaps inside a single file

Continuity between documents proves the series is unbroken. It says nothing about whether each document is whole, and the two failures produce very similar downstream symptoms.

A page lost from the middle of a statement leaves the file's own opening and closing figures untouched, because those were printed by the bank. The continuity test therefore passes happily. What fails is the identity within the document: opening balance plus every transaction should equal the printed closing balance, and with a page missing the sum falls short.

So run both, at different levels. Within each document, the totals identity. Between documents, the continuity of balances. Together they prove the whole estate: nothing missing inside any file, and no file missing from the series.

We do the within-document check automatically on every statement we convert, and report the gap and the rows worth examining when it does not hold. The between-document check is the natural companion, and it is worth building into whatever process assembles the year — the diagnostic techniques for a difference are in why reconciliations fail.

FlowParse
flowparse.io

Prevention

Collect forward, not backward. Download each statement when it is issued rather than assembling the year in January. Almost every missing month is a month that was still available when nobody needed it.

Name files by content, not by intent.A file named for the period the bank actually printed — including the real start and end dates — makes an odd cycle visible at a glance. A file named "March" hides the fact that it ran to the 5th of April.

Keep the balance ladder with the statements. Two columns per year is a compact and genuinely verifiable record that the series was continuous, and it is the kind of evidence an auditor or lender accepts without argument.

Treat a bank switch as a special event. Verify continuity across the transition deliberately, on both sides. It is the single most likely place for a gap and the hardest one to fill afterwards.

HabitCostWhat it prevents
Download on issueSeconds per monthThe expired download window
Name files by actual periodSeconds per fileOdd cycles filed as calendar months
Keep a balance ladderOne minute per yearEverything in this article
Check continuity at a bank switchFive minutes, onceThe hardest gap to fill later
Count rows out of every batchAutomaticThe file that failed quietly

Key takeaways

A missing month produces no wrong values, only absent ones, which is why the ordinary checks — file count, reconciliation, per-file balancing — all pass over it without noticing. Completeness of a series is a different property from completeness of a document, and it needs its own test.

That test is one comparison: each statement's closing balance against the next statement's opening balance, exactly, for the whole series. It finds gaps, overlaps and mis-filed accounts with the same single pass, and the size of any disagreement tells you how much activity is unaccounted for.

Run it alongside the within-document identity, keep the resulting balance ladder with the files, and the entire class of problem stops being something you discover at year end and becomes something that cannot get that far.

Frequently asked questions

Convert the year, keep the proof

Every statement is checked against its own arithmetic as it is converted, and a whole year can be merged into one sheet with a source column so you can see at a glance which document each row came from — and which balance does not meet the next.

FlowParse
flowparse.io

Related reading