Convert PDF Bank Statement to CSV
CSV is the format everything else accepts — accounting software, Google Sheets, a pandas script, an expense tool’s importer — but getting a bank statement PDF into CSV is where things usually go wrong. Copy-paste and generic PDF extractors scramble multi-line descriptions and shuffle amounts between columns because they read raw text order, not the page layout. This converter reconstructs each visual row from the PDF’s text coordinates, so wrapped merchant names stay attached to the right transaction and debits, credits, and balances land in their own columns.
The output is a plain UTF-8 CSV with a Date, Description, Debit, Credit, Balance header row, RFC 4180 quoting, and no totals row — deliberately, because trailing totals break downstream imports. Every amount is verified against the statement’s running balance before export, and the entire conversion runs in your browser: the PDF is never uploaded, so there is no server copy of your account activity anywhere.
Drop your bank statements here (PDF or photo)
One file or many — processed entirely on this device, nothing is uploaded. Scans and photos (including iPhone HEIC) are read with on-device OCR (beta).
No statement handy?
Free for your first 5 pages each month · Processed on your device · Balance-verified output
How it works
Drop your statement PDF
Drag the file into the converter below — bank or credit card statements from any institution. Scanned pages fall back to in-browser OCR (beta).
Check the highlighted rows
The preview reconciles each amount against the running balance and highlights anything that does not add up, so you review exceptions rather than every line.
Download the CSV
Select CSV (.csv) in the format menu and download. The file opens directly in Excel, Google Sheets, or any import dialog that expects comma-separated values.
PDF to CSV FAQ
What columns does the CSV contain?
Five columns: Date, Description, Debit, Credit, Balance. Amounts are split into debit and credit columns with two decimal places, and there is no totals row at the bottom because many importers choke on one. If you want totals and a Warnings sheet, use the Excel export instead.
Why not just copy the table out of the PDF?
PDFs store positioned text, not tables. Copying flattens the layout, so long descriptions wrap into their own rows and amounts drift out of alignment — fine for three transactions, hopeless for a 12-page statement. Coordinate-based extraction rebuilds the rows the way they appear on the page.
Does this work on scanned statements?
Yes, as a beta: pages with no text layer are rendered and read with OCR in your browser, then flow through the same balance verification. OCR results are labelled so you know to double-check highlighted rows. Nothing is uploaded in either path.