About BankToRows
A converter for the boring, error-prone job of getting bank transactions out of PDFs and odd file formats and into spreadsheets and accounting software.
Last updated October 2026
How a PDF statement is read
A PDF statement has no rows or columns inside it, just pieces of text placed on a page. BankToRows groups the pieces into lines by their height on the page, finds the table header (Date, Description, Amount, Paid out, Balance…) to learn where each column sits, and takes every line that starts with a date as a transaction. Wrapped descriptions are joined to the line above, page headers and totals are skipped, and statements that print a date only once per day are handled.
Whether an amount is money in or money out is settled from, in order: the column it sits in (Debit, Credit), a sign printed with it (−, brackets, CR/DR), the statement’s own convention (for example only credits marked CR, or a card that prints purchases as negatives), the section it’s in (“Deposits and additions”, “Checks paid”), and only then the running balance. The balance never overrides a printed sign: if they disagree, the row is flagged for you to look at. On a credit card the statement-wide convention (purchases printed as positive or negative numbers) is applied to every line, and when that convention is a guess rather than something the balances confirm, you’re told. There are no per-bank templates, so a new bank doesn’t have to be “supported” first.
The balance check
Statements print an opening balance, a closing balance and often a running balance. After reading, BankToRows adds the transactions up: opening + money in − money out must equal closing, and each printed running balance must follow from the one before. When it all matches to the cent you see a green check. When it doesn’t, you see by how much and which rows to look at, and you can fix them before downloading. The check proves the rows add up; it can’t tell whether a description was read perfectly, so glance over the table too.
What it can’t do yet
- Scanned (image) statements, which need OCR.
- Statements with several accounts or currencies mixed in one table are read as one list.
- PDF amounts written with a decimal comma (1.234,56), as on many European statements.
- Unusual layouts can trip it up; the balance check is there so that shows instead of slipping through.
If a statement doesn’t convert well, or you need scans or batch conversion, write to hello@banktorows.com. Please don’t attach a real statement; describe the layout instead.
Private by design
Everything happens in your browser. Files are read on your device and the downloads are built there too, so your statements never reach a server, ours or anyone else’s. See the privacy policy for the little we do collect.