Bank statement converter

Convert a bank statement to CSV, Excel, or QuickBooks.

Drop in a PDF statement and get clean data ready to import, with columns lined up, dates parsed, and amounts signed correctly. It runs entirely on your device, so the file never leaves your computer.

Click to choose your statement(s) or drag them here
Text-based PDF, CSV, or Excel. Drop in several at once and they convert together.
Loading the converter… (a one-time download, then it runs right on your device)

Runs entirely on your device. Your statement is never uploaded.

Why bookkeepers use it

Built for client data you're not allowed to upload.

Every other converter sends your client's statement to their servers to process it. This one can't, because there are no servers in the loop. The conversion happens inside this browser tab, on your machine.

Nothing leaves your device

The statement is read on your own computer and converted in this tab. No upload, no account, no third party touching your client's financial data. Safe for confidential files by default.

You check every row first

The parsed transactions show on screen before you download anything. Verify them against the statement, then export. No black box, no "trust me". You see exactly what you're getting.

Proof you can actually see

Turn off your Wi-Fi after the page loads, then convert a statement anyway. It still works, which it could not do if your file were being sent to a server. Or watch your browser's network tab while you convert: nothing with your data goes out.

How it actually works, for the technical reader

The mechanics. A plain Python file (engine.py) runs in your browser via Pyodide (the Python interpreter compiled to WebAssembly). PDFs are read with Mozilla's pdf.js and Excel with SheetJS, both client-side. It reconstructs the table from the statement, lines up the date, description and amount columns, parses dates, and writes out clean CSV, Excel, or QuickBooks-ready files. None of that code makes a network request. The libraries each fetch their own files once on page load, never your data. Scanned-image PDFs can't be read (there's no text layer to extract), so for those a CSV or Excel export of the statement always works.

What's kept, and where. There's no database and no login. Your statement and its rows live only in this tab's memory and are gone the moment you close it. The statement is never stored or sent anywhere. We do keep privacy-respecting analytics on page visits and clicks to improve the tool, but it never sees your statement, its contents, or its filename, and the upload and results areas are explicitly excluded from it.

Straight answers

A small tool, run by a real person.

  • No data to breach. There is no database of your statements, because they're never sent or stored. There is nothing for anyone to leak.
  • You see the result before you trust it. Every transaction is on screen to check against the statement, so a wrong row gets caught here, not in your books.
  • A person answers. If a bank's statement comes out wrong, email me and I'll fix the parser. Real support, not a ticket queue.

Who's behind it

Cosmira is built and run hands-on by one developer. The privacy claims aren't a marketing badge, they're how it's built, and you can verify them yourself with the monitor above or your own network tab.

Questions, or a statement that won't convert cleanly? I read every message.

Get in touch