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.
click a node — this is the actual shape of what we ship
Results
“We went from dreading month-end to barely noticing it happened.”
— VP of Finance, Ledgermark
Facing something similar? Tell us about your project.