Bookkeeping lessons · Accounting glossary

How does bank reconciliation work?

Bank reconciliation explains why a bank statement and your cash ledger differ, using evidence for timing items, missing entries and errors.

Key takeaways: compare the same account and dates; preserve the bank’s statement; distinguish timing differences from missing postings; explain every item; and never force agreement with an unsupported balancing entry.

Why do two records of cash disagree?

The bank and the business can record the same movement at different times, and either record may contain information missing from the other.

A payment can be recorded in the business’s books before it appears on the statement. A bank charge may appear on the statement before anyone records it internally. A duplicate or incorrect amount can also create a difference. Bank reconciliation separates these cases instead of assuming every difference is an error or every matching total is sufficient.

OpenStax’s bank-reconciliation material distinguishes bank-side and book-side reconciling items. The operational lesson is to identify which record, if either, requires a change. A genuine timing item does not automatically require another journal; a missing business entry may require one supported by the statement and the appropriate classification.

What must match before comparing amounts?

Use one bank account, one business, one currency and a clearly defined statement period.

Check the account identifier, statement start and end, opening balance and closing balance. Avoid comparing a current online bank balance with yesterday’s ledger export and calling the difference an error. The two records need compatible cutoffs. Also check whether the statement amount is signed from the bank’s perspective and whether your ledger display uses debit/credit columns or signed movements.

Preserve the original statement or imported file. If a transformation normalises dates or signs, retain enough information to reproduce it. A later reviewer should be able to distinguish what the bank supplied from what the software inferred or the operator selected.

How does a timing difference reconcile?

An outstanding payment can explain a higher bank-statement balance without requiring a second expense entry.

Original synthetic reconciliation: one currency, no opening amount or other activity
Record or adjustmentAmountExplanation
Statement closing balance1,000.00The service receipt cleared
Outstanding recorded payment−125.00The expense was recorded but has not cleared
Reconciled ledger closing balance875.001,000.00 less 125.00

The books already contain the 125.00 expense and cash credit. Posting the payment again would duplicate the expense and reduce cash twice. Instead, retain the payment as an outstanding item and check that it clears on a later statement. If it never clears, investigate the underlying event rather than leaving it unexplained indefinitely.

The figures are the same original service-and-expense exercise used elsewhere in this library. Here the assumption changes: the receipt is on the bank statement and the payment is not yet there. That timing assumption is the reason the two closing balances differ.

What if the statement contains a missing bank charge?

A supported charge absent from the books may need a reviewed posting before the statement can be fully matched.

Assume, as a separate fictional case, a 10.00 bank charge appears on the statement. Review its nature and applicable treatment, record the appropriate cash and expense effects, then match the statement item to that posted entry. Do not treat the reconciliation matching action as a substitute for the accounting decision.

This separation keeps the workflow understandable: the statement is external evidence, the journal records the business’s accounting effect, and the match explains their relationship. Combining all three into an automatic hidden posting can make it difficult to tell whether an entry was reviewed or merely guessed from a description.

What is a repeatable reconciliation procedure?

Start from an agreed baseline, match supported items, investigate the remainder and complete the review only when the bridge is explained.

  1. Confirm the account and statement date range.
  2. Check the statement opening balance against the prior reconciled closing balance.
  3. Match entries with the correct amount, direction and relevant date.
  4. Inspect statement-only and ledger-only items separately.
  5. Post missing business entries through the ordinary reviewed posting path.
  6. Explain outstanding timing items and retain their identities.
  7. Verify the closing reconciliation and record completion.

When starting a new system, the baseline needs particular care. Earlier entries may already have cleared even if they are outside the first imported statement. A confirmed baseline explains that boundary. Without it, an apparently correct first reconciliation can carry a hidden opening difference forever.

Why is matching the same amount not enough?

Two legitimate transactions can share an amount, so a match needs context as well as arithmetic.

Compare references, dates, counterparties where available, and the sequence of activity. Two 125.00 payments may be different events. A suggested candidate is useful, but it should not silently become a confirmed match merely because it is the only result currently displayed. Filters can hide alternatives, and an incorrectly imported statement can make the candidate set incomplete.

A one-to-one matching system also cannot represent every real bank situation. One settlement may cover several entries, or several deposits may combine into one statement line. Use a workflow that supports those relationships rather than forcing a misleading one-to-one match. The current PHP Ledger bank workflow has deliberately bounded matching scope.

What mistakes should the review expose?

Look for missing, duplicated, wrongly dated and incorrectly signed entries before accepting a residual difference.

Record the investigation rather than changing the statement to agree with the books. An incorrect imported draft may need cancellation and replacement while retaining its history. A completed reconciliation needs its own protection against later backdated postings that would invalidate the earlier conclusion.

Who should complete the review?

Use someone who can inspect both the evidence and the bookkeeping decisions, with a separate reviewer where the business’s controls require one.

The person entering daily transactions may know what happened but overlook a repeated pattern. A second person can challenge an unexplained difference or old outstanding item. Software permissions support that division; they do not decide the business’s control policy. At a minimum, retain who completed the reconciliation, its date and the balances that were compared.

Keep the exercise manageable: reconcile a short fictional statement first, including one clear timing item and one missing charge. Explain why one needs a journal and the other does not. That distinction is the heart of the task.

Practise the idea in PHP Ledger

PHP Ledger preserves bank CSV records and matches them to existing posted lines; reconciliation itself does not create journals. Its current matching model is one statement row to one exact-amount journal line. Split and aggregate matching remain later work. Use the bank reconciliation walkthrough for the release-specific path.

The synthetic daily cash check and monthly review connect entries to reports. Inspect the current product features and limits before choosing software for a real business.

When PHP Ledger is not the right choice

Choose a supported system when your immediate needs include advanced stock operations, payroll, statutory tax filing or independently accepted reporting. The 0.4.0 starter adds invoice, bill, payment, credit and ageing screens. Optional Purchasing and Inventory add stock workflows; manually configured tax does not establish country applicability or filing support. A demonstration also cannot decide your accounting policies or provide an independent review of your books.

Continue learning

Common questions

Does matching a bank row post an expense?

No. Matching links external evidence to a posted entry. Any missing accounting entry must be reviewed and posted separately.

Should every difference be zero before I can explain the records?

The records must reconcile through explained items. A valid timing item can remain outstanding; an unexplained balancing difference is not a completed reconciliation.

Sources and review boundary

Source links checked on 16 September 2026. These are further educational reading; the worked numbers and exercises on this page are original synthetic examples.

General bookkeeping education, not jurisdiction-specific advice. This page has not been reviewed by a qualified accountant. Review your entity, reporting framework and policies with your adviser; see the project and review boundaries.

Product screen

Development preview with synthetic sample data

Scroll the image to explore it. With a keyboard, focus the image area and use the arrow keys.