About the Client
- Client Profile : Lower Mid Market PE
- Portfolio : $500M-$1.4B deployed, 8-12 portcos
- Time to Production : 14 Weeks
- Internal Champion : Operating Partner
- Year 1 Financial Impact : $1.1M to $1.8M USD
- Stacks in Play - NetSuite, Sage Intacct, Bill.com, Concur, QuickBooks (varies)
- Portco Finance Team : 4-6 people each
The Situation
- Firm had gone through a spree of add-on platform acquisition. Each one came with its own finance team, its own ERP, its own AP workflow, and its own way of doing things.
- Each had its own stack ranging across NetSuite with Bill.com Sage Intacct with Tipalti, Portco #7 had just moved to QuickBooks Enterprise and the chart of accounts was still a mess.
- Operating Partners + Controller needed consolidated numbers by the 10th of every month. What they actually got was a rolling fire drill. Each portco's close ran 12-15 days.
- Hundreds of mismatches piled up at month-end because nobody was catching them in real time. The people who knew how to resolve those mismatches were the same people the firm couldn't afford to lose — and every time one of them left, months of institutional memory disappeared with them.
- The instinct was to standardize — pick one ERP, migrate everyone. But that's a 12-18 month project per portco at $200K-$500K each, the local teams resist it, and by the time portco #3 is migrated, portco #9 just closed and you're starting over.
The firm needed portfolio-level consistency without forcing a single migration.
Before and After
Before
- Consolidated numbers arriving 15-20 days after month-end
- 250-400 unresolved mismatches per portco at close
- Every invoice touched by a human: 15-20 minutes each
- GL coding inconsistent across portcos (~85% accuracy)
- Senior finance staff buried in mismatch resolution
- New acquisitions took 3-6 months to integrate into reporting
- Critical process knowledge stored in people, not systems
After
- Consolidated numbers by day 6-8
- 20-40 mismatches per portco at close (the onesthat actually need judgment)
- Invoice handling: under 30 seconds for 80%+ of volume
- GL coding locked at 97%+ (same rules enforced everywhere
- Senior staff reviewing decisions, not gathering information
- New acquisitions onboarded to the same engine in weeks
- Every rule documented, executable, and auditable
What we actually built
Started with the 3 portcos that were causing the most pain at close. Spent the first 2-4 weeks doing something nobody had done before: writing down what actually happens.