Skip to content
◈

Bank Statement Categorizer

FinanceFree · Private

Upload a bank statement CSV and automatically categorize every transaction, spot recurring charges, and see spend-by-category — fully in your browser, nothing uploaded.

Nothing is uploaded — your statement is parsed and categorized entirely in this browser tab. No receipt photo, statement, or transaction ever leaves this browser tab — OCR, categorization, and summaries all run locally via WebAssembly. This tool never connects to a bank account or moves money.

Upload a bank/card statement CSV

Needs date, description, and amount columns (or debit/credit).

How to categorize a statement

  1. Export a CSV of your transactions from your bank or card issuer.
  2. Upload it here — columns like Date, Description, and Amount (or Debit/Credit) are auto-detected.
  3. Known merchants (groceries, dining, subscriptions, etc.) are categorized instantly by pattern matching. Anything unrecognized is categorized by a small local AI model.
  4. Override any category by hand, then save — this makes the data available to the Budget Summary tool.

Recurring charges

A transaction is flagged Recurring when the same (or very similar) description and amount shows up in two or more different months. This check is plain code, not AI — it's exact and predictable even across hundreds of rows.

Is this connected to my bank?

No. This tool only reads a file you manually export and upload — there's no account linking, login, or live balance syncing anywhere on Ghivo. Your statement CSV is parsed and categorized entirely in this browser tab.

Frequently Asked Questions

What CSV format does it expect?
Any export with date, description, and amount columns (common headers like "Date", "Description"/"Memo"/"Payee", and "Amount" or separate "Debit"/"Credit" columns are auto-detected). Most bank and card exports match this.
How are transactions categorized?
Common merchants and keywords (groceries, dining, transport, subscriptions, etc.) are matched instantly with pattern matching. Transactions that don't match a known pattern are categorized by a small local AI model — never uploaded, runs entirely on-device. You can override any category by hand.
How does recurring-charge detection work?
It looks for the same or a very similar description and amount appearing in multiple different months — that pattern match is done with plain code, not AI, so it stays fast and predictable for hundreds of rows.
Is my statement uploaded to a server?
No. The CSV is parsed and categorized entirely in your browser. Nothing about your transactions is ever sent anywhere.