AnyTool
Your files never leave your device. All processing happens locally in your browser.

How do I categorize my bank or card transactions from a CSV?

Upload (or paste) a bank/card transaction CSV, map the date, description and amount columns, and the tool auto-categorizes every transaction by matching keywords in the description against a built-in merchant list — Tesco/Walmart → Groceries, Uber → Transport, Netflix/Spotify → Subscriptions, payroll → Income. You then see a summary by category (totals, %, count), income vs expense and top merchants, can correct any row or add your own keyword→category rules, and export a categorized CSV. Everything runs in your browser — your transactions are never uploaded and we never link to your bank.

  • Rule-based KEYWORD categorization across ~20 standard personal categories — not AI, not bank-connected
  • Detects income vs expense from the amount sign or a separate debit/credit column
  • Correct any row and add custom keyword→category rules that win over the built-ins and re-apply live
  • Summary by category (amount, % of spend, count, bar) + income vs expense + top merchants + uncategorized count
  • 100% client-side — your transaction history never leaves your browser; honest: ~50–70% accurate, review before budgeting/taxes

What is

Transaction Categorization

Transaction categorization is the process of assigning each line on a bank or card statement to a spending category (such as Groceries, Transport, Subscriptions or Income) so the money can be summarised and budgeted. A rule-based categorizer does this by matching keywords in the transaction description against a map of common merchants — an approach that is transparent and private but only about 50–70% accurate, so the categories should be reviewed and corrected.

Personal Finance

Related terms

BudgetingSpending CategoriesBank StatementMerchantIncome vs Expense

How to Categorize a Bank Transaction CSV

Upload a bank or card transaction CSV, map the date/description/amount columns, review and correct the auto-assigned categories, and export a categorized CSV — entirely in your browser.

3 minWeb browser
  1. 1

    Upload your transactions

    Export a CSV from your online banking (with a date, description and amount column) and drop it in, or paste the text. Nothing is uploaded.

  2. 2

    Map columns & review categories

    The tool auto-detects the date, description and amount columns (or separate debit/credit) — adjust if needed — and categorizes each row by keyword. Correct any row from its category dropdown and add your own keyword→category rules.

  3. 3

    Check the summary & export

    Review the by-category totals, income vs expense and uncategorized count, then export the categorized CSV and the category summary. Review before using for budgeting or taxes.

Result: A categorized transaction CSV and a spending summary by category

Frequently Asked Questions

No. It never links to your bank and never asks for a login. It only reads the transaction CSV you upload or paste, and it does so entirely in your browser.

Unlike budgeting apps that ask you to connect your online-banking login (or upload your statement to a server) so a third party can pull and categorize your spending, this tool is not bank-connected at all. You export a CSV from your own online banking and load it here; the file is parsed and categorized on your own device, nothing is uploaded, logged or stored, and the page works offline once cached. A transaction history reveals where you shop, where you live, your income and your habits, so keeping it on-device is a real privacy win — only the categorized CSV you choose to export ever leaves the page.

It is rule-based keyword matching, not AI, so it is typically right about 50 to 70 percent of the time. Always review and correct the categories before trusting the totals.

The tool guesses each category by matching keywords in the description against a built-in list of a few hundred common merchants and terms; the strongest (most specific) keyword wins, otherwise the row is left Uncategorized. Standalone keyword rules of this kind typically reach 50–70% accuracy, because real statement descriptions are often abbreviated or carry payment-processor noise (for example “SQ *XYZ 0042”). That is why every row has a category dropdown you can correct, and why you can add your own keyword→category rules — which win over the built-ins and re-apply instantly — so the more you teach it, the better it fits your statement. Review the categories before using them for budgeting, expense claims or taxes; this is not financial or tax advice.

From the amount. With a single signed Amount column, negative values are expenses and positive values are income; if your file has separate Debit and Credit columns, you can map those instead.

Bank CSVs use two common layouts. Some have one Amount column where money out is negative and money in is positive — the default the tool assumes. Others split money out into a Debit (or “money out”) column and money in into a Credit (“money in”) column; a toggle lets you map those two columns instead, and the tool combines them into a signed amount (credit minus debit). If your single-column export shows expenses as positive numbers, a checkbox flips the sign. The summary then reports total income, total spend and the net, and the by-category bars show each category’s share of spending.

You can export a categorized CSV (your original columns plus a normalized Amount and a Category) and a category summary. Nothing is uploaded — the export is built in your browser.

The categorized CSV keeps every original column and appends a normalized Amount and your final Category (including any corrections and custom rules), so you can drop it straight into a spreadsheet or accounting import. A separate category-summary CSV lists each category with its total, count and share of spending, plus total income, total expense and net. Both are generated entirely on your device and saved as UTF-8 with a BOM so accents and currency symbols survive in Excel; you can also copy either to the clipboard. No transaction data is ever sent anywhere — only the file you choose to download leaves the page.

Detailed Explanation

How It Works

Expense Categorizer — Sort a Bank/Card Transaction CSV by Spending Category in the Browser

