A $9 error in your cost per hour sounds small. Across 60,000 billable hours it is $540,000 (example numbers).
Sixty thousand hours is not a giant company. It is roughly 40 techs, each billing about 1,450 hours a year. Plenty of HVAC, plumbing and electrical shops in this country are that size, with wrapped trucks, a full board and a waiting list in July. From the outside they look like the most successful company in town.
Inside, a lot of them are pricing off an hourly cost that was set years ago and nudged up a little every spring. Meanwhile insurance, fuel, trucks and benefits each moved on their own schedule. Nobody rebuilt the hour from the bottom up. It just drifted.
Small errors are only small at small volume. This post shows how to rebuild the hour, line by line, so you know what one hour of your crew actually costs.
Wage Is Not Cost: What Labor Burden Adds
Ask an owner what a tech costs and you usually get the wage. “He makes $32 an hour.” That is what lands on the paycheck. It is not what the hour costs the business.
Every dollar of wage drags other costs behind it. Some are set by law, some by your insurance carrier, some by the benefits you offer to keep good people. Together they are called labor burden, and in the trades it is common for burden to add a third or more on top of the wage.
Then there is the second problem, which is bigger and gets missed more often: you pay for hours you can’t bill. Drive time, shop time, the morning load-out, training, the warehouse run, holidays, vacation, sick days. A tech can be on the clock 2,080 hours a year and bill far fewer than that.
True labor cost per hour has to account for both.
Step 1: Add Up What the Tech Costs for a Year
Here is one HVAC service tech, built from the ground up (example numbers):
| Line | Annual cost |
|---|---|
| Wage: $32 × 2,080 paid hours | $66,560 |
| Employer Social Security and Medicare (7.65%) | $5,092 |
| Federal and state unemployment | $600 |
| Workers’ comp | $4,000 |
| General liability share | $1,500 |
| Health insurance (employer share) | $7,200 |
| Retirement match | $2,000 |
| Tools, uniforms, training, licensing | $1,500 |
| Total annual cost | $88,452 |
A few notes on where these come from. The employer share of Social Security is 6.2% and Medicare is 1.45%, which is where the 7.65% comes from (Social Security stops at the annual wage base). Federal unemployment applies only to the first $7,000 of each employee’s wages, and most employers who pay their state unemployment on time end up with a small federal rate. State unemployment rates vary by state and claims history. Workers’ comp depends on your state, class codes and experience mod.
Your numbers will be different. The point is to put every one of them on the page.
In this example, burden is $21,892 on top of $66,560 in wages, about 33%. Divide the total by the 2,080 paid hours and the tech costs $42.53 per paid hour, not $32.
Step 2: Count the Hours You Can Actually Bill
Now the part that changes the answer the most.
Start with 2,080 paid hours. Take out 80 hours of vacation and 56 hours of paid holidays. That leaves 1,944 hours on the job.
Of those, not all are billable. Some are drive time between calls. Some are the morning at the shop loading the truck. Some are the afternoon in a certification class. Some are going back to fix something that should have been right the first time. In this example, about a quarter of working hours fall into that bucket, which leaves 1,450 billable hours (example numbers).
Step 3: Divide
$88,452 divided by 1,450 billable hours is $61 per billable hour.
So the tech who “makes $32 an hour” costs this business $61 for every hour it can actually put on an invoice. Nearly double the wage, and that is before the truck, fuel, the dispatcher, the office, software or a dollar of profit.
Where the $9 Comes From
Here is how a shop ends up $9 off without anyone making an obvious mistake.
Say the owner did include burden. Good. But he assumed each tech bills 1,700 hours a year, because that is what the schedule looks like when it is full. $88,452 divided by 1,700 is $52.
The real number is $61. The difference is about one hour a day of drive time, shop time and callbacks that nobody counted. That is $9 per billable hour that gets priced as if it doesn’t exist.
At one tech, $9 an hour is about $13,000 a year. Annoying, survivable. At 40 techs and 60,000 billable hours, it is $540,000 a year of cost the prices never covered (example numbers). That money never shows up as a line item. It shows up as a year that felt busy and didn’t leave much behind.
Callbacks deserve their own mention. Every hour spent going back to a job is a paid hour with nothing to bill, which is why change orders and callbacks that never get billed quietly raise your cost per hour across every other job.
Labor Is Only the First Layer
The $61 is your labor cost. The full cost of a billable hour also carries the truck, fuel, phones, the office, software and the owner’s time spent running the place.
One plumber set his rate at $145 an hour because the shop across town charged $140. When he finally added up truck, insurance and drive time, his hour cost him $131 before any profit (example numbers). On a good hour he kept $14. On a callback, nothing. His rate came from across town. His cost came from his own shop.
Once you know your loaded labor cost, the next step is allocating overhead to every job, which is the core of job costing for contractors. Without both numbers, a bid is a guess.
How to Rebuild Your Hour This Month
You don’t need software to do this. You need a spreadsheet and last year’s numbers.
- Pull last year’s payroll by employee. Gross wages, employer taxes, workers’ comp, health insurance, retirement match.
- Add the per-tech costs that aren’t on payroll. Tools, uniforms, training, licensing, a share of general liability.
- Pull actual billable hours by tech. From your field software or your invoices, not from what the schedule was supposed to be. This is the number that usually surprises people.
- Divide total cost by billable hours. Do it per tech and for the whole crew. The spread between your best and worst tech is useful information on its own.
- Compare it to what you charge. If your labor rate on invoices doesn’t clear this number with room for overhead and profit, the price is the problem, not the crew.
- Rebuild it every year. Insurance renewals, raises and fuel all move. A number you rebuilt in 2023 is already drifting.
This is one of the most common profit leaks in a contracting business because nothing ever flags it. No invoice is wrong. The margin just thins.
Why the Bigger Shops Get Hit Hardest
When you have three trucks, the owner usually feels a bad hourly cost in his gut. He is on the jobs. He sees the drive time.
At 20 or 40 trucks, the owner isn’t in the field anymore, and the number lives in a spreadsheet someone built years ago. Growth outran the reporting. That is not carelessness. It is what happens when a company moves up a level and the systems underneath it stay where they were, which is the pattern behind the six levels of a contractor business.
The fleet tells the town you are doing well. Only the numbers can tell you.
Find Out Where Your Pricing Stands
If you haven’t rebuilt your cost per hour in the last year, there is a good chance it has drifted. The free 5-minute Contractor Growth Assessment scores your business on six areas, including whether your pricing still matches your real cost per hour.
Take the free Contractor Growth Assessment →
This article is general information, not tax or accounting advice for your specific situation. Payroll tax rates, unemployment rates and workers’ comp costs vary by state and by business.




