What the Industry Data Actually Shows

Most HVAC contractors net between 8% and 12% on revenue. According to ACCA (Air Conditioning Contractors of America), the median net profit margin for residential HVAC businesses is approximately 10%. IBISWorld's 2023 industry report on plumbing, heating, and air conditioning contractors (NAICS 23822) pegs the average profit margin for the broader category at 5.6% to 8.3%, but that figure includes large commercial firms and subcontractors who operate on thinner margins with higher volume.

If you run a small to mid-size HVAC company doing $1M to $5M in annual revenue, 10% net is a realistic baseline. Top-quartile firms consistently report 15% to 20% net margins. The difference is rarely about working harder. It's about knowing your numbers with precision and pricing accordingly.

Gross profit margins tell a different story. Most HVAC companies operate with gross margins between 40% and 55%. Gross margin measures revenue minus direct job costs (materials, labor on the job, subcontractors, permits). Everything after that, your overhead, office staff, trucks, insurance, marketing, comes out of gross profit to leave you with net.

Margins by Work Type: Service, Replacement, and New Construction

Your profit margin shifts dramatically depending on what kind of work fills your schedule.

  • Service and repair: Gross margins of 50% to 65%. These are your highest-margin jobs. A diagnostic call with a $15 capacitor replacement billed at $289 is straightforward margin. Labor is the primary cost, and experienced techs can run 4 to 6 calls per day. According to PHCC/ACCA benchmarking surveys, service departments in well-managed shops regularly hit 55%+ gross margins.
  • Replacement and retrofit: Gross margins of 40% to 55%. Equipment costs eat into margin, but these jobs are predictable. A $12,000 residential system replacement with $5,500 in direct costs (equipment, materials, labor) yields a 54% gross margin. Volume matters here because you can schedule crews efficiently.
  • New construction: Gross margins of 25% to 35%. Builders negotiate hard. Payment terms stretch out. Warranty callbacks are common in the first year. Many HVAC contractors accept new construction work to keep crews busy during slow seasons, but it's margin-dilutive if it becomes more than 30% of your revenue mix.

A common mistake is blending all three into one P&L line and assuming you know your margins. You don't. You need to track gross profit by work type. If your new construction jobs are dragging your blended gross margin below 40%, you're subsidizing a builder's profit with your overhead dollars.

The Real Cost Most Contractors Undercount: Labor Burden

Paying a tech $30/hour does not mean that tech costs you $30/hour. True labor burden, the fully loaded cost including payroll taxes (FICA, FUTA, SUTA), workers' comp insurance, health insurance, paid time off, training, and vehicle costs, typically runs 1.4x to 1.6x the base hourly wage. For a $30/hour technician, your real cost is $42 to $48 per hour.

According to BLS data, employer costs for employee compensation in the construction sector averaged $43.84 per hour in 2023, with wages accounting for roughly 64% of total compensation. The remaining 36% covers benefits and legally required costs. If you're pricing jobs based on bare wage rates, you're giving away 25% to 35% of your true labor cost on every invoice.

This single miscalculation is the most common reason HVAC contractors show a healthy gross margin on paper but end the year wondering where the cash went. Your labor burden needs to be baked into your hourly billing rate, not treated as overhead.

Overhead: The 25% Benchmark

ACCA's financial benchmarking data suggests that overhead costs for a healthy HVAC business should land between 22% and 28% of revenue. Overhead includes everything that's not a direct job cost: office rent, admin staff, vehicle payments and fuel, insurance (general liability, umbrella), marketing, software, accounting, and owner compensation above a market-rate salary.

Here's a quick framework for a $2M revenue HVAC company:

  • Revenue: $2,000,000
  • Direct job costs (COGS): $1,000,000 (50% of revenue)
  • Gross profit: $1,000,000 (50% gross margin)
  • Overhead: $500,000 (25% of revenue)
  • Net profit before tax: $500,000 (25% net margin)

That 25% net margin is aspirational. It's what top-performing shops achieve. Most land closer to 10% because overhead creeps up, pricing stays flat, and a few bad jobs per quarter erode the cushion. The contractors who hit 20%+ net margins obsess over two things: keeping overhead below 25% and never letting gross margin drop below 50% on service and replacement work.

Common overhead leaks that quietly kill margin:

  • Trucks sitting idle. A truck payment, insurance, and fuel costs $800 to $1,200/month whether it runs or not.
  • Callbacks and warranty work not tracked as a cost center. If 5% of your jobs require a return trip, that's 5% of your labor capacity generating zero revenue.
  • Marketing spend with no attribution. If you can't trace a lead to revenue within 90 days, re-evaluate the channel.

