Trades industry news, updated weekly
Business Tips

Your Fully Burdened Labor Rate Is Not Your Hourly Wage

Maria ChenMaria Chen··12 min read

Your Fully Burdened Labor Rate Is Not Your Hourly Wage

The Cost Sitting Between Your Wage Rate and Your Actual Labor Cost

In 2019, I pulled the P&L on a 14-truck residential HVAC shop my firm was evaluating for acquisition. The owner had been in business eleven years. He had also been losing money on every install for three years and had no idea.

The mechanism wasn't complicated. He was pricing installs by taking his lead tech's hourly wage, multiplying by estimated job hours, and calling that his labor cost. It wasn't. It was his payroll line item, which is a different thing entirely. The gap between the two was eating his margin before a single piece of equipment left the warehouse.

This is the cost-of-doing-business problem. Most contractors I work with can explain the difference between markup and margin when I ask. Most are also running prices that treat the two as interchangeable. The confusion embeds itself first in the labor rate, which is why that's where we're starting.

The error is predictable in direction: it always understates cost. The size of the gap varies by shop, but it's never a rounding difference. Across a full year of installs, it's the number that explains why a shop that looks profitable on revenue is cash-tight every October.

What Actually Goes Into a Fully Burdened Labor Rate

I held an EPA 608 Universal and a NATE certification. I ran service calls in a Sprinter for six years. I know what a journeyman HVAC tech's comp package actually costs a shop to carry — not from a textbook.

Start with the base wage. Then add every dollar the employer pays that doesn't appear on the tech's paycheck.

FICA runs 7.65% of gross wages up to the Social Security wage base, then 1.45% above it. FUTA is 6% on the first $7,000 of wages, though the effective rate after state credits usually lands around 0.6%. SUTA varies by state and by the employer's claims history, and it moves after terminations in ways that bite shops six months later when the rate notice arrives.

Workers' comp is where the number gets serious. HVAC technicians typically fall under classification code 5537, which is one of the higher-rated codes in the mechanical trades. Depending on your state, your claims history, and your experience modification factor, that classification runs 8 to 14 percent of gross wages. Not the 3 percent I see shops estimating when they estimate at all.

Beyond taxes and comp: health insurance premiums paid by the employer; PTO and holiday pay (a tech who takes two weeks of paid vacation costs you real wages for zero billable output); tool allowances; uniforms; employer retirement contributions; training costs including course fees, exam fees, and the paid hours a tech spends in a classroom instead of a truck.

Add it up. A journeyman tech's base wage becomes meaningfully more expensive by the time burden is fully loaded — before you've touched overhead or profit. Run the number for your own shop against your actual comp schedule and your actual workers' comp rate. That specific calculation is what matters, not a generic example.

A note on wage baselines. I read the BLS Occupational Employment and Wage Statistics releases. The national median for HVAC mechanics and installers is a real number and essentially useless for pricing your labor in a specific market. The OEWS data breaks down by metro area. Use that. Applying a national average to your local labor calculation is the same category of error as using a national average fuel price to set your truck operating cost — the aggregate obscures the variance that determines whether your price holds in your market.

The Unbillable Hours Problem: Where the Calculation Usually Breaks

Even contractors who correctly load benefits and taxes onto the wage rate often still underprice, because the denominator is wrong.

They take total annual technician cost and divide by total annual hours paid. That produces a cost-per-hour figure that looks correct and isn't, because not all paid hours produce billable revenue. PTO hours are paid. Training hours are paid. Shop time is paid. Drive time to the first call of the day is paid in most shops, or should be under current DOL guidance.

And then there are callbacks.

Callbacks are the unbillable hour category that most dispatch software tracks and most pricing calculations ignore entirely.

At Atlantic Comfort Partners, I watched this pattern in acquired shops. A shop with a meaningful callback rate on equipment installs was sending techs back out at full cost — wages, truck, burden — and recording it in dispatch software as a warranty call. Correctly categorized. Completely invisible to the pricing model. The margin on the original install had already been recognized. The callback cost hit the current month as overhead with no corresponding revenue.

When I worked through the acquired books at ACP, the shops that had the worst install margin problems were consistently the ones where callback hours were never subtracted from the billable denominator. The cost was real. The pricing model had never seen it.

The correct denominator for a burdened rate calculation is billable hours — hours that appear on a customer invoice and generate revenue. Total paid hours minus PTO, minus training time, minus shop time, minus callback hours, minus drive time that isn't billed to a specific job. That denominator is smaller than most shops assume, which means the true cost per billable hour is higher than most shops have calculated.

Mobilization time on installs belongs in this analysis too. Drive to the supply house, load the equipment, drive to the site — that window is a real cost. It belongs in the rate.

The Flat-Rate Book Problem

The standard industry answer to labor pricing complexity is a flat-rate book from one of the major vendors. I'll say this plainly: it's the wrong answer for most shops under 25 trucks, and the sales process is designed to prevent you from reaching that conclusion before signing.

Flat-rate books produce predictable revenue per ticket. That is what they are designed to do. Predictable margin per ticket is a different goal, and it requires a cost basis built from your actual numbers — not the assumptions baked into a vendor's pricing matrix.

The vendors selling these books are not running your P&L. Their price books are calibrated to their margin structure, including any parts purchasing program or supplier rebate arrangement the book is tied to. Those prices are not neutral. They support that structure first.

