Accounting, Tax & Bookkeeping// definition

What a bank reconciliation statement has to prove, as a data object

In short

A bank reconciliation statement is an assertion, not a printout: at a stated instant, the bank's balance and the ledger's differ by exactly the sum of a named list of reconciling items, each carrying a type, an age and evidence. Store it that way and it can be re-derived. Store it as a screenshot and you kept the conclusion and threw away the proof.

Key takeaways

  • The statement links 2 balances at one instant. Neither is the truth; the item list is what makes them consistent.
  • Only timing differences may be carried. An error is never a reconciling item — it is a correction nobody made.
  • Every item needs a type, an age and an evidence link, because age is what says it stopped being timing.
  • A difference of zero proves arithmetic, not accuracy: plugs, offsetting mismatches and machine ticks all produce zero.
  • Store the matched transaction identifiers, or nothing can be recomputed when the feed revises history.

A bank reconciliation statement asserts one thing: at a stated instant, the balance the bank reports and the balance the ledger reports differ by exactly the sum of a named list of items, each with a reason to exist. It is not a report you print at month end. It is a claim with 2 sides and a list, and everything useful about it — reviewability, re-derivation, an audit trail — follows from storing it as that claim.

Neither balance is the truth. The bank's figure reports what the bank booked, excluding anything not yet processed. The ledger's includes payments issued that nobody presented. They are 2 partial views, and the reconciling list is the function mapping one onto the other.

Both sides must be as at the same instant, and usually are not

The commonest defect in a stored reconciliation is that its 2 sides were captured at different moments. A statement closing balance is as at the end of a banking day; a ledger balance pulled from Xero or QuickBooks Online 3 hours later includes that morning's postings. The difference then holds real activity, and the list absorbs it.

  • Pin the as-at instant and store it. Both balances are then defined against one point, not against whenever a query ran.
  • Snapshot the ledger side at that instant rather than querying live at review time, or the object changes whenever somebody opens it.
  • Use the bank's booked balance, never its available balance. Available includes holds and pending items, so reconciling against it is not reconciling.

Four kinds of item explain the gap, and only three may be carried

ItemWhere it sitsWhat it means once it ages
Deposit in transitIn the books, not on the statementPast a few working days it is a receipt that never banked
Unpresented payment or chequeIn the books, not on the statementPast the bank's staleness period it cannot present; the entry must be reversed
Bank-originated item not recordedOn the statement, not in the booksIt ages only because nobody coded it: charges, interest, returned debits
An error on either sideWhichever side made itNothing. It was never timing, and must be corrected, not carried
Reconciling item types, the side each sits on, and what its age tells you

The fourth row quietly ruins reconciliations. An error parked on the list balances the arithmetic perfectly and sits there for a year, because nothing in the object distinguishes waiting from wrong. Type the item and the distinction becomes queryable. Confirm row 2's staleness period with the bank rather than assuming a number: it follows local practice and the instrument, not accounting convention.

An item's age is the only field that says whether it is still timing or has quietly become an error.

The fields that let someone else recompute it months later

  • Identity. Account, as-at instant, period, version — a corrected attempt is a new version, not an edit.
  • The bank side. Closing balance, currency, and a reference to the source artefact.
  • The ledger side. Balance at the same instant plus the lock state, so a later reader knows whether the period could still move.
  • The item list. Per item: type, amount, sign, first-seen date, age in days, evidence link, and an expected clearance date that makes an overdue item detectable without anyone reading it.
  • The residual after items, which must be 0, stored explicitly.
  • The match set — the identifiers matched — which allows recomputation, and why what a tickmark means when a machine put it there matters as much as the match.
  • Preparer, reviewer, both timestamps. A reconciliation with 1 name on it is a calculation, not a control.

A difference of zero is not the same as a reconciled account

Zero proves arithmetic. It says nothing about whether the right transactions were matched, and there are 3 ordinary ways to reach it wrongly.

  1. A plug. Someone posted a balancing entry to force agreement, detectable because it has no evidence and no counterparty — which is why the evidence link is required.
  2. Offsetting mismatches. Two transactions matched to the wrong partners for the same amount net to nothing — reading a recurring difference by its shape is the separate diagnostic in the reconciliation out by the same small amount.
  3. A clean zero over a rotting list. Every item ticks, the residual is nil, and the list holds 14 unpresented payments older than 6 months. Impeccable arithmetic; unreconciled account.

Completeness therefore needs a second test beyond the residual: nothing past its expected clearance date, nothing without evidence. Both are computable, so both can be a gate rather than a review comment. That is what makes reconciliation state usable at close beside flux analysis and the thresholds that make it useful — one control proves the cash, the other explains the movements.

Modelling the assertion properly is a bounded build: one object, a typed item list, 2 computed gates, a version history — the sort of narrow first system we scope as an MVP and product build, inside the reconciliation and close topic for accounting and tax practices.

Frequently asked questions

Short answers to the follow-ups this page tends to raise.

What counts as a reconciling item, and what does not?

Only timing differences count: something recorded on one side that the other has not yet seen. Deposits in transit, unpresented payments and uncoded bank-originated entries all qualify. An error does not, even though it makes the arithmetic work — it is a correction nobody made, and typing it as one stops it living on the list for a year.

Why is a difference of zero not proof that an account is reconciled?

Because zero is an arithmetic result and reconciliation is a claim about which transactions correspond. A plug produces zero, 2 transactions matched to the wrong partners produce zero, and a list of items that should have been written off produces zero. Completeness needs 2 further tests: nothing past its clearance date, nothing without evidence.

Why store a reconciliation as a record rather than a saved report?

Because a saved report keeps the conclusion and discards the proof. Storing both balances, the typed item list and the matched transaction identifiers lets the assertion be recomputed later, which matters because bank feeds revise history. A failed recomputation says the data moved; a saved report keeps showing March's answer.

  • bank reconciliation
  • close
  • data model
  • controls
// shipped work

The work behind this page

Builds from our portfolio that this page draws on.

Read next

Working on something in this space?

Tell us where you are in a sentence or two. We'll tell you honestly whether we're the right team, and what a sensible first slice of the work looks like.

Start the conversation