StatementLens

Guides

PDF statements: what can be read reliably

A PDF is a page description, not a table. It says "draw these characters at these positions". To get transactions out, StatementLens collects the text with PDF.js (Mozilla's open-source PDF library, served from this site), groups pieces that sit on the same line, and then looks for lines that start with a date and end with an amount. This runs in your browser; the file is not sent anywhere.

What works

We checked this against a fictional sample statement published under CC0 by bankstatementtocsv.cc (licence). All six of its rows were read and, using the running balance to set each row's direction, matched the sample's published CSV to the cent. That is one layout. It does not mean your bank's layout will work.

What does not work

Debit and credit columns in a PDF

Many statements print withdrawals and deposits in separate columns. In the text of a PDF both just look like a number, so the side it was printed on is lost. If the statement has a running balance, choose "Use the running balance to decide direction" and enter the opening balance: each row's direction then comes from whether the balance went up or down, and any row where the change does not equal the amount is listed as not read. Without a running balance, check the signs row by row.

How to check the result

  1. Compare the count. The review screen shows how many text lines there were, how many became rows and every line that did not, with the reason.
  2. Enter the printed opening and closing balances. The difference should equal the net of the rows.
  3. Scan the skipped lines for anything that looks like a transaction. If you find some, the CSV export from your bank is the safer source.