Back to blog
Frameworks··7 min read

Categorize your spending: the 22-category system

Why 22 (not 100) categories give you a usable view of your money, the rules we use to assign each, and how to set up your own override patterns so re-categorizing is a one-time job.

When we built Sortlumo, the first design question was how many spending categories to use. The default budgeting apps lean toward 60-100. Hand-rolled spreadsheets often have 5. We landed on 22, and we still think it's the right number. Here's why — and the full list, with the rules we use to assign each.

Why 22, and not 100

More categories don't make a budget more useful. They make it more accurate, which is a different thing. Accurate categorization is necessary for accountants — because they're producing a document that has to balance against general ledger accounts. Useful categorization is what you need as a person, because you're actually trying to act on the data.

The constraints we landed on:

  • Every category should produce a different decision. If you'd take the same action whether something landed in "Groceries" or "Restaurant Groceries", they should be the same category.
  • You should be able to remember the whole list. If you can't hold the categories in your head, you can't make spending choices that align with them.
  • Combined they should cover 99% of real-world transactions. An "Other" category should rarely fire.
22 felt high to us at first. We started with 14. The categories we added back came from watching people manually override the same way over and over — the most common moves were splitting Subscriptions from Software, splitting Travel from Transport, and breaking out Education from Personal Care.

The full 22

Essentials (6)

  • Housing — rent, mortgage, HOA, property tax, home insurance.
  • Utilities — electric, gas, water, internet, mobile phone.
  • Groceries — grocery stores, farmer's markets, bulk grocery delivery (Instacart of a grocery store).
  • Transport — public transit, rideshare, parking, tolls. Not gas.
  • Fuel — gas stations and EV charging. Separate from Transport because it correlates differently with car ownership.
  • Healthcare — medical, dental, vision, pharmacy, therapy. Health insurance premiums when not deducted from paycheck.

Discretionary (7)

  • Dining — restaurants, coffee shops, food delivery from restaurants (DoorDash, Uber Eats).
  • Entertainment — movies, concerts, sports tickets, museums.
  • Shopping — non-essential retail, clothing, household goods, Amazon non-essentials.
  • Travel — flights, hotels, vacation rentals, travel insurance. Not gas (Fuel) or rideshare on a normal day (Transport).
  • Personal Care — haircuts, salon, gym, fitness classes, beauty.
  • Hobbies — sports gear, craft supplies, music gear, gaming.
  • Gifts & Donations — gifts to others, charity, religious giving.

Recurring digital (3)

  • Subscriptions — streaming, news, magazines, content subscriptions. The forgotten-cancel bucket.
  • Software — productivity tools, design tools, hosting, domains, paid apps. Separate from Subscriptions because the cost-benefit math is usually obvious for software.
  • Education — courses, tuition, books, learning subscriptions that aren't entertainment (Coursera, but not Netflix).

Money flows (4)

  • Income — salary, freelance income, refunds, gifts received.
  • Transfers — between your own accounts. We treat these as neutral, not as spending.
  • Savings & Investments — explicit savings deposits, brokerage contributions, retirement contributions.
  • Fees & Interest — bank fees, ATM fees, credit card interest, late fees, overdraft.

Catch-alls (2)

  • Kids & Pets — childcare, school fees, kid gear, vet, pet food, pet insurance. Combined because households often think of them as the same "dependents" budget line.
  • Other — the catch-all when nothing fits. Should be under 1% of your total spend.

The three mistakes that wreck a category budget

These have nothing to do with which categories you pick, and they distort totals far more than any borderline judgement call.

  • Counting a credit card payment as spending. The single most common error. If you categorize both the purchases on the card and the payment from checking that settles them, you've counted the same money twice. The payment is a Transfer. Only the underlying purchases are spending.
  • Counting transfers and investments as expenses. Moving $500 to savings is not a cost; it's the same money in a different pocket. Lump it in with spending and every ratio you calculate is wrong.
  • Ignoring refunds. A return posts as a credit in a spending category. Drop it and the category overstates permanently — and returns cluster in exactly the categories people watch most.
