Bank statements are written for payment processors, not people — "SQ *BLUE BTTL 0412" is a coffee shop. Paste one cryptic charge and StatementDecoder names the merchant with a confidence level, or upload a whole statement (PDF, CSV, Excel or a photo) and get every line identified, subscriptions and yearly cost surfaced, fees and duplicates flagged, and the totals reconciled against the statement itself. Exports to CSV, Excel, QuickBooks, Xero, QIF, OFX. No bank logins; files deleted in 24h.
Framer AI AgentsDesign and publish professional sites with AI
Promoted
Maker
📌
Hi PH 👋 I built this because I kept getting charges I couldn't recognise and hated the choice between "panic-dispute" and "ignore it." The name on a statement is almost never the shop you paid — it's the processor (SQ*, PAYPAL*, TST*) or a legal holding-company name.
So it does two things: decode a single descriptor, or read a whole statement. Structured files (CSV/OFX) are parsed exactly; PDFs that defeat rule-based parsers go through AI extraction, and every date and amount is re-validated by code afterwards — and if the totals don't reconcile against the statement's own balances, it tells you instead of hiding it. Matches carry honest confidence labels; it never pretends certainty.
Since then it's grown past statements: invoices, receipts, purchase orders and general PDF tables go through the same path, with the line items checked against the subtotal, tax and total before you're asked to trust them.
It's early and I'd love the brutal feedback — especially weird bank PDF layouts that break it. Happy to answer anything about the parsing horrors.