Guide
What a running balance check proves (and what it doesn’t)
The balance printed beside each transaction is the bank’s own arithmetic. Recalculating it is the strongest check you can make on statement data.
The check
For every row: previous balance + paid in − paid out = this row’s printed balance. And for the statement: opening balance + total in − total out = closing balance. If both hold to the penny for every row, the transactions are very unlikely to be wrong.
What it proves
- No row is missing. A missing transaction leaves the next balance out by exactly that amount.
- No row is counted twice. A duplicated row breaks the balance after it.
- Every amount is right. A misread digit changes the balance by the size of the mistake.
- Every direction is right. Money in recorded as money out puts the balance out by twice the amount.
What it doesn’t prove
- That descriptions are right. The balance doesn’t depend on the wording. Descriptions are read straight from the PDF.
- That dates are exactly right. Order is checked by the running balance, but a date could in principle be misread without breaking it.
- That the statement is genuine. A carefully fabricated statement can add up. See detecting edited statements.
- That two errors didn’t cancel out. Two mistakes of exactly opposite size between the same balances are possible, but in practice very rare.
Some statements only print a balance once a day, or not at all. With daily balances, the check runs at each printed balance and still catches a missing transaction, though it can only narrow it down to that day. With no balances, nothing can be checked, and the converter says so.
How to run the check yourself in Excel
- Lay out the columnsDate in A, Description in B, Paid in in C, Paid out in D, Balance in E (the layout of the converter’s CSV).
- Add a check columnIn F3, enter
=E2+C3-D3: the balance you would expect on row 3. - CompareIn G3, enter
=ROUND(F3-E3,2). It should be 0. Fill both formulas down. - Find the first non-zeroFilter column G for values other than 0. The first one is where a transaction is missing or misread.
The converter does exactly this for every statement, and tells you the row and amount when something doesn’t add up.
Questions people ask
If the running balance check passes, is the CSV correct?
Every amount and its direction are consistent with the bank’s own balances, and no row is missing. Descriptions aren’t covered by the arithmetic but are read straight from the statement.
What if my statement has no running balance?
Then only the opening-to-closing total can be checked, if those are printed. The converter marks such statements “Unverified”.
Why round to 2 decimal places in Excel?
Spreadsheets store numbers in binary, so tiny rounding differences can appear. Rounding to pennies removes them.