A quick test that catches all three: income minus spending should roughly equal the change in your balances over the period. If your numbers say you overspent wildly but your balance went up, you're counting transfers as spending somewhere.

The genuinely hard cases

Any category system meets transactions that don't fit cleanly. What matters isn't finding the “right” answer — it's being consistent, so month-over-month comparisons stay meaningful.

  • Mixed baskets. One Target run is groceries, cleaning supplies, and a lamp. Splitting each receipt by line is possible and almost nobody sustains it. Pick the dominant category for the merchant and stay consistent; the error averages out across months in a way that arbitrary splitting doesn't.
  • Amazon. The same problem with less signal — the statement rarely says what you bought. Treat it as Shopping by default and override the obvious exceptions.
  • Cash withdrawals. A genuine black hole: the statement records the withdrawal, never the spending. Categorize the ATM line itself as a withdrawal rather than pretending to know, and accept that heavy cash use limits what any statement-based system can tell you.
  • Peer payments. Venmo, Zelle, and Cash App might be splitting a dinner bill, paying rent, or repaying a friend. The descriptor almost never says. If a payment app is a large share of your outflow, it's worth categorizing those few lines by hand.
  • Reimbursed work expenses. The charge and the reimbursement often land in different months, so a flight can spike Travel in March and show a mysterious credit in April. Category them as a matched pair if you can.

How Sortlumo assigns categories

A model reads the statement and, for each line, returns the normalized merchant, the amount, a category from the 22, whether the charge looks recurring, and a self-assessed confidence score. The category definitions above are given to it directly, which is why the same merchant lands in the same bucket across statements and across accounts.

The confidence score rides along with each transaction and is included in the Excel export, so you can sort by it and spot the lines worth a second look.

Your corrections outrank the model

Change a category you disagree with and Sortlumo offers to make it permanent for that merchant. Take it and two things happen: the transactions you already have from that merchant move across, and a rule is stored. From then on the merchant is filed your way — the rule is applied deterministically after each new statement is parsed, so it wins over whatever the model would have guessed, with no second inference call.

It's deliberately opt-in. Learning silently from a single edit would change rows you never asked anyone to touch, so a correction stays a correction until you promote it. Rules live under Settings, where you can add them by hand or delete them, and they match either the exact merchant or any merchant containing your text — the second being what you want for a chain that appends a store number to every charge.

Adapting this for your own spreadsheet

If you want to use this category system manually:

  1. Set up a "Category" column in your spreadsheet with a data validation list of these 22 categories.
  2. Set up a second sheet with two columns: Merchant pattern and Category.
  3. Use VLOOKUP or XLOOKUP to map merchants in your statement to categories from your rule table.
  4. Anything that doesn't match a rule gets a manual category, then add that pattern to your rule table — so it self-trains over time.

Two things make this survive contact with reality. Match on a substringrather than the whole descriptor, because the raw strings carry store numbers and dates that change every time — matching WHOLE FOODS works where matching the full line never will. And order your rules from specific to general, since AMZN MKTP and AMZN DIGITAL may deserve different homes. Our guide to descriptors covers what those strings are made of.

What to actually look at, once it's categorized

A single month of categories is a snapshot and a poor one — one dental bill or car repair makes a category look like a habit. The useful views are comparative:

  • Essentials versus discretionary. The six Essentials against the seven Discretionary categories is the ratio that tells you how much slack you actually have.
  • Three months side by side. Long enough to distinguish a habit from an event, short enough to still be actionable.
  • The same month last year. Seasonal spending is real, and comparing December to November tells you very little.
  • "Other" as a health check. If it exceeds a percent or two, the rules need work — and everything else is quietly understated.

The category we almost didn't include

"Subscriptions" almost went into the "Software" bucket. We separated them because the cost-benefit conversation is genuinely different. Software is usually a deliberate, ongoing decision (you'd notice if Notion disappeared tomorrow). Subscriptions are usually a one-time decision that you forgot about (you might not notice if Hulu disappeared tomorrow). Same charge structure, different decision — therefore different category. If that distinction lands, the subscription audit is the natural next step.