Finance · 2026
A reporting pipeline that closed the month in a day, not a fortnight
Month-end close was taking most of a fortnight and surfacing errors far too late. We rebuilt the pipeline so exceptions appear on day one.
- Client
- A mid-market financial services firm
- Duration
- 11 weeks
- Services
- Data & AI, Software Engineering
- 12d → 1d
- Month-end close
- ~90%
- Reduction in manual data entry
- 100%
- Transactions with an automatic audit trail
The challenge
Closing the month took ten to twelve working days. Analysts exported from three systems and reconciled by hand in Excel, so breaks were typically found in the second week — long after the people who could explain them had moved on. The audit trail was, in practice, a folder of emails. Growth made it worse: volume had roughly doubled in two years while the process had not changed at all.
What we did
- 01
Mapped the full data lineage first — where every figure originated, what transformed it, and who touched it. Several long-standing 'adjustments' turned out to be correcting an upstream bug nobody had reported.
- 02
Built an ingestion layer pulling from all three source systems on a schedule, with schema validation at the boundary so bad data fails loudly rather than silently corrupting a report.
- 03
Automated reconciliation with an exception queue: matches clear themselves, and only genuine breaks reach a human, each with the underlying records attached.
- 04
Made the audit trail immutable and automatic, so evidence is a by-product of the process rather than something assembled afterwards.
- 05
Kept the final reporting layer in the format the team already knew, which removed most of the change-management friction from rollout.
The outcome
Close now completes in a single working day. Breaks appear on day one while context is fresh, and the exception queue directs analyst time to genuinely ambiguous cases instead of ticking off thousands of matches. The audit trail is produced automatically and has survived two external reviews with no manual preparation.
Built with
- Python
- dbt
- PostgreSQL
- Airflow
- React
- AWS
“We had been told this was a twelve-month replatform. It was eleven weeks, and we kept the reports our team already knew how to read.”
Next case study
Next step
Have something
similar?
Most of our work starts with a company that knows something is wrong but isn't sure what to build. That's a good place to begin.