Quick answer: a nostro-reconciliation engine compares what a bank or treasury system expected to move through an account with what the account-servicing bank says actually posted. Each expected cash movement is matched against statement entries using amount, currency, value date, booking date, transaction references, bank transaction codes, counterparties and message identifiers. Perfect matches close automatically. Ambiguous or missing matches become reconciliation breaks, which are aged, prioritised, investigated and repaired until the expected and observed ledgers agree.
Reconciliation is the mathematics of asking whether two independent records describe the same economic event—and, when they do not, identifying exactly where reality diverged from expectation.
Why this belongs in mathematics and algorithms
Nostro reconciliation combines deterministic matching, tolerance matching, temporal logic, bipartite matching, exception queues and ageing. It also teaches an important epistemic rule: a ledger entry is not true merely because one system says so. Reconciliation becomes stronger precisely because two separately generated records are compared.
Current SWIFT bank-to-corporate reporting guidance places MT940 and camt.053 in the same end-of-day statement role, while richer ISO 20022 reporting carries structured transaction details useful for automated cash application and reconciliation. See SWIFT CGI bank-to-corporate reporting best practices.
1. Start with two independently produced views
A useful reconciliation architecture keeps two sides separate:
- Expected side — payments sent, receipts expected, internal transfers, fees accrued, settlements instructed and other treasury cash movements.
- Observed side — actual debits and credits reported by the account-servicing bank.
Let E={e1,…,em} be expected items and B={b1,…,bn} be bank statement entries.
The reconciliation problem is to find a mapping M between E and B such that matched events represent the same economic cash movement.
2. Exact matching is the first and safest layer
An exact rule might require:
- same currency;
- same signed amount;
- same transaction reference;
- same account;
- same expected direction;
- booking/value date inside the permitted window.
Conceptually:
match(e,b)=1 if all critical keys agree; otherwise 0.
Exact matching should close the highest-confidence population before more flexible logic is applied.
3. References are high-value keys
Useful references can include:
- payment instruction id;
- SWIFT UETR;
- end-to-end id;
- bank transaction id;
- cheque number;
- merchant settlement id;
- internal treasury reference.
A strong reference can distinguish two identical S$1,000 transfers on the same day. Amount and date alone may not.
This connects to SWIFT gpi/UETR tracking: one persistent transaction identity is valuable both during payment tracking and after posting.
4. Value date and booking date are different states
A statement entry can have a booking date and a value date. The booking date tells when the bank posted the transaction. The value date can determine when the transaction economically affects interest or account value.
A payment expected on Friday but booked Monday can still belong to Friday’s economic cash flow under some arrangements. A reconciliation engine should therefore compare both rather than use one generic “date”.
5. Statement completeness must be checked before item matching
Before reconciling individual transactions, the engine should ask whether the statement itself is complete.
Useful checks include:
- opening balance + credits − debits = closing balance;
- statement sequence/page continuity;
- transaction-count totals;
- total debit and total credit sums;
- currency/account consistency.
SWIFT’s camt.05x best-practice material explicitly discusses pagination, entry counts and total amounts as completeness controls inherited and improved from legacy MT reporting.
6. One-to-many and many-to-one matches are common
Not every economic event appears as one bank entry.
Examples:
- ten customer receipts can be swept into one consolidated credit;
- one payroll file can create many debits;
- one merchant settlement can combine sales, refunds and fees;
- one payment can generate principal plus a separate bank charge.
The matcher therefore needs grouping logic:
Σ expected subgroup ≈ observed bank entry
or the inverse. Grouping constraints should be tight enough to prevent arbitrary combinations from “explaining” any amount.
7. Tolerance matching should explain the difference
Suppose an expected receipt is US$100,000 but the bank statement shows US$99,975. A tolerance matcher can recognise the 25-dollar difference only if there is a plausible fee or charge explanation.
Safe tolerance logic asks:
- is the difference inside a governed threshold?
- does the bank transaction code indicate a fee?
- is there a separate fee statement entry?
- does the contract permit such a deduction?
A tolerance is not permission to erase unexplained differences.
8. Bank transaction codes add semantic evidence
ISO 20022 cash-management messages can carry structured bank transaction codes and richer remittance/counterparty information than old free-text statements. Those fields can help classify entries as transfers, fees, card settlements, returns or other cash events.
Classification can route different entries to different matching rules rather than force all statement lines through one generic matcher.
9. Unmatched items become reconciliation breaks
After automatic matching, the residual set matters most:
Breaks = unmatched expected items ∪ unmatched bank entries ∪ ambiguous matches.
Typical reasons include:
- payment rejected or returned;
- statement late or incomplete;
- wrong value date;
- fee deducted;
- reference truncated;
- duplicate posting;
- wrong currency;
- unexpected manual bank entry;
- internal ledger omission.
10. Break ageing measures operational risk
For break i opened at time t0:
Agei = current time − t0.
Ageing buckets might be same-day, 1–2 days, 3–5 days and over 5 days, with thresholds appropriate to the business.
The key metric is not simply number of breaks. A 10-million-dollar break aged six days can matter more than 200 tiny same-day exceptions.
11. Prioritisation should combine amount, age and risk
A simple priority score can be:
Priority = w₁×normalised amount + w₂×age + w₃×risk class + w₄×cut-off urgency.
A returned customer payment, a large unidentified debit and an old fee difference should not sit in one undifferentiated queue.
12. Repair must preserve evidence
When an analyst resolves a break, the system should record:
- original expected item;
- original statement entry;
- match/repair action;
- user and timestamp;
- reason code;
- supporting evidence;
- resulting accounting entry or correction.
Reconciliation should not be “fixed” by editing source records until totals agree. The repair trail is part of the control.
13. Creative-work lens: two independent clocks
If two independent clocks disagree, the disagreement tells us something valuable. One clock may be wrong, one may be delayed, or the comparison itself may be flawed. Reconciliation works the same way: disagreement is information, not noise to be suppressed.
14. The nostro-reconciliation pipeline
- Load expected cash movements.
- Ingest MT940/camt.053 or equivalent bank statement data.
- Validate statement completeness and balances.
- Normalise currency, signs, references and dates.
- Run exact one-to-one matches.
- Run controlled one-to-many/many-to-one matches.
- Apply explained tolerances.
- Classify unmatched and ambiguous items as breaks.
- Age and prioritise breaks.
- Investigate using payment, fee, settlement and message evidence.
- Post repair/correction with full audit trail.
- Re-run reconciliation and verify residual balances.
15. Failure modes
- Amount/date-only matching. Two unrelated transactions are paired accidentally.
- Statement-completeness blindness. Missing pages/messages create artificial breaks.
- Over-wide tolerance. Real losses or fees are silently absorbed.
- Value-date confusion. Correct item is rejected because only booking date is compared.
- Many-to-one overfitting. Arbitrary combinations are selected merely because sums happen to agree.
- Break ageing neglect. Old large breaks disappear inside a growing queue.
- Source mutation. Analysts rewrite history instead of recording repair evidence.
- Reconciliation=proof assumption. Two systems can agree because both consumed the same bad upstream data.
16. Diagnostics and falsifiers
- What percentage of volume reconciles exact-match first pass?
- How many breaks are caused by missing references versus genuine cash differences?
- Do opening/closing balances and transaction summaries reconcile independently?
- Which banks/currencies generate the oldest breaks?
- Can a tolerance difference be tied to an explicit fee or contract rule?
- How many manual repairs recur with the same root cause?
- Can every repaired break be reconstructed from immutable source data?
- Does the same economic item reconcile consistently across MT940 and camt.053 feeds?
Suppose someone claims, “The statement amount matches the ledger amount, so reconciliation is complete.” A falsifier is a pair of unrelated same-amount transactions matched to each other while the intended items remain missing. Amount equality is evidence, not identity.
Research anchors
- SWIFT CGI — camt.052/053/054 bank-to-corporate reporting best practices.
- SWIFT — ISO 20022 standards resources.
- BTT — transaction reconciliation foundations.
The deeper lesson
Nostro reconciliation is the mathematics of refusing to let two financial realities drift apart. Expected cash says what should have happened. The bank statement says what the account-servicing bank observed. Matching joins the two; breaks expose uncertainty; ageing reveals unresolved risk; repair reconnects the ledger to evidence. A strong reconciliation engine therefore does not ask only, “Do the totals balance?” It asks, “Which exact economic events explain those totals, and what remains unexplained after every high-confidence match has been exhausted?”
Educational note: This article explains public treasury and reconciliation concepts. It is not operational advice for any specific bank account or financial institution.

