Three tiers
- Exact match (0.95–0.99): the normalized description matches a line you categorized before; amount-aware when several match.
- Similarity (0.75–0.94): weighted token similarity against your company's history, with an amount tie-break.
- Private model (0.75–0.89): only when the first two are unsure, the description and up to five candidates go to the local model to pick one.
Reading the row
Suggested rows are marked; the method (exact_match, similarity, ai) and the matched prior description are available in the row detail. Accepting writes the categorization; ignoring it costs nothing.
Undo
- Open the row and press Undo categorization.
- Finanly posts a reversal through the export path with its own idempotency key.
- The line returns to the queue; the history entry that fed AI Match is updated so the wrong suggestion does not repeat.
Backfill history
Use Backfill history (POST /v1/business/transactions/backfill-history) after importing old ledger data so tiers 1–2 have something to match against. Stats are on …/categorization-history/stats.