What this article is about
One bank payment matched the right invoice silently, another shows up as a suggestion waiting for your click, and a third matched nothing. The matching pipeline decides all three, and it follows a deterministic scoring model that's worth knowing. Everything it does automatically is visible, explainable ("Why this match?"), and undoable — see why this matched, and how to undo.
The four scoring signals
When a transaction lands from a bank-statement upload, the pipeline scores it against your open invoices. Candidates are searched within a ±60-day window around the payment by default. The score is a weighted sum of four signals, 100 points max:
| Signal | Max points | What it checks |
|---|---|---|
| Invoice number | 40 | The invoice number appears in the bank reference field (full points), near a payment keyword like "inv", "ref" or "bill" in the description (slightly less), or anywhere without such context (much less — a guard against coincidental digit runs). Tried with and without leading zeros. |
| Amount | 25 | Exact match earns full points. Any difference under €5 still scores well, and a percentage ladder scores deviations up to 20% — tolerating bank fees, tips, and early-payment discounts. Currency and money direction must match, or the signal scores zero. |
| Date | 20 | Measured against both the invoice date and the due date — the better one counts. Full points for same-day payment, sliding down over 90 days after the date; small credit for prepayments up to 14 days before. |
| Counterparty | 15 | An exact IBAN match with the vendor's saved bank details earns instant full points. Otherwise a fuzzy name match against the vendor name and every spelling the system has learned — each confirmed match teaches it new bank-side spellings of the vendor's name. |
The behaviour tiers
| Score | Tier | What happens |
|---|---|---|
| ≥ 90 | Strong (green) | Silent auto-match. Linked, no action needed — still visible and undoable. |
| 70–89 | Likely (amber) | Auto-matched with a review flag so someone spot-checks it. |
| 50–69 | Possible (blue) | Suggestion in the Matching inbox — you approve or reject. |
| 30–49 | Weak (gray) | Hidden suggestion, shown only via the "Show all" toggle. |
| < 30 | — | No suggestion created. |
The thresholds and windows are tuned automatically — there are no user-facing threshold settings to maintain. If your business runs on unusually long payment terms and matches seem to cut off too early, write to [email protected].
Silent-match safety
Silent linking has extra guards beyond the score, built for the classic failure case: an old open invoice with the same vendor and amount grabbing this month's payment.
- The 30-day rule. A match based only on "vendor IBAN + exact amount" — no invoice number anywhere in the payment text — is linked silently only when the payment is within 30 days of the invoice or due date (whichever is nearer). Older matches are still linked, but flagged for your review instead of silent.
- The ambiguity guard. If two open invoices from the same vendor have the exact same amount and the payment date can't tell them apart, the system never silently picks one. It links with a review flag and asks you to confirm which invoice the payment belongs to.
- The 90-day bundle rule. The one fully-silent multi-invoice case — several same-vendor, same-date invoices summing exactly to one payment — only fires when every invoice is within 90 days of the payment.
One payment, several invoices
A single bank payment covering multiple invoices is handled natively: when the payment text mentions two or more invoice numbers and the invoices add up to the payment, the inbox shows one grouped "Bundle" entry you approve or reject in a single action. Partial payments and the manual split editor exist too — see split and bundled payments.
The pipeline learns from you
Every match you confirm or reject feeds a per-company memory. A vendor you've confirmed three times (with few rejections) becomes trusted and gets a modest score boost on future suggestions — but the boost never pushes a match across an auto-link or silent-match boundary from below. Learning re-ranks and proposes; it never silently escalates. Details in how matching learns from you.
When matching runs
- On bank-statement import — every new transaction is scored against open invoices.
- On every new invoice — scanned, emailed-in, or created manually, the invoice is scored against open transactions. This catches invoices that arrive after you already paid.
- Nightly safety sweep at 03:00 UTC — catches anything the event-driven runs missed.
You never trigger matching manually.
Overriding and undoing
- Undo any match —
Unmatchon the transaction (web) or the Matched segment (mobile) reverts the invoice to unpaid and restores the transaction. Bundles revert fully too. Every auto-match is recorded in the audit trail with its score and signals. - Manual link — search unpaid invoices from the transaction and link directly when the score missed it.
- Custom rules — per-company rules can auto-categorize or ignore recurring transactions (e.g. transfers between your own accounts). Rules never link a transaction to an invoice — that always goes through scoring or your explicit confirmation. See creating a custom matching rule.
Troubleshooting
It matched the wrong invoice. Unmatch it, then approve the right suggestion or link manually. Open "Why this match?" first — the signal breakdown usually shows which signal misfired.
It missed an obvious match. Check the invoice is still open (paid invoices are excluded), the currencies match, and the payment is within the search window. Then link manually.
A same-vendor payment now asks for review instead of matching silently. That's the ambiguity guard or the 30-day rule doing its job — confirm once and you're done.
Related
- Why this matched, and how to undo — the explanation view and the undo paths
- Split and bundled payments — one payment, several invoices
- How matching learns from you — trusted vendors and category memory
- Creating a custom matching rule — categorize or ignore recurring transactions
- Understanding confidence scores — the separate score on document scanning