Ledgermark

Rebuilding a decade-old reconciliation system

Problem

Ledgermark's finance team closed the books each month using a chain of spreadsheet macros built up over ten years by analysts who had long since left the company. Nobody fully understood the whole chain, and the close took five business days — with at least one silent error slipping through most quarters.

Approach

We spent the first two weeks just mapping the existing macro chain to understand every rule it encoded, good and bad. We then designed a Postgres-backed ledger with explicit reconciliation rules as code, migrated historical data in shadow mode alongside the old process for one full close cycle, and only cut over once the two produced identical output.

Architecture

The new system separates ingestion (bank feeds, ERP exports), matching (a rules engine with an escalation path for exceptions), and reporting (a live dashboard finance can query directly) into independently deployable services.

clientapicoreinfra

click a node — this is the actual shape of what we ship

Results

94%
reduction in close time (5 days → 3 hours)
0
reconciliation errors since launch
1
analyst reassigned from data entry to review

We went from dreading month-end to barely noticing it happened.

VP of Finance, Ledgermark

Facing something similar? Tell us about your project.