How Top-Performing HVAC Contractors Price for 15%+ Net

Pricing is where margin is made or lost. Flat-rate pricing consistently outperforms time-and-materials billing for service and replacement work. According to a Contractor Magazine survey, HVAC companies using flat-rate pricing reported average net margins 3 to 5 percentage points higher than those billing T&M.

The math behind flat-rate pricing forces you to calculate your true costs upfront. Here's the formula most profitable shops use:

  1. Calculate your fully burdened labor cost per hour (wage × 1.5 average).
  2. Determine your target billable hours per tech per year. Most shops assume 1,400 to 1,600 billable hours out of 2,080 total hours. The rest is drive time, training, meetings, PTO.
  3. Divide total overhead by total billable hours across all techs. This gives you your overhead cost per billable hour.
  4. Add desired profit per hour.
  5. Sum these three numbers for your required revenue per billable hour.

Example for a 5-tech shop doing $2M in revenue:

  • Average burdened labor cost: $45/hour
  • Overhead per billable hour: $45/hour (based on $500K overhead ÷ 7,500 total billable hours across 5 techs)
  • Profit target: $25/hour (yielding roughly 18% net margin)
  • Required billing rate: $115/hour minimum

If your effective billing rate is below $100/hour, you're likely leaving money on every job. Track your effective rate monthly: total service and replacement revenue divided by total tech hours deployed. If that number trends downward, your margins are eroding regardless of how busy you are.

[ADD FIRST-HAND DETAIL: A specific example of an HVAC contractor's before/after margins when switching from T&M to flat-rate pricing, with real revenue and margin percentages.]

Tracking Margin Per Job, Not Just Per Quarter

Knowing your average margin is useful. Knowing your margin on every job is what separates a 10% shop from a 20% shop. Most contractors who run QuickBooks can see their quarterly P&L, but that's a trailing indicator. By the time you notice margin slippage on a quarterly report, you've already lost tens of thousands of dollars.

Per-job profit tracking requires three things:

  1. Accurate time tracking on every job. Not estimates, not rounded hours. Actual clock-in, clock-out times per tech per job. A 15-minute rounding error on a 2-hour call is a 12.5% labor cost variance.
  2. Real-time material cost capture. Your techs need to log materials as they use them, not from memory at the end of the day. Material cost discrepancies of 8% to 15% are common in shops that rely on end-of-day reporting, according to a 2022 ACCA operational benchmarking report.
  3. Overhead allocation per job. Even a simple allocation (total monthly overhead ÷ number of jobs completed) gives you a per-job overhead cost that turns gross profit into a net profit estimate per ticket.

When you can see that Tuesday's compressor replacement netted $1,400 in profit while Wednesday's duct modification lost $200 after overhead, you start making different decisions. You adjust pricing on specific job types. You stop discounting. You reroute your marketing toward the work that actually makes money.

This is exactly where most HVAC contractors hit a wall with QuickBooks alone. QuickBooks tracks revenue and expenses, but it wasn't designed to show you profit per job in real time from your truck. That gap between what happened and when you find out about it is where margin disappears.

Benchmarks Worth Watching Monthly

Track these five numbers monthly. If any trend in the wrong direction for two consecutive months, act before it becomes a quarterly problem.

  • Gross margin by work type: Service should be 50%+. Replacement should be 42%+. New construction should be 28%+. If any category drops below these floors, audit your last 10 jobs in that category for pricing or cost errors.
  • Revenue per tech per month: A productive service tech should generate $25,000 to $40,000 in monthly revenue. Below $20,000 signals scheduling inefficiency, low average ticket, or too much non-billable time.
  • Overhead as percentage of revenue: Keep this below 28%. If it climbs above 30%, you either need more revenue to spread fixed costs or you need to cut.
  • Callback rate: Track it as a percentage of completed jobs. Top shops run below 3%. Above 5% means quality issues that cost you labor and customer trust.
  • Effective billing rate: Total revenue from service and replacement divided by total tech hours. This single number tells you whether your pricing matches your cost structure.

These aren't vanity metrics. Each one connects directly to your net margin. A 2-percentage-point improvement in gross margin on a $2M revenue base is $40,000 straight to your bottom line. A reduction in callback rate from 6% to 3% on a 5-tech team recovers roughly 150 labor hours per year, worth $17,000 to $22,000 in recovered capacity.

The contractors who consistently hit 15% to 20% net aren't doing radically different work. They're measuring what matters, pricing with confidence, and catching problems per job instead of per quarter.


Related reading: Why Contractors Lose Money on Jobs · Contract Invoice Payment Terms for Trade Contractors · How to Get Paid Faster as a Contractor