Why It Exists How It Works Leak Detection Pricing Operator Blog Get Diagnosed Free
Home/ Operator Blog/ Economics
Economics

What's a Good Gross Margin for an HVAC Business? 2025 Benchmarks

April 4, 2026 10 min read MarginPlug Operator Intelligence

This is one of the most searched questions in the HVAC industry — and one of the most poorly answered. Most of what you'll find online gives you a single number, no context, and no explanation of why your number might be different from the benchmark even if your business is healthy.

This article gives you the actual answer: gross margin benchmarks broken down by revenue band, service mix, and market type — plus the three most common calculation errors that cause HVAC owners to believe their margin is better than it actually is.

The short answer: a good gross margin for an HVAC business is 50–58% for most residential service-focused companies. Top-quartile operators run 57–63%. If you're below 44%, you have a structural problem that needs diagnosing, not just fixing.

57–63%
Top-quartile HVAC gross margin — the target to build toward
38%
Average gross margin for HVAC companies calculating it incorrectly
+15pts
Typical gap between reported and real margin when labor burden is miscalculated

HVAC Gross Margin Benchmarks by Revenue Band

Gross margin varies significantly depending on your revenue level, service mix, and how efficiently your operation runs. The table below reflects residential-focused HVAC companies in the US market. Commercial-heavy operations typically run 5–10 points lower due to lower parts markup and more competitive bidding environments.

Revenue band Bottom quartile Average Top quartile Elite (top 10%)
Under $500K Below 38% 42–48% 50–56% 58%+
$500K–$1M Below 40% 44–50% 52–58% 60%+
$1M–$2M Below 42% 46–52% 53–59% 61%+
$2M–$3.5M Below 40% 45–51% 52–58% 60%+
$3.5M–$7M Below 42% 47–53% 54–60% 62%+
Based on residential-focused HVAC operations, US market. Commercial-heavy mix reduces gross margin by 5–10 points. Figures assume correctly calculated labor burden including all direct costs.

Notice that margin doesn't improve linearly with revenue. The $2M–$3.5M band often sees a slight dip compared to $1M–$2M — this is the complexity zone where businesses have added overhead and headcount but not yet the systems to control it. If you're in this range and your margin is declining as revenue grows, you're experiencing a very common and very fixable pattern.

What's Actually Included in HVAC Gross Margin

Before comparing your number to these benchmarks, you need to confirm you're calculating the same thing. Gross margin in HVAC is:

(Revenue − Direct Costs) ÷ Revenue × 100

The critical question is what counts as a direct cost. Here's the correct breakdown:

35–45%
Direct labor — the largest component
This must be fully loaded labor cost, not payroll. Includes base wages, employer FICA (7.65%), workers' comp insurance (typically 8–14% in HVAC), health insurance contribution, paid time off accrual, and any vehicle allowance. Most owners undercount this by 22–35% by using payroll figures only.
12–20%
Parts and materials
The cost of parts, refrigerant, and consumables used in jobs. This should be your actual cost, not your retail price. Markup discipline matters here — if you're not maintaining at least a 40–50% markup on parts, this component is compressing your margin.
3–8%
Subcontractor costs
If you use subs for any portion of work — electrical, ductwork, specific installs — their cost goes here. Businesses growing through subcontracting often see margin compressed in this line as sub rates rise faster than their flat rate books are updated.
See how you compare

Know your real gross margin — benchmarked against your revenue band.

The MarginPlug diagnostic calculates your true gross margin using correctly loaded labor costs, then benchmarks it against companies at your exact revenue level. Most owners are surprised by the gap between reported and real margin.

See my real margin Free during beta · 8 minutes · No credit card

The 3 Ways HVAC Owners Calculate Gross Margin Wrong

This is the most important section of this article. The benchmarks above are only useful if you're calculating gross margin the same way they were measured. These three mistakes are so common that most owners reading this will recognize at least one.

