Spending Categorizer

Paste a bank or credit-card CSV export: every transaction is auto-categorized by merchant keywords (add your own rules to refine) and spending is summarized by category — totals, share and a bar chart, plus a categorized CSV you can download. Runs in your browser; nothing is uploaded.

Try:
Spending summary

About this tool

Export your transactions from your bank or credit-card site as CSV, paste them above, and get an instant picture of where the money went. Every row is matched against a built-in table of merchant keywords — Groceries, Dining & Takeaway, Transport, Fuel, Shopping, Subscriptions & Streaming, Utilities & Phone, Housing & Rent, Insurance, Health & Fitness, Entertainment, Travel, Cash & ATM, Transfers, Fees & Interest — and money coming in is recognized as Income. Anything unmatched lands in Other, and you can add your own keyword = Category rules (checked before the built-ins) to route it wherever you want.

The summary shows each category's total, its share of overall spending, the transaction count and a proportional bar, followed by total spending, income and net cash flow. Switch the output to Categorized CSV only to download the original rows with a Category column appended — ready for a spreadsheet or budgeting app. Everything runs locally in your browser; your statement never leaves your machine.

Worked example

Pasting this statement:

Date,Description,Amount
2024-01-05,WALMART SUPERCENTER,-52.30
2024-01-06,STARBUCKS #1234,-4.50
2024-01-07,SHELL GAS STATION,-48.90
2024-01-08,NETFLIX.COM,-15.99
2024-01-09,WALMART SUPERCENTER,-34.80
2024-01-10,ACME PAYROLL,2000.00
2024-01-11,CITY PARKING,-12.00

produces this summary (plus the categorized rows):

Spending by category
====================

Category                       Total   Share  Txns
--------------------------------------------------
Groceries                     $87.10   51.7%     2  ████████████████████
Fuel                          $48.90   29.0%     1  ███████████
Subscriptions & Streaming     $15.99    9.5%     1  ████
Transport                     $12.00    7.1%     1  ███
Dining & Takeaway              $4.50    2.7%     1  █
--------------------------------------------------
Total spending               $168.49  100.0%     6
Income                      $2000.00             1
Net cash flow              +$1831.51

Formats and limits

FAQ

Which bank exports does this work with?

Any bank or card provider that exports CSV. The tool auto-detects the usual header names — Description/Payee/Details/Memo for the merchant, Amount (or Debit/Credit) for the money, Date/Posted for the date — so most exports work as-is. If your bank uses unusual headers, type them into the column fields; if it uses semicolons (common in Europe), the delimiter is sniffed automatically.

How do I fix a transaction that lands in the wrong category (or in Other)?

Add a rule line like costco = Wholesale or my landlord llc = Housing & Rent in the rules box. Rules are case-insensitive substring matches, checked before the built-in keyword table, so they always win. One rule per line; # starts a comment. The category name is free text — you can invent your own categories.

Why are my expenses showing up as income?

The tool expects money out to be negative and money in positive, which is what most banks export. Some card statements export spending as positive numbers instead — tick Invert amounts and the signs are flipped before categorizing. Statements with separate debit and credit columns are handled automatically (debits are money out).

Is my bank data uploaded anywhere?

No. The categorizer is WebAssembly running entirely in your browser — the CSV is parsed, categorized and summarized locally, and nothing is sent to a server. You can disconnect from the network after the page loads and it keeps working.

Can I get the result into Excel or Google Sheets?

Yes — set Output to Categorized CSV only and use the download link under the result. You get your original rows with a Category column appended, quoted as standard CSV, which imports cleanly into any spreadsheet or budgeting app. The date column is passed through exactly as your bank wrote it.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool spending-categorizer "Date,Description,Amount
2024-01-05,WALMART SUPERCENTER,-52.30
2024-01-06,STARBUCKS #1234,-4.50
2024-01-10,ACME PAYROLL,2000.00"

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/spending-categorizer/?data=Date%2CDescription%2CAmount%0A2024-01-05%2CWALMART%20SUPERCENTER%2C-52.30%0A2024-01-06%2CSTARBUCKS%20%231234%2C-4.50%0A2024-01-10%2CACME%20PAYROLL%2C2000.00&description_column=Description&amount_column=Amount&debit_column=Debit&credit_column=Credit&date_column=Date&rules=starbucks%20%3D%20Coffee%0Agym%20%3D%20Health%20%26%20Fitness&output=both&currency=%24&delimiter=auto&invert_amount=true

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.