Why CSV
CSV is the format nearly everything can read. Spreadsheets open it, accounting and budgeting tools import it, databases load it, and a few lines of Python or R can analyse it. When a statement only exists as a PDF, a well-formed CSV is the shortest path from that PDF to whatever tool you actually use.
Well-formed is the important word. A CSV made by copying text out of a PDF tends to have shifted columns, amounts with stray currency symbols, dates that mean different things in different countries, and descriptions split across two rows. The file this page produces avoids all of those.
The format, exactly
- Columns: Date, Description, Money out, Money in, Amount, Balance, Check.
- Dates: YYYY-MM-DD, for example 2026-08-07. This is unambiguous, sorts correctly as text and is parsed by every spreadsheet and programming language.
- Numbers: a dot as the decimal point, two decimals, no thousands separators and no currency symbols. A statement written as 1.234,56 or 1,23,456.00 becomes 1234.56 or 123456.00.
- Signs: Amount is positive for money in and negative for money out. Money out and Money in hold the same figures as positive numbers in separate columns.
- Encoding: UTF-8 with a byte order mark, comma delimited, Windows line endings. The byte order mark lets Excel display accented names and currency symbols correctly when the file is opened directly.
- Descriptions: one line each. Text that wrapped onto a second line in the PDF is joined. A description that begins with a character a spreadsheet would treat as a formula is prefixed with an apostrophe, so it can never run as one.
Checked before you download
Every row is tested against the statement's own figures: the running balance on each line, the opening and closing balance, any printed totals, and the text of the page the row came from. A row that fails keeps its place in the file with a short explanation in the Check column, so a script can filter on it and a person can find it. When everything reconciles, the Check column is empty.
Importing into other software
Accounting and budgeting tools differ in what they expect from a bank CSV. Some want a single signed amount; others want separate debit and credit columns; a few want the date in a particular style. This file carries both amount layouts, so in an import screen you map Date, Description and either Amount or Money out and Money in, and leave the remaining columns unmapped. If a tool insists on a different date style, open the CSV in a spreadsheet, change the date format and save it again.
For analysis in code, the file loads in one line: pandas.read_csv with parse_dates on the Date column gives typed dates and numeric amounts with no cleaning.
Limits and privacy
Free use covers 30 pages a day, with up to 30 pages and 20 MB per file. Scanned statements are read with OCR. The PDF is held in memory only, account and card numbers are masked before AI processing, and the rows are deleted from the server as soon as your browser receives them. See exactly how files are handled. Need a formatted workbook instead? Use bank statement to Excel.