Skip to content

Bank statement OCR

OCR turns an image of a statement into text by reading position on the page. That works for a paragraph and fails for a table — which is why scanned statements come back with split rows and amounts attached to the wrong line.

Upload a file

Sends you the link to the result. Nothing else is sent.

The first 3 pages of a batch are free. You only pay if the statement runs longer, and the price is shown before you pay.

Where OCR goes wrong on a statement

  • A description that wraps onto a second line is split into two transactions
  • An amount is attached to the neighbouring row
  • Debit and credit columns are merged, losing the sign
  • The totals block at the end is read as if it were transactions

What to do instead

  1. Prefer the bank’s own PDF

    A PDF downloaded from your bank is text-based, so no OCR is involved at all.

  2. Extract by content, not position

    Read what each piece of text is — date, description, amount — rather than where it sits.

  3. Review a scanned statement

    A photo or scan needs OCR, so check the rows before you rely on the file.

Why this is more accurate than OCR

OCR reads a statement by position on the page. When a description wraps onto a second line, or the debit and credit columns sit close together, a positional parser attaches the wrong text to the wrong number.

Read by position

02/03  DIRECT DEBIT 4471
       ACME INSURANCE LTD   120.00
04/03  CARD PAYMENT
       NORTHGATE MARKET     -38.40

The wrapped line becomes a second transaction, and the amount lands on the wrong row.

Read as content

02/03  DIRECT DEBIT 4471 ACME INSURANCE LTD    120.00
04/03  CARD PAYMENT NORTHGATE MARKET           -38.40

One row per transaction, the description kept whole, the amount in the amount column.

Frequently asked questions

Does OCR work on bank statements?

Partly. It is good at recognising the characters and bad at keeping a table’s rows and columns together, so the text comes out right while the structure comes out wrong.

Can OCR read a scanned bank statement?

Yes, and it is the only option for an image-only file — but treat the result as a draft. Wrapped lines and tight debit/credit columns are where it fails most often.

What is more accurate than OCR for statements?

Reading the statement semantically: identifying dates, descriptions, and amounts as such, so a wrapped line is understood as part of its transaction instead of as a new row.

How do I avoid OCR entirely?

Download the statement from your bank as a PDF rather than photographing a printed copy. Bank-generated PDFs contain real text.

Is my statement kept?

No. The file is used only to produce the result and is deleted right after.