Regulatory reporting that stopped eating nine days
Monthly regulator submissions assembled by hand across four systems, with no audit trail back to source.
- Cycle time
- 8.5 days6 hours-97%
- Restatements
- 90-100%
- Traceable rows
- 12%100%+88pp
Compared against the 12 monthly cycles preceding the engagement. Source: internal close log, June 2025
Context
A lending platform submitting monthly regulatory returns. Four analysts spent most of the first two weeks of each month assembling them from the core ledger, a CRM, a spreadsheet of manual adjustments and a partner file feed.
The constraint
The thing that ruled out the obvious answer.
The regulator required every submitted figure to be reproducible on demand, up to 24 months back. Any system we built had to reconstruct a historical submission exactly, including the errors, not just recompute it with today's logic.
Diagnosis
The bottleneck was not calculation, it was reconciliation. Analysts were not slow at arithmetic. They were spending the days chasing why the ledger and the partner feed disagreed by a few hundred rows, every single month, for reasons that were never written down.
What we rejected, and what we chose instead
Any firm can describe what it built. The useful record is the option that was on the table and did not survive.
Rejected
A full data warehouse and BI rebuild
Nine to twelve months before the first submission improved, on a compliance clock that did not have twelve months in it. Correct destination, impossible timeline.
Chosen
Incremental marts covering only the regulated tables
Six weeks to the first automated submission. Immutable snapshots per period gave exact reproducibility, and the reconciliation rules became code instead of institutional memory.
What was actually implemented
- 01Append only snapshot tables keyed by reporting period, never updated in place
- 02Reconciliation rules expressed as tests that fail the pipeline rather than as analyst knowledge
- 03Partner feed ingestion with schema validation at the boundary
- 04Submission pack generated as a signed artifact with a manifest of source row counts
- 05Analyst review interface showing every exception before submission
Measured, not estimated
Cycle time fell from 8.5 working days to six hours of review. The team stopped restating prior periods entirely, and every figure in a submission now resolves to the source rows that produced it.
Compared against the 12 monthly cycles preceding the engagement. Source: internal close log, June 2025
The audit trail became usable for the first time.
More from data and intelligence
Data and intelligence
Instrumentation, pipelines and executive dashboards. Built so that two people asking the same question get the same answer.