The situation
Balances lived in the processor, the partner bank and the product database, and none of them agreed. Month-end took nine days and an auditor had already raised it.
What we did
We built a double-entry ledger as the system of record, with every external movement posted against it and settlement files ingested automatically.
Breaks were classified rather than chased: timing, fee, duplicate or genuine. Only genuine breaks reached a human.
The outcome
Daily close, month-end in one day, and the safeguarding reconciliation the regulator asks for produced as a report rather than a project.