Tallyproof

Guides

How to convert a PDF bank statement to CSV (and check it's right)

Bank statements arrive as PDFs because PDFs are good for printing and archiving. They are bad for almost everything else. If you want to import transactions into accounting software, sort them in a spreadsheet, or hand them to a bookkeeper, you need them as rows and columns: a CSV file.

This guide covers the main ways to do that, what each one costs you in time and privacy, and how to tell whether the result is correct.

Why PDF statements are hard to use

A PDF doesn’t store a table. It stores pieces of text and where to draw them on the page. What looks like a neat grid of dates, descriptions and amounts is, inside the file, a scattered set of text fragments with coordinates. Any tool that extracts a table has to rebuild it by guessing which fragments belong in the same row and column.

That is where things go wrong:

A conversion that looks fine at a glance can still contain one swapped sign or one missed row, and that is enough to stop a reconciliation balancing.

Before you start, check that your PDF actually contains text. Open it and try to select a word. If you can’t highlight anything, it’s a scanned image and needs OCR (optical character recognition) software, not a text converter.

Option 1: Copy and paste

For a short statement, you can select the transactions in your PDF viewer, copy them, and paste them into a spreadsheet.

Option 2: Excel’s “Get Data from PDF”

Excel can import tables from a PDF through Power Query: Data > Get Data > From File > From PDF. It shows the tables it has found on each page and lets you load them into a sheet.

Option 3: Online converters that upload your file

There are many websites that convert bank statements: you upload the PDF, their server (sometimes using an AI model) extracts the transactions, and you download a CSV or Excel file.

None of this means these services are careless; some are very clear about deleting files. But you can’t verify what happens to a file after it leaves your device.

Option 4: Browser-only converters

A browser-only converter does the extraction inside your web browser, using JavaScript. The website delivers the program to your browser; your PDF is opened and processed on your own device and is never sent back to a server.

“Nothing is uploaded” is a claim you should be able to check. Two ways to do that: open your browser’s developer tools, select the Network tab and convert a file (you should see no request carrying your PDF), or read the source code if it’s published.

How balance verification catches extraction errors

Whatever method you use, the key question is: did every transaction come through, with the right amount and the right sign?

Most bank statements already contain the answer. Each transaction line shows a running balance, and the maths is simple:

previous balance + this transaction’s amount = this line’s printed balance

If you check that for every row, an extraction error shows up straight away. A missed row breaks the chain at the next line. A debit read as a credit gives a balance that’s off by twice the amount. A misread digit gives a small, specific difference. You know exactly which row to look at.

Some statements, including most credit card statements, don’t print a running balance. In that case you can still check the whole statement: the opening balance plus all transactions should equal the closing balance. That tells you whether something is wrong, though not which row.

Two limits are worth knowing. The balance check proves the amounts, not the dates or descriptions, so those still deserve a quick look. And a statement-level check can’t point to the faulty row, so when it fails you’ll need to compare against the PDF.

Step by step with Tallyproof

Tallyproof is a browser-only converter built around the balance check. It’s free for single statements, needs no account, and its security policy tells your browser to block connections to other sites.

  1. Download your statement as a PDF from your online banking.
  2. Open tallyproof.pages.dev and choose the PDF. It’s read in your browser with pdf.js; the file isn’t uploaded.
  3. Let it detect the layout. Tallyproof works out where the transaction table is and which column is which. There’s no fixed list of supported banks; it works with statements that are text PDFs.
  4. Review the verification. Every row is checked against the printed running balance, and rows that don’t match are flagged. If there’s no running balance, the opening and closing balances are checked instead. Compare anything flagged with the PDF.
  5. Choose a format and download. The free version exports a generic CSV, a Xero CSV or a QuickBooks Online CSV.

If you have a backlog to get through, Pro (US$9 a month or US$69 a year) or the one-off Catch-up Pass (US$19 for 30 days of Pro) lets you convert many statements at once, merge them into one file, and export OFX or QIF files for software that doesn’t take CSV.

Tallyproof can’t read scanned (image-only) PDFs yet. If your statement is a scan, you’ll need an OCR tool first.

Which option should you use?

Sources

Convert a statement now