Mistake 1 — most common
Using payroll figures instead of fully loaded labor cost
Your payroll report shows base wages. Your true labor cost includes employer FICA, workers' comp, health insurance, PTO, and often a vehicle allowance. A technician showing $28/hour in payroll typically costs $36–$42/hour fully loaded. Across 4 technicians running 1,800 billable hours each, that $8–$14/hour gap = $57,600–$100,800 in annual cost that isn't reflected in your gross margin calculation. If you're using payroll figures, your reported gross margin is likely 8–15 points higher than your real margin.
Mistake 2 — extremely common in growing businesses
Including overhead costs in the gross margin calculation
Gross margin only includes direct costs — costs that exist because of the job. Office staff, rent, software subscriptions, marketing, owner's salary, and vehicles that aren't job-specific are overhead costs that belong below the gross margin line (in operating expenses). If you're including any of these in your direct cost calculation, your reported gross margin will be artificially low. This creates the opposite problem — you think margins are worse than they are, which leads to underpricing decisions.
Mistake 3 — specific to flat rate businesses
Not accounting for non-billable tech time in labor cost
Your technicians are paid for 8 hours a day. They bill for maybe 5.5–6.5 of those hours. Drive time between jobs, shop time, morning huddles, and training are all paid hours that don't generate revenue. When you calculate labor cost per billable hour, you must divide total loaded daily labor cost by billable hours only — not total hours worked. A tech costing $340/day in loaded cost with 6 billable hours costs you $56.67/billable hour, not $42.50. Missing this inflates your reported gross margin significantly.

Gross Margin by Service Type

Not all HVAC work carries the same margin. Knowing your margin by service type is one of the most powerful decisions you can make — it tells you which calls to optimize for and which ones you're potentially losing money on.

Service type Typical gross margin range Why it varies
Diagnostic / service calls 55–68% High labor, low parts — margin depends almost entirely on labor efficiency
Repair (parts-heavy) 42–55% Parts markup discipline is the key variable — inconsistent markup kills margin here
System replacement (residential) 38–52% Equipment cost is high, competitive pricing pressure is high — margin requires strict job costing
Maintenance agreements 58–72% Predictable, schedulable, efficient — the highest-margin work type in residential HVAC
Commercial maintenance 32–44% Competitive bid environment and longer job cycles compress margin consistently
Ranges assume correctly calculated labor burden. Lower end of each range typically reflects businesses without job-level cost tracking.

How to Actually Improve Your HVAC Gross Margin

Most advice on improving gross margin focuses on raising prices. That's one lever — but it's not always the right first move. The four levers below are ranked by how quickly they produce results and how difficult they are to execute.

Lever 1 — Update your flat rate book (fastest, easiest)

If your pricing book hasn't been reviewed in the last 12 months, your prices are behind your costs. Labor costs rose significantly in 2022–2024. Parts prices increased 15–28% over that period. A pricing audit — recalculating the true loaded cost for your 20 most common jobs and adjusting prices accordingly — typically recovers 3–6 margin points with no operational changes required.

Lever 2 — Enforce parts markup discipline

In most HVAC businesses, parts markup is inconsistent. Techs discount parts informally, markup exceptions happen job by job, and no one is tracking the aggregate impact. Setting a hard markup floor (minimum 40% on parts, minimum 50% on refrigerant) and enforcing it through your flat rate book — not through asking techs to calculate markup in the field — recovers 2–4 margin points for most companies within 60 days.

Lever 3 — Shift your service mix toward maintenance agreements

Maintenance agreements are your highest-margin work type. Every service call that converts to a maintenance agreement increases the margin on that customer's future jobs by 10–20 points — because the work is scheduled, the tech is prepared, and there's no acquisition cost attached. A 10-point increase in maintenance agreement penetration typically adds 2–3 points to overall gross margin within a year. See our article on the HVAC maintenance agreement math for the full calculation.

Lever 4 — Reduce callback rate (highest impact, takes longest)

Callbacks are jobs that cost you full labor with zero revenue. Every callback that doesn't happen is margin directly recovered. At a 5% callback rate on 1,000 annual jobs, dropping to 2% saves 30 jobs worth of loaded labor per year. That's typically $5,400–$9,000 in recovered margin — and improved customer experience as a bonus. Read more in our breakdown of the 7 hidden profit leaks killing HVAC companies.

Operator Intelligence

Know your real gross margin — not the one your accounting software shows.

MarginPlug calculates your true gross margin using correctly loaded labor costs, benchmarks it against your revenue band, and identifies whether pricing, labor burden, or service mix is suppressing it. Free during beta.

Run the free diagnostic Free during beta · No credit card · Results in minutes