Skip to content
FintechSeries BKSA9 monthsEmbedded teamCS-2025-02 · disclosure level 3

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.

Decision

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.

Build

What was actually implemented

PostgresPythonAirflowdbt style modelsS3
  1. 01Append only snapshot tables keyed by reporting period, never updated in place
  2. 02Reconciliation rules expressed as tests that fail the pipeline rather than as analyst knowledge
  3. 03Partner feed ingestion with schema validation at the boundary
  4. 04Submission pack generated as a signed artifact with a manifest of source row counts
  5. 05Analyst review interface showing every exception before submission
Result

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

BEFOREAFTER-77%-55%-83%-34%
The audit trail became usable for the first time.
Finance Director, fintech
Next

More from data and intelligence

Pillar

Data and intelligence

Instrumentation, pipelines and executive dashboards. Built so that two people asking the same question get the same answer.