← Back to Help Center

Suggested Bank Rules

The Suggested Bank Rules section appears on a project's report page once you've uploaded a Bank Feed (For Review) export, a bank import file (.qbo or QBO-formatted CSV), or both. It looks at every recurring vendor pattern in the combined transaction set, proposes a QBO bank rule for each one, and lets you export them as an .xls that QBO accepts via Banking › Manage Rules › Import Rules.

When it shows up

If those two conditions are met, the section appears between the category breakdown and the recommended cleanup sequence.

Bank import files: covering more than 300 transactions

QBO caps the For Review export at 300 rows. For clients with large backlogs (most cleanup engagements, almost every rebuild), 300 rows isn't enough to surface every recurring pattern. The bookkeeper almost always still has the original .qbo or QBO-formatted CSV file they downloaded from the bank before importing it into QBO's bank feed; that file has the complete transaction set.

Drop those files into the Bank Import Files slot on the upload page (it accepts multiple files, one per bank or credit-card account). The rule generator merges them with the For Review export, de-duplicates rows that appear in both sources (matched on date, amount, and normalized vendor description), and clusters the combined set. The summary line at the top of the rule table tells you exactly how many rows came from each source.

Two formats are supported:

Bank import files only feed the rule generator. They do not affect the bank-feed health-score category, the unprocessed-transactions finding, or any other detector — those continue to read the For Review export as before.

How clusters become rules

The engine groups For Review transactions by a normalized version of the bank description. Card tails, dates, transaction IDs, and QBO noise prefixes (PURCHASE AUTHORIZED, POS DEBIT, ACH PMT, and similar) are stripped before grouping, so variants of the same vendor collapse into one cluster. Money-out and money-in transactions are clustered separately so the same payee can produce two rules when it shows up in both directions.

A cluster only becomes a rule when it contains at least 2 transactions. One-off charges don't warrant a permanent bank rule.

Account suggestions

Each row gets a suggested account, in this order, strongest signal first. The row also surfaces which signal produced the suggestion (small grey label under the dropdown) so you know at a glance whether to second-guess it:

  1. QBO match (majority) — if QBO already proposed the same account for at least half of the transactions in the cluster, and that account exists in the uploaded Account List, it wins. This is the strongest signal because it reflects either an existing rule or QBO's own learned suggestions.
  2. Vendor pattern — for ~50 common vendors (Verizon, Amazon, Shell, Stripe, Uber, etc.) we map the vendor name to a list of category keywords (Verizon → telephone, phone, wireless, internet, utilities, communications) and pick the first COA account whose name contains one of those keywords. Direction-aware: expense accounts are preferred for money-out, income accounts for money-in. We never invent account names — if the COA has none of the mapped keywords, this tier returns nothing and the next tier runs.
  3. QBO match (partial) — if at least one row in the cluster has a QBO suggestion that maps to a real COA account, even without majority agreement, it's used as a weaker signal.
  4. Chart of Accounts fuzzy match — if a single account name contains a 4+ character token from the cluster description (e.g. "Telephone" matches a "TELEPHONE SERVICE" cluster), that account is proposed.
  5. AI suggestion — for clusters that none of the deterministic tiers above could match, we send the residual patterns to Claude in a single batched call along with the uploaded Chart of Accounts. Claude can only suggest accounts that literally exist in that COA; any name it proposes that isn't on the list is dropped silently. AI-suggested rows are tagged with a small purple "AI suggestion" badge under the account dropdown so you can spot-check them. Treat these the same way you'd treat any auto-suggested account: confirm before export. If the AI tier is unavailable (timeout, rate limit, parse failure) the section degrades to the no-suggestion case below.
  6. No suggestion — when nothing fires, the row is flagged amber and the export button is blocked until you assign an account manually. The dropdown lists every account from the uploaded Account List, alphabetized.

If you didn't upload an Account List, the dropdown is replaced with a free-text input and you can type account names directly. The export will still work; QBO just enforces that the names match its own COA on import.

What you can edit per rule

The match pattern (the "description contains" string QBO will use) isn't directly editable in v1 — it's locked to the cluster's normalized key. PR feedback will guide whether that ships in v2.

Importing into QBO

  1. Click Export Rules (.xls). The file is named <ClientName>_Bank_Feed_Rules_<date>.xls.
  2. In QBO, go to Banking › Rules › New Rule dropdown › Import Rules.
  3. Upload the .xls. QBO previews each rule before committing — review names and accounts one more time, then confirm the import.

If QBO refuses the file or marks specific rows invalid, the most common cause is an account name that doesn't match the client's COA exactly (case-sensitive, including the colon-joined sub-account path). Re-pick the account in the LedgerClean table and re-export.

What this does NOT do