Your P&L blends them together. One might be making 40% gross margin. The other might be making 12%. You have no idea which is which. Here is how to separate them.
An electrical contractor doing $1.5M in new construction at 22% gross margin and $800,000 in service work at 15% gross margin has a blended gross margin of roughly 19%. That looks acceptable. But the service side is significantly underperforming — service work priced and billed correctly should produce 35–45% gross margin. Without separating them, the decision that service work is "close enough" is made on no data at all.
New construction cost is dominated by direct labor and material on specific jobs. Service work cost is dominated by truck overhead, dispatch time, diagnostic labor, and callback rate. Lumping them into one P&L means neither is being costed correctly — the overhead allocation for a service truck is being averaged with new construction labor and producing a number that does not reflect the true cost of either.
New construction billing follows a pay app cycle — submit monthly, get paid 30–60 days later. Service billing should follow call completion — submit within 48 hours, get paid in 15–30 days. When service billing is lumped into monthly cycles, the cash timing advantage of service work disappears. Service work's primary financial advantage over new construction is faster cash. Monthly billing eliminates it.
Without separation, one business line is inevitably subsidizing the other and nobody knows it. The most common pattern: service work is underpriced relative to its overhead cost (truck, dispatch, small job overhead) and new construction covers the gap. Service work looks profitable because nobody has calculated the real per-call overhead. Once calculated, the pricing changes or the service book shrinks.
SPM builds two job costing streams — service work and new construction — each with its own cost codes, billing cadence, and margin reporting. Service calls are individual jobs with call-level cost tracking. New construction jobs are phased with pay app billing tied to the WIP schedule. Monthly reporting shows both side by side with their own gross margin lines.
Every completed service call gets an invoice within 48 hours. Not at end of week. Not at end of month. Within 48 hours. On $800,000 per year in service work, the difference between weekly billing and monthly billing is roughly $37,500 in permanent float recovery — money that used to sit in unbilled work waiting for the month to close, now collected continuously.
Service overhead includes truck cost (payment, insurance, maintenance, fuel), dispatcher time or answering service cost, and a share of shop/yard overhead allocated to the service fleet. Divide annual service overhead by number of service calls. Add to direct labor and material to get true per-call cost. Compare to average invoice value. If per-call overhead plus labor and material exceeds the average invoice, service work is losing money on every call regardless of what the blended P&L shows.
Callback labor — time spent on warranty or redo work — is pure cost with no corresponding billing. SPM tracks it as a separate cost code so the quality metric is visible. Contractors who track callback rates reduce them over time by identifying which technicians, call types, or material suppliers are generating repeat calls. A 5% callback rate on $800,000 in service work is $40,000 in unbilled labor per year.
This contractor did both service work and new construction for three active GC relationships. Blended gross margin was 19% — acceptable but not great. When SPM separated the two streams, new construction was running 28% gross margin across all three GC relationships. Service work was running 11% — below the breakeven point once per-call overhead was correctly allocated.
Across both service and construction billings — the single biggest immediate improvement was simply collecting what had already been billed but not followed up on.
Once the true per-call cost was visible, service labor rates were repriced to reflect actual overhead. Some customers moved on. The ones who stayed are now profitable. Total service revenue decreased. Service margin increased from 11% to 38%.
A free call with Josh takes 30 minutes. Bring your last P&L and current bank balance.
Schedule a Free Call →