Bank statements — the honest answer
How to convert a PDF bank statement to CSV
Banks give you a PDF. Your books want rows. Here are the real routes, free ones first, with a plain note on where each one falls down — and one check worth doing whichever route you take.
First: does your bank already give you the CSV?
Most UK online banking lets you export transactions as CSV for a chosen date range. If the months you need are inside that range, this is the right answer and it costs nothing: log in, find Export or Download transactions, choose CSV, pick the dates. The rows come straight from the bank's own records, so there is nothing to check.
The catch is the range. Many banks only let you export the last few months — sometimes a year — while the PDF statements go back for years. If the months you need are older than the export allows, you are working from the PDFs, and the rest of this page is for you. (There is a separate guide on what to do when the export only goes back a few months.)
The free routes for a PDF
1. Copy and paste into a spreadsheet
Select the transaction table in your PDF viewer, copy, paste into Excel, Numbers or Google Sheets. Sometimes the columns land cleanly; more often dates, descriptions and amounts arrive in one column, wrapped descriptions become their own rows, and the paid-in and paid-out columns merge because the PDF only ever had one of them on each line.
Verdict: fine for a single short statement you are going to read through anyway. Painful for a year of them, and easy to get a figure wrong without noticing.
2. Excel's Get Data from PDF (Windows)
Excel on Windows can open a PDF as a data source (Data → Get Data → From File → From PDF) and offers each table it finds. On a clean, single-page statement this can work well. On multi-page statements the table is often split per page, wrapped description lines can become separate rows, and the column headings sometimes end up as data.
Verdict: worth trying if you are on Windows with a current Excel. Not available in Excel for Mac at the time of writing.
3. Free PDF table extractors
There are free tools, some of which run on your own computer, that pull tables out of PDFs into CSV. The good ones handle a clean table well. What none of them know is what a bank statement is: which column is money in, which is money out, which is the running balance — and whether the rows they produced actually add up.
Verdict: a reasonable route if you are happy to tidy the columns yourself and check the totals by hand.
4. Online converter websites
There are many, and most work by uploading your statement to their server. Before you do that, read is it safe to upload a bank statement to an online converter? — it is a decision, not a click.
Verdict: a bank statement is the document least worth handing over for convenience.
Whichever route you take: check the rows add up
A bank statement carries its own answer key. Nearly every statement shows a running balance, and the rule is simple: each row's balance should equal the previous balance, plus money in, minus money out. If you put your rows in a spreadsheet, add a column that computes exactly that and compare it with the balance column. Where they disagree, a row was missed, doubled, or had its amount read wrongly — and you have found it before your books did.
Most statements also print totals for the period (total paid in, total paid out, opening and closing balance). Sum your columns and compare. Two minutes, and it catches almost everything the routes above get wrong.
Being straight with you: scanned or photographed statements are a different problem. Everything on this page assumes a digital PDF — the kind your bank produces, where the text is real text. A photo of a paper statement needs OCR, which is a separate job with its own errors.
What Ledgavo does differently
Ledgavo does the checking for you. It reads the statement's own header line to work out which column is which, reads every page as one table, and then runs the running-balance check on every row, where the statement carries a running balance, before you save anything. If the rows add up, it says so; if it can't be sure, it shows you the rows beside your statement and asks you to compare before saving. It runs entirely on your computer, and the free trial converts one statement per run in full.