Batch window cut by 70% at a tier-one bank.

A retail bank’s overnight statement run was overrunning its window and threatening morning service. We were called in to find the bottleneck and stabilise the run — without a hardware refresh.

§ II The symptom

An overnight batch that kept slipping into the trading day.

Statement generation had been comfortably finishing by 04:00. Over six months it crept past 07:00, with branches occasionally opening before the run completed. Operations had begun manually staggering downstream jobs to keep customer-facing systems online — an unsustainable workaround.

§ III The diagnosis

Not the database. Not the application. The pattern between them.

Initial suspicion fell on database contention; vendor diagnostics pointed at I/O. Neither held up under measurement. End-to-end tracing revealed a per-customer round-trip in the document assembly stage that scaled linearly with the customer base — invisible at launch, dominant three years later.

§ IV The change

A targeted rewrite of one stage, not the pipeline.

The assembly stage was restructured to batch its lookups and stream its output, removing the per-customer round-trip. No schema changes, no new infrastructure, no vendor swaps. Two engineers, four weeks, contained to a single component.

§ V The result

Run time down from seven hours to two.

The run now completes by 02:30 with comfortable headroom for growth. Manual operations workarounds were retired. The fix held through the next two peak cycles without intervention — the marker the team uses for a problem genuinely solved rather than temporarily relieved.

7h → 2h

Overnight batch window, end-to-end, on the same hardware.

Zero infra spend

No new servers, storage tiers, or licensing. Optimisation only.

4 weeks

Diagnosis to verified production fix, with a two-engineer team.