Anomalies
Anomalies scans your books for duplicate payments, unusual amounts, rapid charges, double-paid invoices or bills, and duplicate vendors — each with a severity, supporting details, and a link to the affected record. Review, correct the record, or Dismiss with a reason to suppress repeats. The page is titled Transaction Anomalies and requires the AI Pro add-on (unlocked during your trial).
Key capabilities
- Six detection types: duplicate payment, unusual amount, rapid succession, duplicate invoice payment, duplicate bill payment, duplicate vendor
- Scheduled scans (daily and after each sync) plus on-demand Rescan now (once every 5 minutes)
- Default 30-day lookback for transaction-based checks; vendor checks run across all active vendors
- Severity (High / Medium / Low) and type filters, grouped by type and sorted by highest severity, with a short tip for each type
- Summary tiles: Active, High Severity, Medium Severity, and Dismissed counts; click a tile to filter
- New badge on findings detected in the last 24 hours
- Inline details — counterparty, amount, totals, z-score (for unusual amounts), and transaction count
- Combine button on duplicate-vendor findings, where you choose which vendor to keep
- View Bill, View Invoice, or View links jump straight to the affected record or highlighted transactions
- Structured dismiss reasons with optional notes, plus Restore
- Dismiss All per type for clearing batches of false positives
How it works
Each scan flags suspicious items with supporting details and, for duplicate vendors, a one-click combine. You either fix the record or dismiss the flag with a reason, which suppresses that same finding on future scans.
flowchart TD
scan["Scheduled / on-demand scan"] --> checks["Rule + statistical checks"]
checks --> flag["Flag findings (severity + details)"]
flag --> review["Review + recommended action"]
review --> decide{"Resolve?"}
decide -->|"Fix record"| clean["Void / combine / recategorize"]
decide -->|"Dismiss w/ reason"| suppress["Suppressed on future scans"]How to use it
- Open Anomalies — findings are grouped by type and sorted with the highest-severity groups first.
- Use the severity and type dropdowns to filter; toggle Showing dismissed to include previously cleared items.
- Expand a type group to read each finding, its details (counterparty, amount, transaction count), and the type-level tip.
- Click View Bill, View Invoice, or View to open the affected record — or the filtered, highlighted transactions.
- Fix the issue: void or recategorize a duplicate from the linked record, or click Combine on a duplicate-vendor finding and pick the vendor to keep.
- To clear a false positive, click Dismiss, choose a reason (Expected/Recurring, Already Resolved, Not an Issue, Other), add an optional note, and confirm. Use Restore to undo.
- Click Rescan now to re-run detection on the last 30 days (limited to once every 5 minutes); the header shows the last-scanned time and the lookback window.
- To clear a whole group of false positives, use Dismiss All on that type, pick a reason, and confirm.
Pro tips
- Review anomalies weekly — catching a duplicate payment early saves hours of correction and a refund chase later.
- Sort your attention by severity: duplicate payments ≥ $1,000 and duplicate invoice/bill payments are flagged High.
- Dismissals suppress the same finding on future scans — use clear structured reasons and notes so teammates know why something was cleared.
- Duplicate-vendor findings include a Combine action; use it to clean up the vendor list and keep future matching accurate.
- Genuine recurring payments (e.g. monthly retainers) are deliberately skipped by the duplicate-payment check, but if one slips through, dismiss it as Expected / Recurring.
- Scheduled scans keep things current between manual Rescan now runs.
In-depth guide
Detection types
| Type | What it catches | Typical severity |
|---|---|---|
| Duplicate payment | Same counterparty and amount paid more than once within about 3 days (recurring payments excluded) | High at $1,000 or more, else Medium |
| Unusual amount | A payment far outside the usual range for a counterparty with at least 5 payments in the window | Medium |
| Rapid succession | Three or more payments to one counterparty within an hour, totaling $500 or more | Medium |
| Duplicate invoice payment | An invoice with more than one payment record | High |
| Duplicate bill payment | A bill with more than one payment record | High |
| Duplicate vendor | Active vendors that look like the same company (similar name or shared email) | Medium |
The page can also label Amount Outliers, Threshold Patterns, and Potential Miscategorizations if they appear in a scan.
Recurring-payment guardrail
Genuine recurring payments (subscriptions, retainers, and similar cadences) are filtered out before duplicate-payment flags fire, so routine repeat spend does not create noise.
Fixing a finding
- Duplicate payments and double-paid invoices or bills — use View Bill, View Invoice, or View to open the record, then void or correct the extra payment there and request a refund if it was real.
- Duplicate vendors — Combine opens a dialog where you choose the vendor to keep (the oldest record is preselected); the others are merged into it and their linked records move across.
Dismissal and restore
- Dismissing — requires a structured reason and accepts an optional note; that finding is then suppressed on future scans. Dismissed items show their reason and note.
- Restoring — switch the toggle to Showing dismissed, then click Restore on an item cleared by mistake.
- Dismissal suppresses the flag; it does not change how detection rules work.
Scans, lookback, and scope
- Transaction-based checks (duplicate payment, unusual amount, rapid succession) — run over a 30-day lookback by default.
- Invoice/bill duplicate-payment checks — look at payment records regardless of date.
- Duplicate-vendor detection — runs across all active vendors, independent of the lookback, since vendor records aren't transaction-dated.
- Cadence — scans run on a daily schedule and after syncs; Rescan now triggers a fresh background run.