Skip to content

Bank Rules

Bank rules auto-categorize your transactions so you never categorize the same kind of activity twice. Each rule is a set of conditions (merchant, amount, description, direction, or source account) plus the actions to apply when it matches — a ledger, vendor, customer, tags, or memo. Rules run in priority order with a first-match-wins engine, fire automatically on new activity, and can be bulk-applied to history. AI can even mine your past categorizations and propose rules for you.

Key capabilities

  • Multi-condition matching with all (every condition) or any (at least one) logic
  • Match on description, counterparty/merchant, amount, transaction type (inflow/outflow), or source bank account
  • Operators: contains, starts with, ends with, equals, matches regex, greater than, less than, between — plus smart words overlap for messy bank descriptors
  • Actions: assign a ledger or split across several categories, vendor, customer, registry link, tags, a memo, or mark personal
  • Optional Apply to date range so a rule only matches transactions inside those dates
  • Priority ordering with first-match-wins; drag to reorder, and pin rules above learned bands
  • Direction guard that stops an expense rule from re-booking a deposit (and vice versa), with a per-rule opt-out
  • Preview any condition set against real transactions before saving
  • Bulk apply to existing transactions with dry-run, date filters, and uncategorized-only scoping
  • Create Rule in a transaction's drawer turns a correctly categorized transaction into a reusable rule
  • AI rule suggestions from your history, surfaced as a proactive banner you can accept or skip
  • Per-rule stats (lifetime matches, last matched) and a full audit panel with health and override signals
  • Requires the AI Pro add-on (unlocked during your trial)
  • Enable/disable without deleting, delete several rules at once, and see which rule categorized each transaction

How it works

Each transaction is checked against your enabled rules: your own rules first, then learned, AI and merchant rules. Within each group the more specific rule goes first (the longest text pattern, then more conditions), then the lower priority number, then the newer rule. The first rule whose conditions match — and which passes the direction guard — wins, applies its actions, and is recorded on the transaction. A counterparty default outranks learned rules; anything unmatched falls back to merchant patterns, Plaid categories, AI or manual categorization.

flowchart TD
  txn["New transaction"] --> sort["Enabled rules sorted by priority"]
  sort --> match{"Conditions match?"}
  match -->|"No"| next["Try next rule"]
  next --> match
  match -->|"Yes"| guard{"Direction guard ok?"}
  guard -->|"Blocked"| next
  guard -->|"Pass"| apply["Apply actions + tag transaction"]
  match -->|"None left"| fallback["AI suggestion / manual"]

How to use it

  1. Go to Bank Rules (under Books) and click New Rule. To start from a real example, open a categorized transaction and click Create Rule.
  2. Add one or more conditions, for example counterparty contains "Amazon" and amount less than 100.
  3. Pick the match logic: all (every condition) or any (at least one).
  4. Choose the actions: category (or Split), vendor/customer, tags, memo, or mark personal.
  5. Check the preview of matching transactions, then click Create Rule. By default it also runs over your existing uncategorized transactions.
  6. Set the Priority (lower = evaluated first among equally specific rules of the same source) or drag rules to reorder; your own rules always run before learned ones, and the first matching rule wins.
  7. Use Apply Rules to backfill history. Leave Dry run on first, then apply to Uncategorized only or to all transactions in a date range. Transactions you categorized by hand are never changed.
  8. Toggle rules on/off anytime, and check the Audit tab for health and override signals. Click Suggest Rules for AI proposals.

Pro tips

  • Always Preview before saving — it shows exactly what a rule would match and prevents an over-broad rule from miscategorizing dozens of transactions.
  • Use words overlap instead of contains for messy ACH/wire descriptors; it ignores corporate suffixes and bank boilerplate so "Wilson" no longer matches "Wilson Tennis".
  • Create rules for your top 10 recurring vendors first — that typically auto-categorizes the majority of routine activity.
  • Put specific rules above general ones; because the first match wins, a narrow amount-between rule should sit above a broad merchant rule.
  • Let the direction guard do its job — an expense rule won't book an inflow. Only enable cross-direction for legitimate cases like refunds posted back to the original expense ledger.
  • Review the Audit tab periodically: high override rates or never-matched rules are signals to rewrite or disable.

In-depth guide

Condition fields

Field Matches against
Description Raw transaction description
Counterparty Clean merchant name (registry name when linked)
Amount Transaction amount
Transaction type Inflow or outflow
Bank account Source ledger or its display name

Actions, ordering, and direction guard

Actions include category (or a split across several categories, but not both), vendor/customer, registry link, tags, memo, mark personal, Match transfers, and Allow cross-direction categorization. Rules are ordered by source first (yours, then learned, then AI, then merchant/Plaid), then by how specific the conditions are (longest pattern, then number of conditions), then by priority 1–10,000 (lower first), then newest first; dragging to reorder renumbers priorities, which decide between equally specific rules. Through Regent a rule can also be told to match on the description, the counterparty, or either: a rule matching on the description ignores its counterparty conditions, so a broad "Gusto" rule can step aside for the rules that name each person. Each transaction a rule categorized records the rule and the field it matched on. The Conflicts badge names the other rule or default a rule duplicates, shadows or disagrees with.

  • An expense ledger rule won't fire on an inflow; a revenue rule won't fire on an outflow.
  • Asset, liability, and equity ledgers are direction-agnostic.
  • Enable allow cross-direction only for refunds and similar edge cases. Rules cannot target a bank/source account as the category ledger.

Audit panel statuses

The Audit tab triages every rule over a rolling window (default 30 days):

Status Meaning
Healthy Matching as expected with a low override rate
Stale Hasn't matched in ~90+ days
Noisy Over-broad conditions
High override Users frequently re-categorize its matches (> 25%)
Never matched Has never matched a transaction
Processor counterparty Keys on a payment processor that pays many parties (a payroll provider, say) with nothing narrowing it, so every row lands in one category

The panel also shows per-counterparty drift, a "which rules would match?" debugger, and the transactions each rule owns. While you edit a rule, the preview marks matches that another rule would book first under Runs first.

AI suggestions

Suggest Rules analyzes categorized transactions and returns counterparty patterns with a ready-to-create rule and confidence. A nightly refresh and on-demand Refresh drive a proactive banner. Accept materializes a real rule; Skip dismisses it.

Bulk apply and limits

Use date filters to process large histories in batches. Disabled rules are skipped during bulk apply. Rules and stats are scoped per business. A rule's own Apply to date range keeps older periods safe from bulk apply and auto-categorization.

Regent and AI assistants

Regent can run the same audit and maintenance work in chat: check rule health, list conflicts, show what a rule owns, preview what a new or edited rule would match before you save it, and enable, disable, delete, or apply rules. Creating, editing, deleting, and applying rules pause for your approval. Other AI assistants you connect to DayZero can do the same; see Connect AI Assistants.