Skip to content

When numbers don't add up

When a ledger doesn’t reconcile, finzu tells you which of two different problems it is — because they mean different things, and one is far more serious than the other.

Chain break: one entry is out of place

A Chain Break is local. One transaction’s Reported Balance doesn’t follow from the transaction right before it — but everything past that point is still internally consistent.

DateDescriptionAmountReported Balance
Jan 1Opening$500
Jan 5Paycheck+$2,000$2,495⚠️ should be $2,500
Jan 8Rent−$1,800$695back on track

Jan 5’s balance is $5 short of what it should be — likely two transactions imported in the wrong order. But Jan 8 recovers on its own: $2,495 − $1,800 = $695, matching what the bank actually printed. The problem is contained to that one link in the chain.

Balance drift: everything after this point is off

Balance Drift is global. Once a transaction’s Reported Balance doesn’t match finzu’s computed Running Balance, every later transaction inherits the same gap — even though each of them is individually consistent with its neighbor.

DateDescriptionAmountReported BalanceRunning Balance
Jan 1Opening$500$500
Jan 3Coffee shop−$5$495$495
Jan 5(missing)
Jan 8Rent−$1,800−$1,305$695

A transaction went missing from the import. Every Reported Balance after the gap is internally consistent with the one before it — the chain never breaks — but the whole chain has drifted $2,000 away from what finzu’s Running Balance says it should be, and stays that far off forever until the missing piece is found.

Why the distinction matters

A Chain Break points at one spot: fix that link and the ledger is whole again. Balance Drift means something upstream — usually a missing or duplicated transaction — is quietly offsetting everything downstream, and needs to be found at its source, not patched at each row it affects.

Next: how finzu tries to repair a broken chain automatically.