Overview
When Matcher identifies a potential match, it assigns a confidence score based on multiple factors. This score defines how the match is handled:
- High scores (90+) are auto-approved
- Mid-range (60 – 89) scores require review
- Low scores (<60) are treated as exceptions
Matcher confidence scoring.
Score components
Matcher uses a binary weighted scoring system with four components. Each component evaluates to either a full match (1.0) or no match (0.0) — there are no partial scores within a component.
Amount match (40%)
The amount component has the highest weight because amount discrepancies often indicate different transactions.
Amount matching depends on the active rule type. An EXACT rule requires identical amounts; a TOLERANCE rule allows variance within the configured
percentTolerance and absTolerance.
Currency match (30%)
Currency verification is binary — currencies either match or they don’t.Date proximity (20%)
Date scoring checks whether the transaction dates fall within the configured window.
The allowed window depends on the rule: an EXACT rule requires the same date (respecting
datePrecision), while a DATE_LAG rule accepts a day difference inside its [minDays, maxDays] band (the inclusive flag controls whether maxDays itself counts).
Reference match (10%)
For EXACT and TOLERANCE rules, reference comparison is binary.FUZZY rules score the reference on a continuous scale. For a FUZZY rule, the 10% reference slot carries a graded
ReferenceScore between 0.0 and 1.0 (a similarity measure) rather than a strict 0/1. A near-identical reference contributes close to the full 10 points while one that barely clears the fuzzy gate contributes proportionally less. As a result, FUZZY matches can produce non-multiple-of-10 scores such as 97 or 99. See Possible scores below.Calculation formula
The confidence score formula:
1.0 (match) or 0.0 (no match).
The weights are hardcoded constants and are not configurable per context.
Possible scores
For EXACT, TOLERANCE, and DATE_LAG rules, every component is binary, so the confidence score is always one of these values: 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 For these rule types, intermediate values (e.g. 87, 72, 55) never occur. (For DATE_LAG the reference component is always0, so its scores never include the final 10 points.)
For FUZZY rules this does not hold. Because the reference component is a continuous ReferenceScore (0.0–1.0), FUZZY matches can produce intermediate scores such as 97 or 99. Note that regardless of the resulting score, a FUZZY match is never auto-confirmed — see FUZZY matches never auto-confirm.
Calculation examples
Exact match (score: 100)
Two transactions with identical values on the same day:
Final Score: 100 → Auto-confirmed
High confidence match (score: 90)
All fields match except reference:
Final Score: 90 → Auto-confirmed
Medium confidence (score: 70)
Amount and currency match, but date and reference do not:
Final Score: 70 → Needs review
Low confidence (score: 40)
Only amount matches:
Final Score: 40 → Exception (below 60)
Confidence tiers
Matcher categorizes matches into tiers based on score:
How confidence tiers are applied
When Matcher proposes a match, it evaluates the confidence score and applies the following steps:- If the score is 90 or higher, the match is automatically confirmed for EXACT and TOLERANCE rules; FUZZY and DATE_LAG matches always require manual review.
- If the score is between 60 and 89, the match is queued for manual review.
- If the score is below 60, no match is created and the transaction becomes an exception.
- Reviewed matches can be either confirmed or rejected, updating their final status.
FUZZY matches never auto-confirm
The auto-confirm behavior above applies to EXACT and TOLERANCE rules; FUZZY and DATE_LAG matches always require manual review. Matches produced by FUZZY rules are never auto-confirmed, regardless of their confidence score — even a FUZZY match scoring 90 or above is always queued for manual review. This is by design: a fuzzy reference only contributes the 10% reference slot, so the financial fields (amount + currency + date) alone can already reach the 90 threshold. Capping FUZZY below auto-confirm guarantees that a human reviews the fuzzed reference before the match is committed — “fuzzy proposes, never commits.”Confidence thresholds
Matcher uses fixed thresholds to determine how matches are handled:
These thresholds are not configurable per context.
Weights
The component weights (40/30/20/10) are hardcoded constants. They cannot be adjusted per context or per rule.
Best practices
Monitor tier distribution
Monitor tier distribution
Track the percentage of transactions in each tier. Unusual shifts may indicate data quality issues or rule misconfiguration.
Use dry-run mode to test rules
Use dry-run mode to test rules
Since confidence depends on which rules match, always dry-run rule changes before committing. This prevents unexpected increases in manual review volume.
Review matches near the 60-point boundary
Review matches near the 60-point boundary
Periodically review matches just above the exception threshold. These often reveal opportunities for rule improvements.
Understand scores as rule outcomes
Understand scores as rule outcomes
For EXACT, TOLERANCE, and DATE_LAG rules, scoring is binary, so a score of 70 means exactly “amount + currency matched, date + reference did not.” Use this to diagnose matching issues. FUZZY rules are the exception: their graded reference component can yield intermediate scores (e.g. 97), so a FUZZY score should be read as “financial fields matched plus a partial reference similarity.”
Next steps
Match Rules
Configure rules that influence scoring.
Multi-Currency
How FX affects confidence scoring.

