How auto-categorization works.

Holdfast categorizes your transactions using a mix of rules and AI. Your corrections train it. Here’s what’s happening under the hood and how to fix a mis-categorized one.

The two-stage flow

Every transaction goes through two checks before it lands in a category:

  1. Rules first.If we’ve already seen this merchant before (either from a built-in list or your own corrections), we apply that category instantly.
  2. AI fallback. If the merchant is unfamiliar, we send the merchant string and amount to Claude Haiku for a category suggestion. We never send your account number, identity, or balance.

Accuracy is around 85% out of the box for typical U.S. consumer transactions and improves as you correct categories — your overrides become rules for that merchant.

Changing a category

You can change any transaction’s category from the Transactions page. Tap the row, pick a new category from the dropdown, save. The change applies to this transaction and any future transactions from the same merchant.

Editing a row

Trader Joe’s · auto: Groceries-$58.42

Tap to change · future Trader Joe’s transactions follow the new category

The “changed” badge

Once you’ve overridden a category, the row shows a small “changed” badge instead of “auto”. This is just a heads-up that the category came from your manual choice, not the automatic suggestion. It has no functional effect.

Hiding a transaction from your budget

Some transactions shouldn’t count against your budget at all — a Venmo to a friend that’s really just splitting a bill, a credit card payment that’s already counted in the underlying purchases, a transfer between your own accounts.

For these, use Hide from budgeton the row’s menu. The transaction stays visible in Transactions (it’s your history), but it’s excluded from drift and pace calculations.

Tip

Internal transfers (savings → checking, etc.) are detected automatically when both accounts are connected to Holdfast. You shouldn’t need to hide them manually.

Categories you can use

The built-in category set:

  • Groceries— grocery stores, farmers’ markets, food co-ops
  • Dining— restaurants, cafes, takeout, delivery apps
  • Transport— gas, transit, ride-shares, parking
  • Housing— rent, HOA, repairs (mortgage usually under Fixed)
  • Utilities— electric, water, gas, internet, phone
  • Subscriptions— streaming, software, memberships
  • Health— pharmacy, copays, mental health
  • Personal— clothes, haircuts, gym, hobbies
  • Other— the catch-all

Custom categories are on the roadmap but not yet shipped. For now, the built-in set covers most situations. If a transaction doesn’t fit, either pick the closest match or use “Other” — the narration adapts.

What we do not send to AI

The AI categorizer gets the merchant name and amount, nothing else. It does not see your name, your bank, your account number, your balance, or your other transactions. The model is queried statelessly per transaction and Anthropic does not train on the data.

Still need help?

We read every email and answer within one business day.