When to read this
You've got subscriptions and want to know how the system tracks them, or you're trying to set up alerts so you notice if a vendor stops billing (which sometimes means the payment failed and you've quietly fallen out of service). This article covers how recurring detection works, what it surfaces, and how to override or manually mark a vendor as recurring.
For the rule-based path that auto-matches recurring transactions to recurring invoices, see creating a custom matching rule. For the broader vendor-correction flow, see how to fix a misread vendor name.
How auto-detection works
Three signals together form a "recurring" pattern, evaluated each time a new invoice from a given vendor arrives:
- Same vendor — matched by name, email sender, visual layout, page hash, font, and address format. The same multi-signal matching used elsewhere; not just text similarity. Two invoices from
HetznerandHetzner Online GmbHcount as the same vendor if other signals agree. - Similar amount — within ±10% of the previous cycle's amount. This covers price changes, currency drift, and small per-cycle variations (e.g. usage-based add-ons). Big jumps (more than 10%) break the pattern temporarily; see the troubleshooting section.
- Regular interval — within ±3 days of the expected next date, where the expected interval is inferred from the gap between the first two occurrences. A monthly cycle gets ±3 days. A yearly cycle also gets ±3 days (so a yearly invoice arriving the same week of the year stays in pattern).
After the third occurrence that fits all three signals, the vendor is flagged as recurring with the inferred cycle (monthly / quarterly / yearly / custom-N-days). The cycle assignment is automatic; you can override it manually if the detection is wrong.
The three-occurrence threshold is deliberate: a single invoice from a vendor isn't recurring, two coincident invoices could be a coincidence, three at a stable interval is a strong signal.
What you see when a vendor is recurring
Three surfaces show recurring status:
Recurring Vendors view
In the Trading Partners section, a Recurring Vendors sub-page lists every vendor with a confirmed recurring pattern. For each: cycle (monthly / quarterly / yearly), last amount, next expected date, days-until-next-expected, total spend on this vendor in your base currency over different time ranges (last 12 months, year-to-date, all time).
Click any vendor to see the cycle history — a chronological list of all invoices from the vendor with cycle highlighting (this one was on schedule; this one was 5 days late; this one broke the pattern).
Recurring badge on individual invoices
Each new invoice from a recurring vendor displays a small recurring badge on the document detail page, linking back to the cycle history. The badge also appears in the Documents list view.
Missed-invoice alert
If a recurring invoice doesn't arrive within 7 days of the expected next date, you get a notification (email + in-app) prompting you to check. This catches:
- Payment failures: your card failed and the vendor stopped sending invoices because the subscription auto-cancelled.
- Vendor admin errors: vendor forgot to send the invoice this cycle.
- Service changes: your subscription was downgraded or removed and the cycle silently stopped.
The alert is one of the highest-leverage features of recurring detection for businesses with many subscriptions. Without it, you'd typically notice a missing invoice when you reconcile your books at month-end; with it, you notice within a week.
The alert fires once per missed cycle. If you confirm the miss is intentional ("yes, we cancelled this subscription"), you can mark the vendor as no-longer-recurring from the cycle-history page; future cycles aren't expected and no alert fires.
Plan availability
Auto-detection runs on the Growth plan. Free, Starter, and Business users see vendors normally but without the auto-recurring flag and without the missed-invoice alerts.
Manual marking is available on every plan. From Trading Partners → vendor detail → Set as recurring, you can mark any vendor as recurring with a chosen cycle, regardless of plan. The cycle history view and the recurring badge work the same way. The missed-invoice alert also fires for manually-marked vendors on every plan.
Why the auto-detection is gated to Growth: the detection runs continuously on every invoice and updates the cycle prediction; on a large book, this is a measurable amount of background compute. The manual-mark path is essentially free on our side (one user action sets a flag), so we expose it everywhere.
Manual marking
Sometimes you know a vendor will recur before the auto-detector has three samples to work with. Marking manually short-circuits the wait:
- Open
Trading Partners → vendor → Set as recurring. - Pick the cycle (monthly / quarterly / yearly / custom N-days).
- Set the next expected date (the system suggests one based on the most recent invoice's date plus the cycle).
- Save.
The vendor now appears in the Recurring Vendors view and fires the missed-invoice alert on schedule. Subsequent auto-cycle-prediction kicks in once enough samples accumulate; if auto-detection later wants to change the cycle (you marked it monthly but the actual pattern is every 28 days), you'll see a prompt in the cycle-history page to accept or reject the change.
Edge cases
The vendor charges different amounts each month — is it still detected? Up to 10% drift is tolerated. Wildly variable amounts (e.g. usage-based bills like AWS where the monthly amount swings 50%+) won't trigger the auto-recurring flag. The vendor still appears in your Trading Partners normally; you can mark them as recurring manually if you want the cycle tracking and missed-invoice alerts.
My subscription went up — did the pattern break? A single one-off jump above 10% pauses auto-detection for one cycle. If the next cycle stays at the new amount (within 10% of the new baseline), the pattern resumes at the new amount. Two or more consecutive break-the-pattern cycles end the recurring status; you'd need to re-mark manually or wait for three new in-pattern occurrences.
How do I manually mark a vendor as recurring? See the manual marking section above. Trading Partners → vendor → Set as recurring. The flow is the same on every plan.
Recurring detection picked up a one-time-but-coincidentally-quarterly purchase. Click the recurring badge on the most recent invoice → This isn't recurring. The pattern is cleared; the vendor's auto-recurring flag is removed. If the same false positive keeps firing (the detector keeps re-finding the same coincidental pattern), the override is sticky and the auto-detector won't re-flag the same vendor.
A recurring vendor has gone quiet — should I get the missed-invoice alert? Yes, 7 days after the next expected date. If you're not seeing the alert, check: is the vendor still flagged as recurring (the override might have cleared it)? Is the Notifications setting enabled for missed-invoice (Settings → Notifications)? Is your email address current?
I want recurring detection on a free plan. Manual marking works on every plan. Mark vendors manually and you get the cycle view + missed-invoice alerts. Auto-detection (the part that figures out the cycle for you without you marking it) stays Growth-only.
Two vendors merged in my Trading Partners — what happens to the recurring history? The surviving vendor keeps the recurring status (if it had one). If the merged-away vendor had its own recurring pattern, the histories combine; you might see two cycles that don't perfectly align, and the auto-detector may pause until the new combined history stabilises. Manual re-marking helps if the combined pattern is unambiguous.
Can I auto-match recurring invoices to specific bank transactions? Yes — set up a matching rule with counterparty contains <vendor> and action Auto-match to recurring invoice. The rule fires before the default scoring and links the matching transaction directly to the next open cycle of the recurring invoice.
Related
- Creating a custom matching rule — auto-match transactions to recurring invoices
- How the matching pipeline works — the default scoring that rules sit on top of
- How to fix a misread vendor name — the vendor-merge flow that affects recurring grouping