Skip to content

Reconciliation Workflow

Reconciliation process — instantiates Data Integrity Preservation

Compares two records or states that should agree, classifies each discrepancy, and drives it to a repair, quarantine, or accepted-divergence decision that is recorded.

Reconciliation Workflow is the repair arm of integrity. Two representations that ought to agree — a ledger and a bank statement, a warehouse count and a system quantity, a service's state and its mirror — are compared, and every mismatch is caught, classified, and driven to a decision: correct it, quarantine it, escalate it, or accept a tolerated divergence and document why. Its distinguishing move is that it does not merely detect a discrepancy or prevent one; it resolves it through a defined procedure so that mismatches become deliberate, recorded decisions rather than lingering unexplained differences. Where monitoring rings the alarm, reconciliation is the crew that shows up, decides what is actually wrong, and puts the data back into a trustworthy, agreed state.

Example

A brokerage keeps its own book of client trades and every night receives a position statement from the custodian that actually holds the assets. The two should match to the share. The reconciliation workflow compares them: most positions tie out exactly; a handful diverge. It classifies each — a timing break (a trade the custodian will settle tomorrow, tolerated and left to clear), a genuine error (an internal fat-finger of 1,000 vs. 100 shares, corrected in the book), and an unexplained mismatch (quarantined, the position frozen from further trading and escalated to an operations analyst). Each resolution is recorded: what differed, why, and what was done. By morning the book is either reconciled or has every remaining break flagged and owned — no silent difference is allowed to sit and quietly mislead a trader.

How it works

The workflow runs compare → classify → resolve → record. It first needs a consistency relation — the precise statement of what "agree" means (equal balances, matching counts, totals that conserve, agreement within a tolerated lag). It applies that relation to surface every break, then classifies each by a reconciliation rule: is this an expected timing difference, a correctable error, or an unexplained discrepancy that must be held? Distinctively, it does not assume either side is automatically right — a break can be resolved by correcting either representation, depending on evidence. Unresolved breaks are not left to rot: they are pushed onto an exception channel with a visible suspect status and an owner, and every resolution is written down so the correction itself is auditable.

Tuning parameters

  • Matching tolerance — how exactly two sides must agree before a difference counts as a break. Tight tolerance catches small errors but floods the queue with noise; loose tolerance is quiet but lets real drift hide.
  • Auto-resolution scope — which break types are corrected automatically versus routed to a human. Automating the obvious clears volume; over-automating buries the judgement calls that need eyes.
  • Reconciliation cadence — continuous, daily, or period-end. Frequent reconciliation catches breaks while they are small and traceable; infrequent lets them compound and obscures their cause.
  • Divergence policy — when a difference is repaired, quarantined, escalated, or accepted-and-documented. The heart of the mechanism: a clear policy is what stops discrepancies from being handled ad hoc.

When it helps, and when it misleads

Its strength is that it makes discrepancies converge: instead of two systems drifting further apart with every cycle, each break is caught and driven to a decision, and the record returns to an agreed, trustworthy state. It is also where messy real-world differences (timing, tolerated lag, genuine error) get sorted deliberately rather than papered over. Its failure modes are avoidance and haste. Auto-resolving breaks to clear the queue can quietly overwrite a correct value with a wrong one, or bless a systematic error as "reconciled" while the underlying cause festers — the volume of breaks is itself a quality signal that a fast auto-match hides.[1] The classic misuse is forcing the two sides to match by adjusting whichever is easier, rather than investigating which is actually wrong. The discipline that guards against this is treating reconciliation as root-cause repair, not cosmetic matching: correct the source of the break, document accepted divergences, and watch break volume as a trend.

How it implements the components

  • reconciliation_rule — its core output: the compare-classify-resolve procedure that turns each mismatch into a repair, quarantine, escalate, or accept-and-document decision.
  • consistency_relation — it operationalizes the statement of what agreement means (equality, conservation of totals, tolerated lag) against which the two representations are compared.
  • integrity_exception_channel — unresolved breaks are held on a visible suspect status with an owner, rather than silently passing as reconciled.

It does not designate which representation is authoritative when they disagree (that is Source-of-Truth Registry), detect the discrepancy in the first place (that is Integrity Anomaly Monitoring), or enforce the consistency relation continuously at write time (that is Referential Integrity Constraint).

Notes

Reconciliation resolves a discrepancy that already exists between two representations; it is the repair partner to detection. When a break needs an authoritative tiebreaker — which side wins when both look plausible — it consults Source-of-Truth Registry, but it can also override a nominally authoritative source when the evidence shows that source is the one that is wrong.

References

[1] In accounting, two-way reconciliation compares two records directly, while three-way reconciliation ties a third document (e.g. a purchase order, receipt, and invoice) together. Both encode the same discipline this mechanism generalizes: a difference is not resolved until its cause is understood, not merely until the two sides have been forced to match.