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.50NETFLIX SUBSCRIPTION 12.99 DR2026-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
- Monthly self-audit.Paste your current month's transactions, skim the summary chips, find the categories that are larger than you expected.
- 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.
- Pre-import labelling. Categorise first, then import into a budget app. You bring opinionated labels rather than letting the app guess.
- 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 SUPPLIESto 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.