Results
The setup
The bank ran its periodic reporting close out of a patchwork of spreadsheets, vendor extracts, and a legacy GL warehouse that had accreted logic over a decade. By the time numbers were stable enough for management review, the window was nearly closed. Analysts described their job as “moving CSVs,” and senior reviewers were signing off on packages they hadn’t had time to interrogate. The cost wasn’t a single broken thing — it was that nothing was wrong enough to fix in isolation, and everything together was slow enough to crowd out the actual analytical work the team was hired to do.
Leadership wasn’t asking for new dashboards. They were asking why a cycle that other banks of comparable size closed in three to four days was taking eleven, and what it would take to be confident in the numbers earlier.
What we did
We treated the cycle as a single system rather than a collection of reports. The first move was unglamorous: we rebuilt the source-to-warehouse layer so that every figure landing in a reporting package had a deterministic, queryable path back to a system of record. That alone surfaced the reconciliation logic that had been living in analyst heads and Friday-afternoon spreadsheets, and let us put it under version control where it could be tested.
From there we automated the steps that didn’t require judgement — extract pulls, balancing checks, exception flagging, the mechanical parts of variance commentary — and left the steps that did require judgement (sign-off, narrative, materiality calls) clearly in human hands, but on a single review surface instead of six. Reviewers stopped switching between tools to assemble context. The lineage was one click away from any number on the page.
We also rewrote the close calendar around the new pipeline rather than the old one. The bank’s prior calendar assumed serial handoffs between teams; the new pipeline lets several workstreams run in parallel because they no longer compete for the same upstream extract.
What changed
The headline number is the cycle time: from 11 days to roughly 36 hours, with the first stable management view available within 18 hours of period end. But the more durable change is what the team does with the time it got back. Analysts are now spending the bulk of the cycle on review and analysis rather than assembly. Senior reviewers see a complete package early enough to ask substantive questions, and those questions are answerable in the same session because the lineage is live.
Manual reconciliation steps fell by roughly 84%, analyst hours per close by roughly 62%. The review surface consolidated from six tools to one. Exception volumes are smaller and more meaningful — the noise floor dropped because the deterministic pipeline removed the recurring class of breaks that came from extract drift.
The bank kept its existing core systems, its existing GL, and its existing reporting taxonomy. The work was about how data moved between those systems and how reviewers interacted with the result, not about replacing any of them.
Why it stuck
Two reasons. First, the pipeline is documented in code and tested on every change, so the savings don’t decay the moment someone leaves the team. Second, the new review surface made it cheaper for senior reviewers to stay engaged across the whole cycle rather than dropping in at the end — which is what the bank wanted out of the project in the first place. The 36-hour number is the externally visible result; the internal result is that the people doing the work are doing the work they were hired to do.