Convert and parse bank statements on your device — local Rust/WASM engine, AI merchant cleaning, local SQLite. Export clean CSV.
Users
3
store count
Rating
0.0 / 5
unchanged in 30 days
Ratings
0
total ratings
Store rank
#309K
#249K among extensions
Version
0.1.1
updated 1 Oct 2026
Users
monthly, 1 months
Latest, 17 Oct 2026:3 usersMove the mouse over the chart for any month
Ratings count
monthly, 1 months
Latest, 17 Oct 2026:0 ratingsMove the mouse over the chart for any month
The Chrome Web Store rounds user counts down to the leading digit, so the user line moves in steps. The ratings count is exact and is the better signal of real adoption.
About LedgerPanda: Bank Statement Parser & Converter
Bank statements are private. Most tools ask you to upload them to a server you don't control. LedgerPanda never receives the statement itself — parsing happens on your device. The only file that can ever leave it is one you chose to send, rebuilt first without your account details.
Drop in a statement PDF and it is parsed entirely inside your browser: a Rust/WASM engine extracts the table and the rows are checked against the totals your bank printed. Tap AI Simplify and Chrome's built-in on-device AI rewrites the messy merchant strings into clean names. Everything is stored in a local SQLite database on your own device.
WHAT IT DOES
• Parses statement PDFs locally — parsing never touches the network: there is no upload path and no parsing endpoint.
• Reconciles the result — parsed rows are checked against the opening balance, closing balance, income and expense totals your bank printed. If they don't match, you get a red flag and the exact difference, before you confirm anything.
• Cleans up merchant names, on request — tap AI Simplify and the on-device model built into Chrome (Gemini Nano, Chrome 138+) turns "AMAZON.COM*1X2Y3Z4 AMZN.COM/BILL" into "Amazon". Descriptions that are already concise are left untouched. No API key, no cloud inference, no statement text leaving your machine.
• Categorises transactions — using your own chart of accounts and rules. AI suggestions are always flagged for review and are never written to your records until you confirm them.
• Stores everything locally — a real SQLite database (wa-sqlite) persisted to your browser's own storage. No cloud database is created for your ledger.
• Exports CSV — Date, Description, Amount, Balance, Account. Every export is logged locally with a verification hash.
• Reports problems safely — hit a layout we don't read? Send it in one click. A statement PDF is rebuilt on your device first with sensitive fragments removed rather than covered over, and you can preview exactly what will be sent. The text layer is kept, so we can reproduce your layout from the PDF you send us.
HOW IT WORKS
1. Drop a statement PDF into the extension.
2. The Rust/WASM engine parses it and reconciles the totals.
3. Tap AI Simplify to clean the merchant names — or skip it, it is entirely optional.
4. Export CSV, or keep it in your local ledger.
SUPPORTED STATEMENTS
Several business-bank layouts are included. Each one is written for that statement's own layout, and the matching statement is selected automatically. If yours is not recognized, send a redacted PDF through the in-app feedback button and we can add a layout for it. You can also build one yourself by clicking the columns on the PDF.
PRIVACY
Parsing, cleaning, reconciliation, categorisation and storage all run on your device. Nothing is uploaded in order to parse, clean or store your data.
Two things can cross the network, and we would rather list them than hide them:
• Google sign-in — required to use the extension. Limited to your email, name, profile picture and a non-identifying account ID. We never read your Gmail, Drive, Contacts or any other Google service.
• A support file you choose to send — redacted on your device before upload, with a preview you approve first.
This extension contains no analytics, telemetry or crash reporting of any kind.
PERMISSIONS
• storage / unlimitedStorage — your ledger lives in a local SQLite database that grows with every statement you import. unlimitedStorage stops the browser from evicting it under storage pressure.
• identity — used only to open the Google sign-in popup so we can check your access tier. It is not used to read Gmail, Drive, Contacts or any other Google service.
Questions, or a statement we don't read yet? ledgerpanda@gmail.com — or use the in-app feedback button, which redacts a statement PDF before it leaves your device.