StatementDecoder

How to read a bank statement: every section, line and code explained

2026-07-19 · 9 min read

A bank statement is a legal record written in settlement-system shorthand. Once you know what each section and code means, a five-minute monthly read catches billing errors, forgotten subscriptions and fraud earlier than any app notification. Here's the full tour.

The header: who, what and when

The top block identifies the account holder, the account (usually a masked number — last four digits), the statement period (the exact date range covered) and, for many banks, the sort code / routing number and IBAN. Two things trip people up: the period rarely matches the calendar month exactly, and a transaction made near the boundary can appear on either statement depending on when it settled, not when you paid.

Opening balance, closing balance, and the reconciliation identity

Every statement obeys one equation: opening balance + money in − money out = closing balance. The opening balance always equals the previous statement's closing balance. This identity is your integrity check — if you ever convert or retype a statement, verify the totals still satisfy it. (Our converter checks exactly this after parsing.)

The transaction list: reading each line

  • Date — usually the settlement date, one to three days after the purchase. Some banks show both transaction and posting dates.
  • Description (the descriptor) — set by the merchant's payment processor, not the brand you know. Prefixes like SQ *, PAYPAL *, TST* and APPLE.COM/BILL identify the billing rail; the merchant hides in the remainder. Our prefix guide decodes the common ones, and the identifier matches full descriptors.
  • Transaction codes — banks annotate lines with shorthand: DD (direct debit), SO (standing order), POS (card purchase at a terminal), ATM/CPT (cash withdrawal), FPI/FPO (faster payment in/out), CHQ (cheque), INT (interest), CHG (charge/fee), TFR (transfer). The exact set varies by bank and is usually explained in a key on the last page.
  • Amounts and columns — some banks use one signed column (negative = money out); others use separate debit and credit columns. Never assume — misreading the convention flips your analysis.
  • Running balance — the balance after each line. Useful for spotting exactly when the account dipped negative and triggered overdraft fees.

Pending vs posted

Online banking shows pending authorisations; the statement shows settled transactions. Pending amounts can differ from final ones — fuel pre-authorisations, hotel deposits, restaurant tips — and pending descriptors are often provisional. If a line looks wrong while pending, wait for settlement before acting; banks generally don't dispute pending transactions.

The fee lines most people skim past

Fees appear as their own transactions with descriptors like MONTHLY MAINTENANCE, OVERDRAFT FEE, NON-STERLING TRANSACTION FEE or ATM FEE. They cluster at period boundaries and after foreign transactions, and they compound quietly — a full breakdown of each type, with which ones banks refund on request, is in our bank fees guide.

A five-minute monthly routine

  1. Check the reconciliation identity (opening + in − out = closing).
  2. Scan money-out lines for anything you can't name — identify before disputing.
  3. Compare recurring amounts to last month: new ones, grown ones.
  4. Total the fee lines. More than you expected? Fight the fightable ones.
  5. Spot-check one week in detail — errors hide in routine.

Or upload the statement and let the analysis do steps 2–4: every merchant identified, subscriptions and fee lines totalled, and anything unusual flagged with an explanation.

How long to keep statements

Common guidance: at least a year for general purposes; longer where taxes are involved (tax authorities typically expect supporting records kept for several years — check your jurisdiction's rule), and keep anything supporting a warranty, insurance claim or dispute until the matter closes. Download PDFs while you can — banks limit online history, and closed accounts can make retrieval slow and sometimes chargeable.