HVAC finance guide
v2026.08 · ~7 min read

HVAC labor cost percentage: what it is, what’s healthy, and how to find yours.

Labor is the single largest line on almost every HVAC P&L — and the one that is easiest to misread. Reported as a percentage of revenue, it tells you, in one number, how much of every dollar you billed had to be paid back out to the technicians who did the work. It is not the same as the wage line at the bottom of payroll: it covers every hour that touched a job, including drive time, callbacks, and warranty visits that quietly soaked up the schedule.

Most owners we talk to either have never seen the percentage or have a gut number that understates it by several points. If your shop is doing $2M a year, the gap between a 29% labor line and a 36% labor line is the difference between a healthy year and a rough one. A free Bleedwise diagnostic is the fastest way to find where your shop actually sits.

What “labor cost” actually means on an HVAC P&L.

Strictly defined, HVAC labor cost is the total compensation paid to the people who produce the work — tech hours, lead-tech hours, install helpers, and the share of any foreman or project manager whose time is directly billable to a job — expressed as a percentage of total revenue for the same period. That is the figure most accounting systems will hand you if you point them at the right export, and it is the figure the benchmarks below are written against.

In practice, the line most owners read is narrower than that. Office staff, dispatchers, and the service manager are usually parked on the overhead side of the P&L, together with software subscriptions, vehicle costs, and depreciation. When those roles are stripped out and only direct production hours remain, the percentage drops — and the leak that the percentage is supposed to surface hides in the gap. Drive time, warranty callbacks, training hours, and time on the bench all sit closer to production labor than to overhead, and most contractors I’ve worked with absorb them into productive hours rather than tracking them separately.

Healthy HVAC labor cost bands by shop size.

The HVAC trade does not run on a single figure — it runs on a band, and the band shifts with shop size and the cost of the local market. As a rule of thumb, for shops pulling between $500K and $10M a year:

  • Small shop ($500K–$1M). Typically lands between 30% and 40%. Owners in this band often run lean crews, so the percentage moves a lot from month to month — a single sick day or a slow week swings it two or three points.
  • Mid-market ($1M–$5M). Usually pulls 27%–36%. The wider crew gives you better absorbency — drive time is spread across more hours and the bench is deeper — so the band tightens and shifts lower.
  • Large shop ($5M–$10M). Frequently runs 26%–34%, with the stronger operators pulling toward the bottom of the band as their service-mix and tech leverage compound.

Those ranges come straight from the benchmarks Bleedwise uses to interpret every diagnostic, and they adjust by region. Lower-cost markets tend to compress both ends of each band slightly — a mid-market operation in the Southeast can run the same crew and finish the year nearer 25%; a comparable operation in a high-cost coastal market is closer to 30%. The right way to read the band is “good for you” — the band your own revenue, your own region, and your own service-mix put you inside — not a number that has to be the same for every shop in every market.

Three ways labor cost quietly creeps up.

Three problems recur in shop after shop. Most contractors we’ve worked with are leaking percentage to at least two of them, and almost never notice because the headcount feels stable and the schedule feels full.

1. Unbilled drive time stacking on the labor line.

A technician who bills eight hours of productive time but drives ninety minutes to his first call and another ninety back to the shop has worked a ten-hour day, not an eight-hour day. When that gap is not charged back to the customer or to a minimum on the ticket, it is paid out of the same revenue that funded eight hours of work — and the labor line moves up two or three points without anyone deciding to. Tighten routing, cluster small-ticket work into zones, and revisit any diagnostic-fee or trip-charge structure that is flat.

2. Warranty and callback hours billed at full rate.

A failed startup, a refrigerant top-off, or a return visit to diagnose an airflow complaint reads as productive hours on the schedule. The opposite is true — those hours were eaten recovering margin that was already booked, and arguably building a case for losing the customer. Track every warranty-related call separately and you see the leak rather than absorbing it into next month’s labor line.

3. Two-tech visits to single-tech tickets.

Sending a two-tech crew to a ninety-minute diagnostic on a residential system doubles the labor in the bucket without doubling the revenue. Across a month of small-ticket residential visits, that pattern alone can move the labor line up a point or two. Either ticket those visits at a price that supports the crew, or rotate a single tech in for the residential tank while the second tech rides to the next commercial call.

How to find your own number.

The math itself runs in five minutes once you have the right export. Pull the last full month from your accounting system or field-service software — QuickBooks, ServiceTitan, Housecall Pro, or any other export that gives you monthly revenue and a payroll breakdown by role. Take the production labor — tech hours, lead-tech hours, install helpers, and any foreman time that was directly charged to jobs — and divide it by revenue for the same month. That percentage is your labor cost for the month, and the trend across the last six to twelve months is the figure you actually want to be reading.

Bleedwise reads the same CSV your accountant opens, isolates the production labor the same way, and benchmarks the result against the size and region of your shop. The output is a plain-English diagnostic that ranks what is leaking and what to do about it first. There is no consultant engagement and no sales call — you upload the file, and minutes later you see your percentage next to the band it should be in.

See your number

Stop guessing. Run the diagnostic in five minutes.

Upload a QuickBooks, ServiceTitan, or Housecall Pro export and Bleedwise runs the same calculation end-to-end. The first look is free — the rest of the report is yours once you keep an account.

What the report answers

— what your labor cost percentage is today

— where it sits vs. the band for your shop size and region

— the three drivers most likely pushing it up

— the one change that pulls it back into band first