At Atlantic Comfort Partners, the first thing our ops team did after closing an acquisition was rebuild the cost basis from scratch. Nearly every acquired shop had priced from a vendor flat-rate book. When we broke out margin by job type — straight swap versus full system replacement versus high-efficiency upsell — the variance was large enough that certain job categories were being subsidized by margin earned on others. The owners hadn't known, because one book produced one ticket price and they had one revenue line.

A small shop needs predictable margin. The pricing tool you use should produce that.

How to Run the Calculation

The spreadsheet I wish I had shown that 14-truck owner in 2019 has four inputs.

Total annual technician cost. Annual base wages, plus FICA at your actual rate, plus SUTA and FUTA at your actual rates, plus workers' comp premium at your actual classification and experience modifier, plus annual employer health insurance premium, plus annualized PTO and holiday pay, plus tool allowance and uniform cost, plus training expense, plus retirement contributions. This is what one technician actually costs you per year.

Realistic annual billable hours. Start with total paid hours. Subtract PTO and holiday hours. Subtract training hours. Subtract non-billable shop time. Subtract callback hours — your dispatch software has this for the last 12 months, pull it. Subtract non-billed drive time. What remains is your real denominator.

True cost per billable hour. Divide total annual cost by billable hours. That's your fully burdened labor cost per billable hour. Compare it to what's currently in your price book.

Price to a target gross margin. Gross margin on labor (revenue minus labor cost, divided by revenue) is different from contribution margin (revenue minus variable costs before fixed overhead). Price to gross margin. If your target is 45%, the correct formula is burdened cost divided by (1 minus 0.45). Burdened cost times 1.45 produces a different, lower number — that's markup over cost, not gross margin, and the difference is a persistent error I saw repeatedly at ACP and have seen since in independent shops.

I went back for an MBA at George Mason in 2016 because I kept watching shop owners make pricing decisions that felt right and didn't survive a spreadsheet. This is the spreadsheet. Run it for each technician tier you employ — apprentice, journeyman, lead tech — because their burden profiles differ and their rates should reflect that.

What to Do With This Number

Two calculations, one comparison, completable this week.

Pull the last 12 months of payroll records. Build a single column: base wages plus every non-wage employer cost for each technician — taxes, workers' comp premium, benefits, PTO, tool allowance, training. Total it. Most owners have never seen this number assembled in one place.

Pull your dispatch records for the same period. Calculate total billable hours actually invoiced — not hours scheduled, not hours clocked. Pull your callback count from dispatch and estimate the hours those callbacks consumed. Subtract that from paid hours to get your real denominator. Divide.

Then compare the result to the labor rate currently in your price book. The gap between those two numbers is the gap that's been sitting in your margin. Your job this week is to find out how large it is in your shop.

One more thing, because it matters once you've corrected the rate. The next question is how fast a corrected rate converts to cash. Your days sales outstanding (the average number of days between completing a job and collecting payment) determines whether the math you've just run actually reaches your bank account. A correct labor rate billed on slow-paying terms is still a cash flow problem. Your accounting software can calculate your DSO from the receivables aging report. Check it alongside the rate.


FAQ

If I raise my labor rate, won't I price myself out of the market against larger competitors?

The large shops and PE-backed operators in most residential HVAC markets are not running dramatically lower labor costs. Their benefit packages are frequently richer, which runs the other direction. What they have is better cost recovery in pricing, not lower costs. If you're losing bids to a competitor pricing below your burdened rate, the more useful question is whether that competitor is actually profitable. The shops that resist this math on competitive grounds tend to be the ones whose margin disappears first when equipment costs move — because they've been absorbing rather than pricing, and there's nothing left to absorb.

How do I handle technicians with different skill levels — should I calculate a separate burdened rate for each tech?

Yes. A senior journeyman with a full benefits package, a $1,200 tool allowance, and eight years of seniority has a meaningfully different burdened cost than a second-year apprentice on a high-deductible health plan. Blend them into a single shop rate and you're overcharging jobs staffed by the apprentice and undercharging jobs staffed by the journeyman — the opposite of the margin profile you want. Calculate by tier: apprentice, journeyman, lead tech. Three calculations.

My workers' comp rate just went up after a claim. When does that change my burdened rate calculation?

Your experience modifier recalculates annually at your policy renewal date. The practical move is to recalculate your burdened rate immediately when you receive the new policy declaration, not at year-end. If your effective rate moves from 9% to 12% of gross wages at renewal, your cost per billable hour changed that day and your price book didn't. Adjust within the same billing period. Waiting until January means every job between renewal and adjustment absorbs the delta.

I use 1099 subcontractors for overflow work. Does this calculation apply to them?

Their rate is partially loaded, not fully. A 1099 sub's invoice covers their wages and presumably their own payroll taxes. It does not cover your general liability exposure on their work, your warranty or callback obligation if their work fails, or the administrative cost of managing the relationship and verifying their insurance. Before treating a sub's invoice rate as your true cost on a job, add for those downstream exposures. It won't always change the decision to use them, but it should change the margin you're expecting from the job.

How often should I recalculate?

At minimum, annually — timed to your workers' comp renewal and your benefits renewal, since those are the two largest variable components. Also recalculate any time one of the inputs moves materially: a wage increase above 5%, a workers' comp rate change, a health insurance premium shift, or a significant change in your callback rate. The burdened rate is a living number. Treat it as one.

Enjoyed this article?

Get articles like this in your inbox every Monday. Free, no spam.

More from The Backcharge