Transaction categorization

Categorize every transaction, once, and be done

Karchu categorizes thousands of transactions in seconds using deterministic rules you can read and edit. Every categorization is explainable, every change applies retroactively, and every rule survives the next statement.

  • Deterministic, auditable rules
  • Retroactive edits
  • Hundreds of merchant defaults
  • Amount-range rules for ambiguous merchants
  • Categories you fully control
  • Works across banks and statements

The categorization problem, honestly stated

Categorization is the hardest part of getting value out of a bank statement, and it is the part every consumer tool gets wrong in the same way. The naive approach is either "we will guess with a black-box model" or "you categorize each transaction one at a time in the UI." The first is unauditable, so when a transaction lands in the wrong bucket you have no way to fix the underlying decision. The second is not really categorization; it is transcription with extra steps.

A tool that categorizes properly needs three properties. Rules must be explainable, so you can look at a categorized transaction and see why. Rules must be editable, so you can fix mistakes without a support ticket. And rule changes must apply retroactively, so a fix improves your entire history instead of forcing you to re-categorize by hand.

How Karchu's rule engine works

A Karchu rule is a small pattern with three parts: a match (merchant name, description keyword, amount range, or a combination), a category, and a priority. When a transaction arrives, the engine walks the rules in priority order, and the first match wins. Because priority is explicit, you can layer a specific rule ("AMAZON PRIME" is Subscriptions) above a general one ("AMAZON" is Shopping) and the specific rule takes effect first. Amount-range rules let you separate ambiguous merchants: small Amazon charges become Household, large ones become Equipment, without hand-labeling.

Every categorization records the rule ID that produced it. Click on a transaction in the dashboard and you can see the rule that decided it. Edit the rule and every past and future transaction that matched re-categorizes automatically. There is no "retrain," no "rebuild," no waiting.

Defaults that get out of your way

Karchu ships with rules for hundreds of merchants that people actually spend money at: Uber and Lyft, Amazon and its subsidiaries, streaming services, groceries chains, fast food, coffee shops, delivery apps, utilities providers, mortgage servicers, payroll processors, credit-card processors, common SaaS billing descriptors, and so on. The defaults are opinionated but conservative: they cover the obvious cases and leave the edge cases to your custom rules.

Editing rules is the whole workflow

Most tools ask you to categorize transactions. Karchu asks you to edit rules. The distinction matters. Categorizing one transaction fixes one row. Editing a rule fixes every past and future transaction that would ever match. Over the first month or two, you spend a few minutes here and there tightening rules to match how you think about your money. After that, categorization is done. Every new statement lands fully categorized because the rules you built already cover it.

Categories are yours

The category list is fully editable. Add categories, rename them, delete the ones you do not use, reorder them for display. Rules reference categories by ID, so renaming does not break anything. Categories can be flat or grouped (for example, "Food then Groceries" and "Food then Dining" both roll up in the dashboard). Business workspaces can align categories with a chart of accounts so exports drop cleanly into accounting software.

Tags for the axis categorization does not cover

Sometimes you need to slice transactions in two ways at once: a category (what kind of spending) and a project or client (whose spending). Karchu supports tags in addition to categories. A single Home Depot charge can be Category=Supplies and Tag=Client-A, so the category breakdown still adds up correctly but the project-based export separates the client work cleanly.

Frequently asked questions

How does Karchu categorize transactions?

Karchu uses a deterministic rule engine. Each rule is a small human-readable pattern (a merchant name, a keyword, an amount range) that assigns a category when it matches. Rules run in a defined order, so specific rules beat general ones. The same input always produces the same category.

Why not use AI or machine learning for categorization?

Machine-learning categorizers work most of the time but produce silent failures the rest of the time, and you cannot explain a specific decision after the fact. Deterministic rules are auditable: for any transaction you can see exactly which rule assigned the category and edit that rule. Changes apply retroactively to every past transaction that matched.

Can I customize categories?

Yes. Add, rename, delete, and reorder categories freely. Rules reference categories by name, so renaming a category updates every rule and every historical transaction automatically.

How many rules ship by default?

Karchu ships with rules for hundreds of common merchants across food, transportation, subscriptions, retail, utilities, and payroll. Every default rule is editable.

Do rules work across statements from different banks?

Yes. Rules match on the normalized description, which is derived from the raw statement text regardless of source bank. A rule you build once applies to every future statement.