Loading...
Loading...
Three lessons from building a reconciliation engine that doesn't just find problems — it explains them.
Short Field Note — Drift Recon
---
I built Drift Recon after watching a team spend three days manually comparing transaction logs because their reconciliation tool only said "match rate: 87%." Three days to learn that the payment processor had added a new column to their CSV export.
Three lessons from that experience:
1. Confidence scores are more useful than boolean matches.
A transaction is either matched or unmatched. But a match with 52% confidence is fundamentally different from a match with 99% confidence. The 52% match is a coin flip — maybe it's right, maybe it's not. The 99% match is almost certainly correct. By exposing confidence as a continuous score, we let humans decide where to spend their attention. A dashboard showing 50 transactions at 45-55% confidence is more actionable than one showing 500 unmatched transactions with no context.
2. Historical baselines turn noise into signal.
A match rate of 90% sounds bad if you expect 98%. But if this source has historically matched at 88% ± 5%, then 90% is actually above average. Without a baseline, every number is judged against an arbitrary expectation. With a baseline, you know what's normal and what's anomalous. The 30-day rolling window was chosen because it's long enough to capture patterns but short enough to adapt to genuine shifts in the source's behavior.
3. Quarantine is a trust feature, not a bug.
When we first showed the quarantine table to users, they were confused. "Why don't you just drop invalid rows?" Because dropping data is irreversible. A quarantined row can be reviewed, fixed, and re-ingested. A dropped row is gone forever. In financial reconciliation, "I don't know what this is" is a valid state. "I deleted it because it looked weird" is not.
---
Drift Recon is open source at [github.com/Gwerdonatus/drift-recon](https://github.com/Gwerdonatus/drift-recon)