Automatic matching compares each bank statement transaction to your receipts and invoices on three things: the merchant name, the amount, and whether the dates are plausible together. When a receipt is not matched, it is almost always because one of those three checks could not be satisfied — or because the receipt was not in SparkReceipt yet when the statement was extracted. All of these are fixable: you can re-run matching or match any transaction manually.
How automatic matching works
Matching runs as the final stage of bank statement extraction. For each transaction, SparkReceipt looks at your existing unmatched receipts and invoices and evaluates:
- Merchant name — including abbreviations, trade names, and payment-processor prefixes on the statement line.
- Amount — must be close: within about 1% for same-currency matches, and within about 6% when the receipt and statement are in different currencies (to allow for exchange-rate and processor fees).
- Date plausibility — a card purchase typically posts to the bank 1–5 days after the receipt date, while an invoice may be paid weeks later. Candidates are searched within a window around the transaction date.
Confident results are linked automatically and shown as Matched. Plausible-but-uncertain results are marked Suggested match so you can confirm or reject them yourself. You can filter documents by these states with the Match status filter (Matched / Suggested match / Unmatched) in the Documents browse view.
The most common reasons a match is missed
- The receipt wasn't uploaded yet. Matching runs during extraction, so receipts added after the statement was extracted are not matched automatically. Fix: select the transactions and use Rematch, which re-attempts matching against your current documents.
- The amounts differ too much. Tips added at payment, partial payments, or one bank charge covering several receipts all push the difference past the tolerance. Fix: match manually (below).
- One payment, several receipts — or several payments, one receipt. Matching links one transaction to one document, so split charges need manual handling.
- Different currency. Cross-currency matching is supported but the tolerance is finite; unusual exchange rates or fees can miss it. When a cross-currency match is made, SparkReceipt records the implied exchange rate on the receipt so its value lines up with what your bank actually charged.
- The merchant name on the statement is unrecognizable. Some statement lines carry only a processor reference. Fix: match manually.
- The receipt is already matched to another transaction. A document can only be matched once; the search panel marks these as already matched.
How to match manually
- Open the statement and click View transactions.
- Select the transaction. The match panel shows its Current Match ("None" if unmatched).
- Click Search Documents and find the receipt or invoice — results are grouped by Same Date, Same Month, and Last Two Months.
- Pick the document to link it. Use Clear Match to remove a wrong match, or select lines and use Unmatch / Rematch for bulk changes.
If the receipt simply isn't in SparkReceipt, add it first — or skip matching and use Convert selected… to create the expense directly from the transaction line instead (see Bank statement extraction: the complete guide).
Checking your reconciliation
A matched transaction means the statement line and the receipt are linked, so converting with Merge and combine will not create a duplicate. On the receipt side, the document shows Matched to statement with a View statement link. To find receipts that still need attention, filter the Documents view by Match status: Unmatched.
See also: I can't find my receipt to match and How to match receipts to bank OR credit card statements.