Finura is in early development. Some features described here are still being built.
finura
← All posts
EngineeringJul 8, 2026

Reconciliation: making imports actually tie out

Inside the pipeline that matches transactions to balances so the numbers are never “close enough.”

D
David Childs
Founder · finura

"Close enough" is where personal finance apps go to die. A feed drops a transaction, a pending charge settles at a different amount, a transfer shows up twice — and slowly your app's idea of your balance drifts from your bank's. finura's answer is a reconciliation pipeline whose whole job is to keep those two numbers identical.

The invariant

Every synced account holds one rule: the sum of transactions since the last known balance must equal the current balance. If it doesn't, something is wrong, and we surface it rather than paper over it.

Where imports go wrong

  • Duplicates — the same transaction arrives from two syncs with slightly different IDs.
  • Pending → posted — a charge authorized at one amount settles at another.
  • Transfers — money leaving one account and entering another looks like two unrelated events.
  • Gaps — a feed outage leaves a hole that later balances silently absorb.

How the pipeline resolves them

  1. Dedupe on a stable fingerprint, not the provider's ID, so re-syncs don't double-count.
  2. Match pending to posted so an amount change updates one transaction instead of creating two.
  3. Pair transfers across accounts so they net to zero in your spending.
  4. Reconcile to the balance — and when the math doesn't tie out, flag it for review instead of hiding the discrepancy.

A number that reconciles is a number you can stop thinking about. That silence is the feature.

The payoff is boring in the best way: you open finura, the balance matches your bank to the cent, and you never have to wonder which one is lying.

D
David Childs

David is the founder of finura, building a personal finance platform for people whose money crosses borders and currencies.