How a match rate is manufactured
Widen the value date window to five days, set the amount tolerance to one percent and normalize references aggressively, and almost anything will match something. The break count drops, the dashboard turns green, and the differences that mattered are now inside the tolerance where nobody will ever look at them again.
The honest way to read a match rate is together with three other numbers: how much of the match came from the exact pass rather than the tolerance pass, what value sits inside the tolerances, and how old the oldest unresolved item is.
Exact
Tolerance
Break
Aged
Auto-match is fine. Auto-close is where banks get hurt
Automatically pairing two records that agree under an approved rule is exactly what the software is for. Automatically closing an item that does not agree, because it is small or old or awkward, is a write-off, and a write-off is a decision that needs a person, a reason code and an approver.
Bankautomation draws that line in the product. Matching is automatic. Closing an unmatched item is an action, taken by a named user, approved by a second one where the amount or type requires it, with the reason attached to the item forever.
What actually raises a real match rate
- 01Reference normalization that understands payment references rather than stripping characters at random.
- 02A value date window set per account, because a correspondent in a different time zone is not the same case as an internal transfer.
- 03Fee and charge handling, so deducted amounts stop presenting as amount mismatches every single day.
- 04Duplicate detection on the ledger side, so a re-presented payment does not consume the wrong statement line.
- 05Feeding resolved breaks back into rules, so a difference you explained once stops arriving as a surprise.
The two pass matcher, and why order matters
Step 01
Pass one: exact key
Normalised reference, amount to the cent and value date all agree. No tolerance, no judgement. On healthy data this clears the overwhelming majority and it should be the number you watch.
Step 02
Pass two: tolerance
What is left is matched under approved rules, with the rule that fired recorded on the match. Because pass one has already run, tolerance is never applied to a pair that would have matched exactly.
Step 03
Grouping and splitting
Many to one for batched postings and one to many for split settlements, with every leg consumed by the match recorded against it.
Step 04
Residue
Whatever remains becomes an exception with a classification, an age, an owner and a suggested action.
Running tolerance first is a common and damaging shortcut. It produces a higher headline match rate and a lower quality result, because a pair that would have matched exactly can be consumed by a looser rule against the wrong counterpart. Order is not a preference here, it is a correctness requirement.
Grouped and split matches, where the volume hides
Two structural cases account for a surprising share of unmatched items and neither is a tolerance question. A batched posting is one entry on one side and many items on the other. A split settlement is one instructed item settled in parts. If the matcher can only pair one to one, both arrive as breaks every single day, and widening a tolerance makes the population worse rather than better because it starts consuming the wrong counterparts.
The handling that works is explicit many to one and one to many matching, with every leg consumed by the match recorded against it so the audit trail shows which items formed the group. A residual left over from a split should stay open against the original reference rather than being absorbed, because that residual is the outstanding exposure.
Re-running a reconciliation without rewriting history
Reconciliations get re-run. A statement is redelivered, a ledger export was incomplete, a rule was corrected. What must not happen is that the re-run silently replaces the earlier result, because somebody may already have worked items from it and an auditor may later ask what was known on the day.
- A re-run is a new run with its own timestamp, not an overwrite of the previous one.
- Actions taken on items from the earlier run survive and are carried forward, with their actor and reason intact.
- The rule version that produced each match is recorded on the match, so an old result stays explainable under an old rule.
- A redelivered file is detected as a redelivery rather than ingested as new activity, which is the same duplicate detection that stops a statement being loaded twice.
Straight through processing, honestly defined
Straight through processing is often quoted as a percentage without saying what it counts. Two definitions are in common use and they can differ by twenty points on the same data: the proportion of items that matched without human intervention, and the proportion of items that reached a final state without human intervention. The second is the meaningful one, because an item that matched automatically and then required a person to release it did not go straight through anything. When comparing tools or reporting internally, state which definition is in use, once, and then keep using it.
See both numbers move
The resolver reports exact matches and tolerance matches separately, on purpose. Change a tolerance and watch which number moves. If only the tolerance number is moving, you did not improve the reconciliation, you improved the report about it.
Questions about automated reconciliation software
What is a realistic match rate?
It depends entirely on the account, the counterparty discipline and the format quality, and any vendor quoting you a universal number is quoting marketing. The useful target is a high exact match rate on stable accounts, a small and steady tolerance band, and a break population that gets worked to zero every day.
Can rules learn from what we resolve?
Resolved breaks are the raw material for rule proposals: recurring differences of the same shape are surfaced so your team can decide whether to encode a tolerance or fix the upstream cause. The decision to change a rule stays with your team, under approval.
Do you support many to one and many to many matching?
Yes, grouped matching for batched postings and split settlements is part of the engine, and a grouped match records every leg it consumed.
What happens when a source file arrives twice?
Duplicate file detection stops the same statement being ingested twice, and duplicate posting detection catches the case where the ledger itself carries the same entry two times.