Skip to main content
The five core concepts in Matcher: contexts, sources, field maps, rules, and matches. Understand these and you’ll understand how the entire system works.

Context


A context defines what you’re reconciling. It’s the container that holds your sources, rules, and results.
A context answers: what am I matching against what?

Context types

TypeDescriptionExample
1:1One-to-one reconciliationBank statement vs ERP records
1:NOne-to-many reconciliationOne payment covering multiple invoices
N:MMany-to-many reconciliationNetting or aggregation scenarios

Example

A context named “Chase Bank vs ERP System” would:
  • Define Chase Bank as one reconciliation source
  • Define your ERP system as another source
  • Specify the rules used to reconcile transactions between them

Source


A source is where transactions come from. Every context needs at least two sources—that’s what you’re reconciling.

Source types

  • Bank: Statements or feeds from banks
  • ERP: SAP, Oracle, NetSuite exports
  • Ledger: Internal ledger systems (including Midaz)
  • Payment processor: Stripe, Adyen, PayPal settlements
  • Card network: Visa, Mastercard, Elo files

Source setup

Each source has:
  • Name: Label it (e.g., “Chase Checking”)
  • Type: Category (bank, ERP, etc.)
  • Field map: How its fields map to Matcher’s schema

Field map


A field map translates external field names into Matcher’s standard schema. Every system calls things differently—field maps normalize that.

Standard fields

FieldTypeDescription
transaction_idStringSource-system transaction identifier
amountDecimalTransaction amount (positive or negative)
currencyStringISO 4217 currency code
dateDateTimeTransaction date
referenceStringExternal reference or description
metadataObjectSource-specific attributes

Example mapping

A bank statement exposing TXN_ID, VALUE, CCY, and POST_DATE would be mapped as:
{
  "transaction_id": "TXN_ID",
  "amount": "VALUE",
  "currency": "CCY",
  "date": "POST_DATE"
}

Match rule


A match rule tells Matcher how to compare transactions. Rules run in priority order—first match wins.

Rule types

  • EXACT: Fields must match exactly (amount, date, reference)
  • TOLERANCE: Allow small differences (0.5% variance, $10 absolute)
  • DATE_LAG: Match within a date window (±3 days)

Priority order

Lower numbers run first. Matcher stops at the first matching rule.
PriorityRuleDescription
1Exact matchAmount, date, and reference must match
2Same-day toleranceSame date, amount within 0.5%
3Week toleranceWithin 7 days, amount within 1%

Rule parameters

Rule typeParameters
EXACTfields: list of fields to compare
TOLERANCEpercent: percentage variance, absolute: fixed variance amount
DATE_LAGdays_before, days_after: allowed offset from transaction date

Match


A match is when transactions from different sources are reconciled together. It’s the end goal.

Match status

StatusDescription
PROPOSEDMatcher found it, waiting for confirmation
CONFIRMEDAuto-approved or manually approved
REJECTEDManually rejected

Match patterns

1:1 match

One transaction from each source is reconciled.
Bank: $100.00 on Jan 15 → ERP: $100.00 on Jan 15

1:N match

One transaction is reconciled against multiple transactions.
Bank: $300.00 → ERP: $100.00 + $100.00 + $100.00

N:1 match

Multiple transactions are reconciled against a single transaction.
Bank: $50.00 + $50.00 + $50.00 → ERP: $150.00

Match items

Each match group contains match items, which record transaction participation and allocation. This enables partial reconciliation in split and aggregation scenarios.

Exception


An exception is a transaction that didn’t match. It needs manual review.

Exception status

StatusDescription
OPENWaiting for assignment
ASSIGNEDSomeone’s investigating
RESOLVEDHandled

Severity

Matcher auto-classifies exceptions so you know what to prioritize.
SeverityDefault criteria
CriticalAmount ≥ $100K, age ≥ 5 days, or regulatory flagged
HighAmount ≥ $10K or age ≥ 3 days
MediumAmount ≥ 1,000 or age ≥ 1 day
LowAll other cases

Resolution types

  • Force match: Manually reconcile transactions
  • Adjustment: Record a compensating adjustment
  • Write-off: Close the exception with justification

Confidence score


A confidence score indicates the reliability of an automated match on a 0–100 scale. Higher scores represent stronger alignment between transactions.

Score calculation

ComponentWeightDescription
Amount match40%Degree of amount alignment
Currency match30%Currency consistency
Date tolerance20%Proximity of transaction dates
Rule match10%Deterministic rule application

Confidence tiers

TierScore rangeSystem behavior
Auto-approved≥ 90Confirmed automatically
Needs review60–89Flagged for manual review
No match< 60Treated as an exception
Confidence thresholds can be customized per tenant to reflect different risk tolerances.

Audit log


An audit log is an immutable record of all system actions. It provides full traceability for operational review, audits, and regulatory compliance.

Logged events

Audit entries are created for:
  • Context, source, and rule changes
  • File ingestion and processing
  • Match confirmations and rejections
  • Exception resolution and overrides

Audit entry contents

FieldDescription
timestampAction timestamp (UTC)
user_idActor responsible for the action
actionAction performed
resource_typeAffected resource type
resource_idIdentifier of the affected resource
before_stateState before the action
after_stateState after the action
notesJustification, when applicable
Audit logs are append-only. Entries cannot be modified or removed.

Next steps