Where they started
Cardinal Electric Holdings is a composite illustration of a PE-backed electrical services roll-up operating across two contiguous regions. At acquisition, the 9 subsidiary companies each ran their own financial operations: a mix of QuickBooks Online, QuickBooks Desktop, and one running Xero. Chart of accounts differed across every entity — what one company called "materials" another split into "wire & conduit" and "fixtures," making gross margin impossible to compare without manual reclassification.
The close cycle was the biggest operational drag. Subsidiaries closed at different times — some by the 5th, others by the 20th. The platform CFO had to wait for the last entity before producing a consolidated view, which meant the GP routinely received portfolio financials 5–6 weeks after month-end. By the time the numbers landed, they described a month that was already half-forgotten.
The integration task was compounded by a multi-state licensing complexity unique to electrical: journeyman and master license requirements vary by state, which meant technician headcount and comp structure couldn't be standardized platform-wide without first mapping license status per employee across all 9 entities. That mapping didn't exist anywhere in a usable format.
The 90-day plan
Cardinal compressed the 100-day integration playbook into 90 days, front-loading the COA standardization that had stalled every previous integration attempt. The sequencing was deliberate: no KPI tracking until the chart of accounts was locked, no automated reporting until the close cadence was consistent.
Data Plumbing — connect and inventory
QBO OAuth connections on 7 of 9 entities. The two on QBD used CSV export via the RollForge upload wizard — a 20-minute setup per entity. Xero entity connected via OAuth in under 5 minutes. Day 14 checkpoint: every entity has at least one connected source; no manual re-export required going forward. License-to-technician mapping extracted from each entity's payroll system into a single spreadsheet for later COA work.
COA + KPI Lock — agree on the formulas
Target COA built by platform CFO: electrical revenue broken out into residential service, commercial service, and new construction. Labor classified as direct field, indirect field, and back office. Materials separate from subcontract. 4 subsidiary GMs pushed back on the materials reclassification — the CFO ran a working session with all 9 GMs over two calls, not 9 separate conversations. Day 35: COA migration complete on 7 of 9 entities. Remaining 2 (QBD) complete by Day 40.
Close Cadence — non-negotiable from Day 41 forward
Hard rule: all entities close by the 5th of the following month. Platform CFO published consolidated financials by the 8th. First consolidated package published on the 8th of the second month — 3 weeks earlier than the previous cycle. RollForge anomaly alerts configured per entity with electrical-specific thresholds (commercial revenue drop >20% MoM, residential ticket average down >15%). Monday Pulse emails started.
Board-Ready + DSCR Monitoring
Loan packages for all 9 entities — DSCR calculated from live bank data, add-backs normalized (owner salaries, vehicle allowances, one-time electrical equipment purchases). Executive narrative generated per entity with trade-specific language. Lender presentation run live off RollForge dashboard — no exported slide deck. Live DSCR monitoring dashboard configured against existing debt covenants for 3 entities with SBA loans.
What actually changed (before / after)
These are the eight operational metrics Cardinal tracked at Day 0 and Day 90:
The hard parts
The COA negotiation was harder than expected — not technically, but organizationally. Three of the subsidiary GMs had been running their companies for 10+ years with their own reporting conventions. The residential/commercial/new-construction revenue split required reclassifying roughly 18 months of historical revenue data for two entities, which the GMs initially resisted because it changed their reported gross margins. The CFO resolved it by running the recomputation first and showing GMs what their margins looked like under the new framework — in most cases, the platform standard made their margins look better, not worse, because it correctly excluded non-recurring equipment purchases from the cost base.
Multi-state licensing complexity turned out to be a reporting problem more than an integration problem. The mapping of journeyman/master status to technician headcount per state mattered for labor cost allocation (licensed technicians carry a wage premium) — once that data existed in a consistent format, RollForge's cost-per-job breakdown could finally reflect real field costs. The mapping took one week to build; the cost-visibility improvement was immediate.
The QBD-to-CSV path for two entities was simpler than the team expected. The upload wizard accepted QBD report exports directly and mapped the account codes against the target COA automatically — with a manual review step for the 6 accounts that didn't map cleanly. Total time: 90 minutes per entity across two sessions.
What Day 90 actually looked like
The lender call that prompted the integration project — a refinancing across three entities — happened on Day 88. The CFO opened the loan package builder, selected all three entities, and generated a combined 3-entity Banker-Ready Package in 40 minutes. The package included trailing 12-month P&Ls with normalized add-backs, DSCR calculated against current debt, AR aging, and an AI-generated executive narrative specific to the electrical services industry context.
The lender asked three follow-up questions about technician headcount trends and seasonal revenue concentration. The CFO answered them live off the RollForge dashboard without pulling a single spreadsheet.
Day 90 Results
- 9 entities live in a single portfolio view — consolidated P&L on demand
- Monthly close cycle compressed from 5–6 weeks to 4 business days
- Unified COA across all entities — gross margin comparable platform-wide
- Live DSCR monitoring against covenants for 3 SBA-financed entities
- Banker-ready loan packages for all 9 entities — generated in under an hour
- Multi-entity lender presentation run entirely off live dashboard
- First post-integration acquisition onboarded in 9 days
What comes next
Cardinal's next phase is acquisition-readiness infrastructure: a standardized due diligence checklist that can score new electrical targets in under a week, automated integration risk scoring before LOI, and DSCR-scenario modeling for two active pipeline targets. The data discipline they built in 90 days means new acquisitions don't reset the clock — they inherit the platform standard from Day 1.
The license-to-technician mapping they built for the integration is now a competitive moat: Cardinal can model post-acquisition labor cost more accurately than competitors who haven't done the mapping, which lets them price acquisitions more precisely without leaving margin on the table.
Electrical roll-up integration doesn't have to take 18 months.
The framework is documented. The software is built for it. If your platform has fragmented reporting, a 5-week close, or a lender conversation coming up — the path is shorter than you think.