If you do not know what a job costs, every price you set is a guess that happens to feel about right.
TL;DR Direct labour is not the wage. Add payroll burden, drive time, equipment depreciation, material waste and non-billable hours. Most service businesses discover their true cost per job is 40 to 60% above what they assumed.
What belongs in service COGS
Include: costs that exist because this job exists.
- Direct labour for time on the job.
- Payroll burden on that labour.
- Materials and consumables, at your cost.
- Subcontractor costs.
- Equipment use and depreciation.
- Drive time and vehicle running cost.
- Disposal fees, permits, job-specific costs.
Exclude: costs you would have anyway. Rent, office wages, insurance, software, marketing. Those are overhead, allocated separately.
The line matters because COGS drives your gross margin and tells you whether the work itself is profitable before overhead.
Direct labour is not the hourly wage
The single biggest error in service pricing.
| Component | Typical addition |
|---|---|
| Base wage | $28.00 |
| Employer payroll taxes | +$2.20 |
| Workers compensation | +$1.70 |
| Health and benefits | +$3.50 |
| Paid time off, loaded | +$1.90 |
| Training and licensing | +$0.50 |
| Fully burdened | ≈ $37.80 |
That is roughly a 35% uplift and it varies by trade, state and how dangerous your work is. Workers comp on roofing is a different number entirely from workers comp on office cleaning.
Calculate your own. Take total annual employment cost for a technician, divide by actual worked hours, not paid hours.
Then correct for utilisation
A technician paid for 2,080 hours a year does not bill 2,080 hours.
Subtract: holiday, sick leave, training, drive time, shop time, and the gaps between jobs.
A common result: 1,200 to 1,500 genuinely billable hours a year.
$78,000 annual fully burdened cost ÷ 1,350 billable hours = $57.80 per billable hour
Against a nominal wage of $28. That is the number your pricing has to clear before overhead or profit.
Drive time and vehicle cost
Almost always excluded and it is substantial.
- Time. Round trip, at the fully burdened rate.
- Vehicle running cost. Fuel, insurance, maintenance, depreciation, per mile.
Calculate a per-mile figure by taking total annual vehicle costs divided by annual miles. Many trades land somewhere in the range of $0.60 to $1.00 per mile all-in, though it varies widely by vehicle and use.
22-mile round trip at $0.75 = $16.50 vehicle
50 minutes drive at $57.80/hr = $48.20 labour
Drive cost: $64.70 before any work happens
That number is why small distant jobs lose money.
Equipment depreciation
Spread the cost of tools and machines across their working life.
$9,000 machine, 5-year life, used on roughly 180 jobs a year
$9,000 ÷ (5 × 180) = $10 per job
Include maintenance, calibration and consumable wear. Small tools can be handled as a flat per-job allowance rather than tracked individually.
Material waste is real
Your material cost is not the invoice price.
- Offcuts and unusable remainder.
- Spoilage and damage.
- The extra fitting you carry so you do not make a second trip.
- Returns you never process.
Add a waste factor. Many trades use 5 to 15% depending on the material. Track it for a month and use your own number.
And mark materials up. Handling, ordering, collecting, storing and warranting materials is work. A markup of 20 to 40% is common in the trades. Charging cost means doing that work for free.
Putting a job together
Job: water heater replacement
Labour, 4 hrs on site @ $57.80 = $231.20
Drive, 50 min @ $57.80 = $48.20
Vehicle, 22 miles @ $0.75 = $16.50
Materials at cost = $640.00
Waste allowance 8% = $51.20
Equipment allowance = $10.00
Disposal fee = $35.00
Total COGS = $1,032.10Overhead allocation (monthly overhead ÷ jobs) = $150.00
Total cost = $1,182.10At a 35% net margin target: price ≈ $1,819
Most owners quoting this job from instinct land between $1,300 and $1,500, which is at or below cost once everything is counted.
Non-billable time, the killer
Quoting, invoicing, chasing payment, ordering, scheduling, driving to suppliers.
Track a full week honestly. If you bill 25 of 45 hours, your true cost per billable hour is nearly double the nominal figure, and every price built on the nominal figure is wrong.
Two responses. Price correctly for it, and reduce the avoidable parts through better tooling and batching.
On margin benchmarks
Owners always want to know what margin is normal. Published figures vary enormously by trade, region, company size and what each source counts as COGS versus overhead. A number quoted at you is often not comparable to your business.
Use yourself as the benchmark. Calculate it, write it down, improve it, measure again in six months. Your own trend is the useful comparison.
Cost your most common job properly this week using the structure above. If the true number is above what you charge, you have found something more valuable than a month of marketing.
Need a pro to build the model? [BOOK A CALL]
