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—₹10,000
Jan 5Salary+₹40,000₹49,900⚠️ should be ₹50,000
Jan 8Rent−₹36,000₹13,900back on track

Jan 5’s balance is ₹100 short of what it should be — likely two transactions imported in the wrong order. But Jan 8 recovers on its own: ₹49,900 − ₹36,000 = ₹13,900, 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—₹10,000₹10,000
Jan 3Coffee shop−₹100₹9,900₹9,900
Jan 5(missing)
Jan 8Rent−₹36,000−₹26,100₹13,900

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 ₹40,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.