Job profitability

Your True Hourly Rate: How to Calculate Burdened Labor Cost

If you price jobs off what you pay a tech per hour, you are underpricing. The number on the paycheck is not the cost of an hour of that person's time. The real number is burdened labor cost: wage plus the load, divided by the hours that actually land on tickets.

Work this worksheet once per role. Then put that rate into the job calculator as "labor cost per hour." Everything else in job costing is downstream of this.

This week: fill the table for your primary tech (or yourself). Divide annual cost by last month's job hours × 12, not by 2,080. If the rate is more than 1.7× wage, your billable hours — not your payroll taxes — are the problem.

Why the wage is a lie you tell yourself

An employee at $30/hour costs more than $30 because you also pay taxes, workers' comp, insurance, benefits, and every hour they are on the clock that is not a customer invoice. If you also divide that pile by 2,080 paid hours instead of job hours, you hide the second lie: you are paying for a lot of time the customer never buys.

Part 1 — annual cost of one tech

Use last year's actuals if you have them. The example is a $30/hour tech in a typical US plumbing/HVAC shop, 2,080 paid hours.

LineMath / noteAnnual
Wages$30 × 2,080 h$62,400
Employer FICA (Social Security + Medicare)7.65% of wages$4,774
FUTA / SUTA (unemployment)shop-specific; use yours$1,050
Workers' compensation~8% of wages in many trades$4,992
General liability allocationshare of the policy$2,400
Health insurance (employer share)or $0 if none$6,000
Retirement match3% of wages$1,872
Uniforms, training, tools you buy$1,200
Total annual cost$84,688

Replace every line with your numbers. If you have no benefits, the total still is not the wage — taxes and workers' comp alone often add 15–20%.

Part 2 — hours the customer actually buys

Do not divide by paid hours. Divide by hours that hit jobs (onsite + travel you assign to tickets).

HoursThis example
Paid hours in a year2,080
PTO + holidays + sick− 144
Shop, meetings, training, warranty with no invoice− 160
Idle / weather / parts runs not on a ticket− 196
Job hours (onsite + travel on tickets)1,580

If you only count wrench time and ignore drive, you will understate cost on every short call. Track travel on the ticket; include those hours in the 1,580.

The rate

$84,688 ÷ 1,580 job hours = $53.60 per hour. That is the floor for labor on a job — before materials, overhead, and profit.

Same tech, worse utilization: $84,688 ÷ 1,250 hours = $67.75/hour. The wage did not change. The calendar did. This is why "we need to stay busy" without measuring job hours makes the next hire more expensive, not cheaper.

The calculator default uses $45/hour as a conservative burdened rate (about 1.5× a $30 wage). If your worksheet says $54 or $68, use that. Using $45 when you are really at $68 makes every ticket look 8–12 points too fat.

Turn the rate into a price

Burdened cost is not the billed rate. To hold 50% margin on labor, billed labor needs to be about 2× burdened cost. At $54/hour cost, that is about $108/hour billed before materials and overhead. Charge $75 "because the guy down the road does" and you are selling hours at a loss once the load is honest.

For a 2-hour onsite + 0.7-hour drive job: labor cost is 2.7 × $54 = $146. Add materials, overhead, and target profit on top. That is the floor before anyone talks discount.

Owner-operators

If you are the tech, still pick a wage you would pay someone else to do your work, then burden it. Pricing your own hours at "zero because I already own the truck" is how owner-operators work 60-hour weeks and take home less than their lead tech would require.

Final takeaway

Calculate burdened rate once per role. Update it when you hire, add benefits, or billed hours fall. Use it on every quote and every costed job. It is the difference between a full calendar and a profitable one.

Frequently asked questions

What is burdened labor cost for contractors?

It is the true hourly cost of a tech: annual wages plus taxes, workers’ comp, benefits, and extras, divided by job hours (onsite + travel on tickets) — not by 2,080 paid hours.

Why is the wage on the paycheck not my real labor rate?

A $30/hour tech in the worksheet costs about $85k per year fully loaded. At 1,580 job hours that is about $54/hour. Pricing on $30 makes every job look more profitable than it is.

How do I use burdened rate when I quote a job?

Multiply onsite and travel hours by the burdened rate, then add materials, overhead, and target profit. That is the floor before you talk discount. Put the same rate in the job calculator.

Put this rate on a real ticket

Enter your burdened rate in the free calculator and cost yesterday’s last job. If you only know wage, use the 1.6× helper, then come back and replace it.

Open the free calculator