ZeroDelay Academy · Field guide
Where is profit leaking from your plumbing jobs?
A busy schedule can conceal jobs whose labor, materials, travel or callbacks cost more than the estimate allowed. Compare a group of similar completed jobs before changing prices.
By ZeroDelay · An educational framework, not a customer case study
A question to start with
Does the gap come from the price collected, time on site, parts, or return visits?
Step 1
Start with completed jobs, not quotes
Group jobs of the same service type and period. Record the amount actually collected, excluding sales tax. Keep unusual emergency or warranty jobs separate.
Step 2
Bridge estimated and actual direct costs
For each job, compare estimated parts and loaded technician hours with actual parts and hours. Add callback labor and parts separately so they are not hidden in the original visit.
Step 3
Separate contribution from net profit
Subtract those direct costs from collected revenue. Then separately account for dispatch, vehicle, insurance, rent and other overhead before calling anything net profit.
Fictional worked example
All figures below are made-up assumptions to show the arithmetic. They are not industry averages, customer data, achieved outcomes or a forecast for your business.
Assumptions
- Fictional group of 12 similar completed jobs, each collecting $650 before tax: 12 × $650 = $7,800.
- Parts cost $180 per job. Estimated technician time was 3 hours per job; actual original-visit time was 4 hours per job.
- Loaded labor costs $35 per hour. Two callbacks each took an additional 2 hours and $40 of parts; those hours are not included in the original visits.
- Travel, dispatch and other overhead are excluded from this direct-cost illustration.
Simple math
- Estimated direct contribution: $7,800 − (12 × $180 parts) − (12 × 3 × $35 labor) = $4,380.
- Actual original-visit labor: 12 × 4 × $35 = $1,680. Callback cost: 2 × (2 × $35 + $40) = $220.
- Actual direct contribution: $7,800 − $2,160 parts − $1,680 original labor − $220 callbacks = $3,740.
- Difference from this estimate: $4,380 − $3,740 = $640, before overhead. This is a hypothetical cost gap, not recovered profit or a customer result.
What this suggests checking: The extra original-visit hours explain $420 of the $640 gap; callbacks explain $220. Check whether job scope, scheduling or documentation caused those costs before assuming a price increase is the answer.
Next checks using your own records
- Compare the same job type across the last 20–30 completed invoices, using actual collected amounts rather than list prices.
- Check technician time stamps and callback reasons; distinguish warranty work from new billable work.
- Add vehicle, dispatch and other overhead before deciding whether the job type is profitable.
Want to use your own figures? Try the free Service Business Profit Leak Check. Calculations stay in your browser.