The Expense Categorizer is a 100% client-side tool that takes a personal bank or credit-card transaction export (CSV) and assigns each transaction to a spending category. The user uploads or pastes the CSV; PapaParse reads it (so quoted descriptions with embedded commas survive) and the tool auto-detects the date, description/merchant and amount columns — or a separate debit/credit pair. Each row is categorized by a case-insensitive KEYWORD match of its description against a built-in map of a few hundred common merchants and terms spread across ~20 standard personal categories (Groceries, Dining & Takeout, Transport & Fuel, Housing & Rent, Utilities, Shopping & Retail, Entertainment, Subscriptions, Health & Medical, Insurance, Travel, Education, Personal Care, Gifts & Charity, Fees & Bank Charges, Cash & ATM, Taxes & Government, Kids & Childcare, Pets, Income, Transfers & Savings). The strongest (longest, most specific) keyword wins; an unmatched row is left Uncategorized. The result is an editable transactions table plus a summary by category, income vs expense and top merchants, all exportable as CSV.

  • Input: a personal bank/card transaction CSV (date, description, amount — or debit/credit)
  • ~20 research-backed personal spending categories with a built-in merchant keyword map
  • Strongest keyword match wins; unmatched rows are Uncategorized
  • Income vs expense from the amount sign, or a mapped debit/credit pair
  • Distinct from invoice-expense-category (business/accounting) and receipt-ocr-categorizer (OCR of receipts)
Methodology

How Rule-Based Keyword Categorization Works — and Its Accuracy

Categorization is rule-based, not AI and not bank-connected. The engine flattens its built-in category map into a list of keyword→category rules sorted by descending keyword length, so a specific keyword such as "uber eats" (Dining) beats a generic "uber" (Transport). For each transaction it lowercases the description and returns the first matching rule; if none match, the row is Uncategorized (or Income when the amount is positive). The user can override any row from a category dropdown and can add custom keyword→category rules, which are inserted ahead of the built-ins so they win and re-apply to every matching row instantly; clicking "rule" on a row turns a one-off correction into a reusable rule. Because real statement descriptions are abbreviated and carry processor noise, standalone keyword/MCC rules of this kind typically reach only 50–70% accuracy — which is why the tool foregrounds review, correction and custom rules rather than presenting the result as final.

  • Keyword rules sorted longest-first so specific merchants beat generic ones
  • First matching rule wins; positive-amount unmatched rows default to Income
  • Per-row override + custom keyword→category rules that win over built-ins and re-apply live
  • "Make a rule" promotes a single correction into a reusable rule
  • Rule-based accuracy is ~50–70% — review and correct before relying on totals
Privacy & Security

Privacy vs Bank-Linking Budgeting Apps

A transaction history is among the most sensitive data a person owns: it exposes where they shop, where they live, their income and their habits. Many budgeting and categorization apps require connecting your online-banking login (via an aggregator) or uploading your statement to a server so a third party can pull and categorize the data. The Expense Categorizer does neither — it never links to a bank and never uploads anything. The CSV is parsed, categorized and summarised entirely in the browser; nothing is sent to a server, logged or stored; there is no row cap; and the page works offline once cached. Only the categorized CSV or summary the user chooses to export ever leaves the page.

Limitations

Honest Limits: Rule-Based, Not AI, Not Bank-Connected, Not Tax Advice

The tool is explicitly honest about what it is. It is RULE-BASED keyword matching, not AI, and is NOT connected to any bank — it only reads the CSV provided. It guesses categories from description text, so messy or abbreviated merchant names (e.g. "SQ *XYZ 0042") often stay Uncategorized and some guesses are wrong; ~50–70% accuracy is typical for this approach. The user should review and correct categories, and add custom rules, before using the output for budgeting, expense claims or taxes. Amount parsing handles common currency symbols, thousands separators, parentheses for negatives and DR/CR markers, but ambiguous formats can still misread. The tool gives no financial or tax advice and is not a substitute for keeping your own records; users should verify totals against their statements.

  • Rule-based keyword matching — not AI and not connected to any bank
  • Abbreviated/processor-noisy descriptions may stay Uncategorized; some guesses are wrong
  • Review and correct (and add rules) before budgeting, expense claims or taxes
  • Not financial or tax advice; verify totals against your own records
  • Distinct from the business invoice categorizer and the receipt-OCR categorizer
Personal expense categorization: in-browser (AnyTool) vs typical bank-linking budgeting apps
CapabilityAnyToolTypical budgeting / categorizer apps
Where it runs100% in your browser, CSV never uploadedUploads statement or links your bank login
Bank connectionNone — you provide a CSVOften required (aggregator login)
Transaction-data safetyStays on your deviceSent to a third party
Categorization methodTransparent keyword rules you can see & editOpaque (AI/ML or hidden rules)
Custom rulesYes — keyword→category, win over built-insSometimes (paid tiers)
Correct a categoryYes, any row, instantlyVaries
Summary by categoryTotals, %, count, bar + income/expenseYes (often gated)
Export categorized CSVYes, free, no capOften paywalled / capped
Honest about accuracyYes — ~50–70%, review before taxesRarely stated
Cost / signupFree, no signupOften subscription / account

AnyTool is a privacy-first client-side expense categorizer — your transactions never leave the browser and it never links to your bank. It is rule-based keyword matching (not AI), typically ~50–70% accurate, so review and correct categories before using them for budgeting or taxes; not financial advice.