Flexipy
Industries · Services · Products

Work · a European wealth-management platform

Reconciliation that reports breaks the day they happen

01 The engagement

The problem

Reconciliation ran monthly and compared totals. A break that started on the third of the month surfaced on the first of the next one, by which point the cause was buried under four weeks of writes.

The approach

We moved reconciliation to a daily job comparing at the transaction level rather than the total, and made every write path idempotent so a retry could not itself create a break. The daily report names the first divergent transaction rather than a delta.

02 The engineering

What was technically hard

Going from totals to transactions multiplies the comparison by every row, and the first honest run surfaces every small historical difference at once. The daily job had to separate a break that started today from one that has been sitting there for months — otherwise the first report is unreadable and every report after it gets ignored. Idempotency was the other half of the same problem: a retry that re-books a movement creates exactly the kind of discrepancy the job exists to catch, so the ingestion had to be safe to repeat before the comparison could be trusted at all.

One decision we made, and why

The report names the first divergent transaction instead of the size of the gap. A delta tells an operations team that something is wrong and leaves them to find it; an identifier tells them where to look. It costs more to compute, because the job has to hold an ordered comparison rather than two sums — and it is the only version anyone actually opened twice.

start-project.sh

$ tell us what you're building and where it's stuck

Book a 30-min discovery call

We reply within one business day.

Let's talk about your build

Pick a time, or leave a note and we'll reply within one business day.

Stanislav Rybonka · Founder & Principal Engineer

Pick a time →
or write to us