Why don’t bank and ledger balances match?
Because they answer two different questions. The bank tells you what left the account and when it left. The ledger tells you what the business committed to and when it decided. Those are the same money and different events, and the gap between them is the normal state rather than a fault.
Most of the difference has four sources and none of them is an error. Timing: a payment run approved on Tuesday clears on Thursday, and a card settlement arrives net two days later. Granularity: the bank sends one line for what the ledger booked as ninety. Identifiers: the reference the bank echoes back is not the reference the ledger stored. Cost: fees, interest and the rate on the day the cash actually moved appear on the statement and were never posted.
The work is therefore not finding a mistake. It is establishing, line by line, which bank movement is the same event as which entries, and that is a matching problem, which is a different discipline from bookkeeping.
Is this an accounting problem or a data problem?
The problem is upstream and the cost lands downstream, usually on the last three days of the month. The evidence is who fixes it: the person reconciling is rarely the person who caused any of the four differences above.
Naming it correctly changes where the effort goes. Treated as an accounting problem, the answer is more people at close and a longer checklist. Treated as a data problem, the answer is to hold both descriptions of the week side by side all month, decide the matches as the data arrives, and let the last three days be a review of exceptions rather than a reconstruction of the period.
It also changes what a difference means. In a monthly reconstruction, an unexplained difference is a number to be chased before a deadline. In a continuous process, it is an event that showed up today with the records that produced it, which is a far smaller thing to answer.
What is the difference actually made of?
Open one month and it decomposes into a short list every time. Knowing the list is most of the skill, because each part is answered differently.
Timing differences resolve themselves and need only to be identified and dated: the value date the bank used against the posting date the ledger used, kept as two fields rather than argued into one. Granularity differences need a rule for how many entries may explain one line, and the evidence that these particular entries do.
Identifier differences are the expensive ones. The same supplier is three names across two ledgers and a bank file, and every automatic match fails on the third spelling. That is not solved with a better rule. It is solved by resolving the names to one counterparty and keeping the resolution where somebody can see it and contest it.
Cost differences are the quiet ones. Fees, interest and the day’s rate appear on the statement and were never posted anywhere. They are small individually, which is why nobody chases them, and they are the reason a reconciliation that is otherwise clean will not close to zero.
Why does it get worse at close?
Because everything postponed arrives at once, and it arrives without its context. A difference found on the day it happened comes with a person who remembers the payment. The same difference found five weeks later comes with a spreadsheet and a guess.
What makes it feel unmanageable is that it compounds. Unresolved differences do not sit still: later movements land on top of them, a manual adjustment somebody remembers making absorbs part of one, and by the following month the original event can no longer be recovered from the numbers. Matching continuously is not a productivity preference. It is the only version where the evidence still exists.