Free tool

Expense categorizer — auto-label transactions in seconds

Paste a list of transactions from your bank statement. We detect the merchant or keyword on each line and tag it with a category, then total by category and let you export the result as CSV. No upload, no signup, no AI bill.

Each line should contain a description and an amount. Format like 01/06 TESCO STORES -84.50 works best — the amount can be at the end or anywhere with a number.

All matching happens in your browser. Your transactions are never sent to our servers.

Runs in your browser
No upload, no signup. Your file never leaves your device.
Free and unmetered
Use it as often as you need. No daily quota, no credit card.
EU-built, GDPR-first
Hosted in Frankfurt. Built by a small EU team that takes privacy seriously.

What this tool does

Bank statements arrive with raw merchant strings like TESCO STORES 2843 LONDON or SUMUP *CAFE LISBON. They are useful for traceability but useless for budgeting unless you bucket them. This tool takes that list and applies a keyword dictionary to label each line with one of 18 common categories — Groceries, Restaurants, Transport, Fuel, Travel, Utilities, Rent & Housing, Healthcare, Insurance, Subscriptions, Shopping, Entertainment, Bank Fees, ATM / Cash, Tax & Government, Income, Transfers, or Uncategorised.

It is a heuristic categoriser, not an AI. That is a feature: the rules are transparent, deterministic, fast, and run with zero network calls. The same input always produces the same output. If a line is mis-categorised, you know exactly why and can fix it in the exported CSV.

How the rules work

Each line is split into a description and an amount. The description is matched against an ordered list of regex rules — the first matching rule wins. Rules are ordered so that high-confidence cases (e.g. SALARY, NETFLIX) take priority over generic ones. The dictionary covers common UK, EU, US and Indian merchants:

  • Groceries— Tesco, Sainsbury's, Aldi, Lidl, Mercadona, Edeka, Albert Heijn, Whole Foods, Trader Joe's, DMart, Reliance Fresh, …
  • Transport & Fuel — Uber, Lyft, Bolt, Free Now, TfL, Trainline, SNCF, Deutsche Bahn, Shell, BP, Esso, Indian Oil, Bharat Petroleum, …
  • Utilities— EDF, E.ON, Octopus, Iberdrola, Vodafone, O2, Three, Verizon, AT&T, Jio, Airtel, council tax, …
  • Subscriptions — Netflix, Spotify, Apple, Disney+, Prime Video, Adobe, Notion, Figma, ChatGPT, GitHub, Microsoft 365, …
  • Income — payroll, salary, wages, HMRC refunds, dividends, pensions, reimbursements, …
  • Bank Fees, ATM, Transfers — overdraft, FX fee, ATM withdrawal, standing order, SEPA, UPI, NEFT, IMPS, …

Anything that doesn't match a rule falls into Uncategorised. That bucket is your edit list — review it manually and, if a merchant comes up repeatedly, you can add it to the categorisation step in your accounting tool.

What it accepts as input

One transaction per line. The amount can be at the start, end, or anywhere on the line — the parser looks for the rightmost numeric token and treats that as the amount. Locale-aware: 1,234.56 and 1.234,56 both work, as do parentheses for negatives ((84.50)) and CR/DR suffixes.

Examples that all work:

  • 01/06 TESCO STORES LONDON -84.50
  • NETFLIX SUBSCRIPTION 12.99 DR
  • 2026-06-15 SHELL PETROL (64.10)
  • SALARY ACME LTD 3.200,00

What it's good at — and what it isn't

Good for: spot-checking a month of personal spending, sanity-checking an export from your accounting tool, building a quick category breakdown without spinning up a spreadsheet, or staging data before pasting it into Notion / a budget app. Because everything runs in your browser, you can paste data you would never upload to a SaaS categoriser.

Not a replacement for:proper bookkeeping. Real bookkeeping needs a chart of accounts, VAT logic, multi-entity rules and an audit trail. Use this tool for triage, not journals. If you need a full pipeline — PDF statement → balance-reconciled transactions → ready-to-import accounting file — that's exactly what our main bank statement converter does. Free for 7 pages a day.

Workflow ideas

  1. Monthly self-audit.Paste your current month's transactions, skim the summary chips, find the categories that are larger than you expected.
  2. Year-end clean-up.Run the past 12 months through the tool, export the CSV, and pivot in a spreadsheet to spot subscription creep — every recurring charge ends up under Subscriptions or Utilities so they're easy to find.
  3. Pre-import labelling. Categorise first, then import into a budget app. You bring opinionated labels rather than letting the app guess.
  4. Client review.Bookkeepers can paste a client's narration list, show the breakdown in a meeting, and use the Uncategorised pile as the question list.

How to handle mis-labelled rows

The rules are conservative — a line goes Uncategorised rather than guessing wrong. If you see a mis-label, the most likely cause is a generic keyword (e.g. a merchant name that contains cafe). Two ways to fix it:

  • Edit the description before pasting — replace the ambiguous part with a clearer keyword (e.g. add OFFICE SUPPLIES to the line).
  • Edit the exported CSV — the Category column is plain text, so you can change it in any spreadsheet before importing into your accounting tool.

Get the data into the tool faster

If you're starting from a PDF, copy-pasting line by line is painful. Run the PDF through our converter first — you get clean rows you can paste straight in here, with the amounts already in the right column. The free tier handles 7 pages a day; paid plans start at €19/month for everything (including QBO, Xero, Sage and Excel outputs). The plan estimator tells you which one fits your volume.

FAQ

Is this really free?
Yes — unlimited use, no signup, no credit card. The rules engine ships with the page and runs in your browser; there are no per-request costs on our side.
Does my data leave my browser?
No. Every line you paste is matched locally with regex. Nothing is uploaded, logged or stored. Reload the page and your data is gone.
How many categories does it recognise?
Eighteen: Groceries, Restaurants, Transport, Fuel, Travel, Utilities, Rent & Housing, Healthcare, Insurance, Subscriptions, Shopping, Entertainment, Bank Fees, ATM / Cash, Tax & Government, Income, Transfers, and Uncategorised for anything the rules don't catch.
Why heuristics instead of an AI categoriser?
Determinism. The same input always produces the same output, you can see why every label was chosen, and it runs offline with no API bill. For most personal-finance triage tasks that's more useful than an LLM guess.
It mis-labelled a row — what do I do?
Either tweak the description before pasting (add a clearer keyword), or edit the exported CSV's Category column. The rules are conservative, so most surprises come from generic merchant names; a small edit usually fixes it.
Can I add my own categories or rules?
Not from the UI today — the rules are baked into the page so it stays a single static file with no backend. If you'd find a self-hosted JSON of the dictionary useful, let us know and we'll publish it.
Does the tool support amounts in EUR, USD, GBP, INR etc.?
Yes. Currency symbols (€, £, $, ₹, ¥) are stripped silently and both 1,234.56 and 1.234,56 are accepted. The category labels don't depend on currency.
I have a PDF, not a list of transactions. What now?
Run the PDF through our main converter first — you'll get clean rows you can paste straight in here. The free tier is 7 pages a day with no signup.

Related tools and guides