Add statements
Converted in this window — nothing is uploaded.WHY IT'S SAFE — AND HOW TO CHECK
Verifiably private
Static site, no backend. There is nowhere for your statement to go — parsing runs in this window and the page keeps working with Wi-Fi off.
Balance-checked
Statements carry their own checksum: each balance must equal the previous one plus the transaction. Every row is proven against that arithmetic — mismatches get flagged, not shipped.
Nothing is guessed
Deterministic extraction, proven by arithmetic. No cloud AI ever sees your transactions, and no number in your export is anyone's best guess — it either reconciles or gets flagged.
QUESTIONS PEOPLE ASK
Is my statement uploaded anywhere?+
No. This site is static files; there is no server to upload to. Parsing runs in your browser with pdf.js and plain geometry. Open your browser's network tab while converting — you'll see nothing leave. It works with Wi-Fi off. PDF passwords are handled the same way: entered locally, used locally, never sent.
How do I know the numbers are right?+
Bank statements carry their own checksum: every row's balance must equal the previous balance plus or minus the transaction. We verify every row against that arithmetic and mark each one. If a row doesn't reconcile, we show you exactly which one instead of hoping you won't notice.
What formats can I export?+
CSV always; OFX, QBO (QuickBooks Web Connect), and QIF whenever the statement prints enough date information to resolve real calendar dates — which is almost always. Multiple statements can be merged into a single CSV with a source column.
Which banks are supported?+
Any bank whose statements are digital PDFs (selectable text) — single amount column or debit/credit layouts, running-balance or totals-reconciled statements, US, European, and Indian number formats. Scanned/photographed statements need OCR, which this beta doesn't do yet.
Does it use AI to read my transactions?+
Today's parser is pure geometry and arithmetic — no models at all. More important are the two things that will always be true here: your statements never leave your device, so no AI service ever sees them; and every extracted number has to pass the balance checksum, so nothing in your export is a model's guess. If we add on-device OCR for scanned statements later, it runs under those same rules — local, and verified by arithmetic.