A statement is the most sensitive file you own
Balance, income, every merchant, every transfer. Uploading it to a converter means trusting a stranger's server, their retention policy and their next breach. Here there is no upload step to trust.
Drop the PDF your bank gave you. The transactions come out as a spreadsheet — and the file never leaves this computer. Every online converter uploads your statement to a server first. This one has no server to upload to.
| Date | Description | Amount | Balance | ✓ |
|---|---|---|---|---|
| 2026-03-12 | STARBUCKS #4471 | −4.85 | 1,203.10 | ✓ |
| 2026-03-13 | PAYROLL ACME CORP | 2,410.00 | 3,613.10 | ✓ |
| 2026-03-14 | ATM WITHDRAWAL | −200.00 | 3,413.10 | ✓ |
| 2026-03-16 | NETFLIX.COM | −15.49 | 3,397.61 | ✓ |
No column headings were found, so the columns were identified from the running balance alone. Check a few rows before you rely on it.
| Date | Description | Debit | Credit | Balance |
|---|
more rows are blurred. A pass unlocks every row of every statement you convert in the next 24 hours, in this browser.
Rows highlighted in amber did not reconcile with the running balance. Everything else was verified arithmetically.
Your browser opens the PDF from memory. Nothing is sent — you can watch the network tab and see it stay empty.
The text layer is read and the table is found by its shape: a date on the left, money on the right. There are no bank templates to be out of date, so it works on statements from banks we have never seen.
Each row is checked: does this balance equal the previous balance plus this transaction? A row that passes was read correctly. A row that fails is highlighted, not hidden.
You download an .xlsx or .csv, built on your machine. Close the tab and there is nothing left of the file anywhere.
| Name | Status | Type | Size | Time |
|---|---|---|---|---|
| bank-statement-to-excel | 200 | document | 9.1 kB | before you chose a file |
| site.css | 200 | stylesheet | 6.4 kB | before you chose a file |
| statement-engine.js | 200 | script | 731 kB | before you chose a file |
| — you drop march-statement.pdf, 46 rows are parsed, you download the .xlsx — | ||||
Balance, income, every merchant, every transfer. Uploading it to a converter means trusting a stranger's server, their retention policy and their next breach. Here there is no upload step to trust.
"99% accurate" tells you nothing about your file. A reconciliation check tells you exactly which rows are right, because a balance that follows from the previous one cannot have been misread.
US, UK and European formats, separate debit and credit columns or one signed amount, dates written any of the usual ways. Send us a layout that fails and it becomes a test case.
Really. The page has no upload endpoint. Open your browser's developer tools, watch the Network tab, and convert a file: the only requests are the page's own scripts, loaded before you chose anything. That is a stronger guarantee than any privacy policy.
Every statement is parsed and shown in full, with the reconciliation check, for free. Downloading the first 25 rows is free. A $9.99 pass unlocks every row of every statement for 24 hours in this browser — no account, no subscription. Most people need it once a year, at tax time.
Yes. A scan has pictures of text rather than text, so it goes through the OCR engine first — on your machine, like everything else — and then through the same parser. OCR can misread a digit; when it does, that row fails the balance check and is highlighted, so a wrong figure cannot slip through unnoticed. A straight, well-lit scan at 150 dpi or better reads cleanly.
Those rows failed the balance check, usually because a description wrapped strangely or a fee was printed in an unusual place. Compare them with the PDF. Everything not highlighted was verified by arithmetic, so you only check the few rows that need it.
Yes — within 30 days, no questions. Write to support. Payments are handled by Paddle, which is the merchant of record and processes the refund.