HVAC Business Profit Margin: Averages and How to Raise Yours
What's a normal HVAC profit margin, why service and replacement margins differ, and what moves your net. With a worked $600,000 example.

A typical HVAC business profit margin is about 5% to 9% net. ACCA's 2025 Contractor of the Future Study reported 9% net profit for HVAC contractors that put at least 12% of revenue into marketing, and 5% for those that spent less.
Gross margin is a different number. Service and repair work usually carries a much higher gross margin than equipment replacements, so your job mix decides a lot.
Gross margin = (revenue − job costs) ÷ revenue. Net margin = (gross profit − overhead) ÷ revenue.
On a hypothetical $600,000 HVAC year: $270,000 gross profit (45%), $222,000 overhead including the owner's pay, $48,000 net (8.0%).
That 8% is the cushion for slow shoulder months, a callback that eats a day, and the next truck. Small changes in job margins move it a lot.
Scope: US residential HVAC service and replacement shops, benchmarks dated below, worked example hypothetical. For pricing individual calls, see how to price HVAC jobs; this page is about the margin the whole business ends up with.
1. What is a good profit margin for an HVAC company?
Use 5% to 9% net as the normal band, with owner pay counted as an expense. Below 5% net, one bad install or a quiet spring can wipe out the year. Above 10% net, you're doing better than the averages in the sources below.
| Benchmark | Margin | What it measures | Source, date |
|---|---|---|---|
| HVACR contractors spending 12%+ of revenue on marketing | 9% net | Survey of contractors | ACCA, Dec 3, 2025 |
| HVACR contractors spending under 12% on marketing | 5% net | Survey of contractors | ACCA, Dec 3, 2025 |
| Specialty trade contractor sole proprietors, tax year 2023 | 15.7% | Schedule C profit, before paying the owner | IRS SOI, Mar 2026 |
| Public engineering and construction firms (48) | 15.46% gross, 5.94% net | Company financials | Damodaran, Jan 2026 |
Sources: ACCA and Farmington Consulting Group, 2025 Contractor of the Future Study results; IRS Statistics of Income, Nonfarm Sole Proprietorships, Table 1, tax year 2023; Aswath Damodaran, Margins by Sector (US), data as of January 2026.
The ACCA numbers are the closest match for an HVAC shop. The IRS line covers all specialty trades, HVAC included, and it reads higher for a reason worth its own section.
2. Why your tax return makes your margin look better than it is
If you file a Schedule C, the profit on it is what's left before you pay yourself. It's your wage and your business profit mixed together.
In tax year 2023, 2,521,516 specialty trade contractor sole proprietors reported $257.8 billion in receipts and $40.5 billion in net income less deficits. That's 15.7%, or about $16,054 on an average $102,220 in receipts. And 20.6% of them reported a loss.
Now take out a fair wage for your own hours. A tech's median pay is $29.33 an hour, per O*NET, HVAC mechanics and installers, 2025. A full year at that rate is about $61,000 (2,080 hours), and the average return's $16,054 doesn't come close. Part-timers pull that average down, but the point stands: count your own pay as overhead, then judge the margin that's left.
3. Gross margin by job type
Gross margin tells you whether each job is priced right. Net margin tells you whether the business works after the shop, the trucks, insurance, the office and you get paid.
In HVAC the two big buckets behave differently:
- Service, repair and maintenance. Mostly labor and drive time, small parts. Gross margin is high, because the main cost is a tech's hour.
- Equipment replacement. Big material cost in the equipment itself. Gross margin is lower as a percentage, even when the dollars are bigger.
Customers compare replacement quotes, so that margin gets squeezed. Service margins hold up better because nobody shops three companies for a capacitor at 6 pm in July.
Price each call to a target gross margin with price = cost ÷ (1 − margin). Hypothetical repair: 2 hours of tech time at $42 (the $29.33 O*NET median plus an assumed 43% for taxes and benefits, rounded), a $120 part and $26 of truck and fuel. Cost is $230. At a 60% gross margin, price = $230 ÷ 0.40 = $575. At 50%, it's $460. Note that a 60% margin is a 150% markup, which is why people who mix the two words end up short.
4. Worked example: a $600,000 year
Take a hypothetical two-truck residential shop doing $600,000 a year: $240,000 in service and maintenance at a 60% gross margin, and $360,000 in replacements at 35%.
| Line | Amount | Share of revenue |
|---|---|---|
| Service and maintenance revenue | $240,000 | 40% |
| Replacement revenue | $360,000 | 60% |
| Gross profit: $144,000 service + $126,000 replacement | $270,000 | 45.0% |
| Overhead, including owner pay | $222,000 | 37.0% |
| Net profit | $48,000 | 8.0% |
Service is 40% of revenue but 53% of gross profit. That's why shops that chase installs and let service slide often grow sales and shrink profit at the same time.
5. What moves your net margin
Hold overhead at $222,000 and change one thing at a time.
| Scenario | Gross profit | Net profit | Net margin | Change vs base |
|---|---|---|---|---|
| Base | $270,000 | $48,000 | 8.0% | |
| Replacement margin drops from 35% to 30% | $252,000 | $30,000 | 5.0% | −37.5% |
| Service margin rises from 60% to 65% | $282,000 | $60,000 | 10.0% | +25.0% |
| Revenue up 10% to $660,000, same mix, overhead flat | $297,000 | $75,000 | 11.4% | +56.3% |
Replacement discounts. Knocking five points off every install to win bids cost $18,000, or 37.5% of net. If you discount, take something out of the scope instead of out of the margin.
Service pricing. Five points on service added $12,000. That's flat rate pricing that includes drive time, a diagnostic fee you actually charge, and parts priced from a current list. An HVAC price book keeps those numbers consistent across techs.
Volume. Ten percent more work on the same overhead added 56.3%. It only works if overhead really stays flat. Hire a dispatcher to get there and most of that gain is gone.
6. How to check your own margins
- Pull last year's revenue and split it into service and replacement.
- Add up job costs for each: equipment, parts, refrigerant, permits, and field labor including your own field hours at a real wage.
- Gross margin for each bucket = (revenue − job costs) ÷ revenue.
- Add up overhead: shop, trucks, insurance, software, marketing, office help and your salary.
- Net margin = (total gross profit − overhead) ÷ total revenue.
- Compare each bucket's real gross margin with the margin you priced into your quotes. The gap is money that leaked on the job: extra hours, free add-ons, parts that never made the invoice.
The profit margin calculator does the per-job math, and the hourly rate calculator folds overhead into your labor rate so every call carries its share.
Doing commercial sub work too? Watch the money held back on each pay app. On a thin margin, retainage can be bigger than your whole profit on the job until it's released.
Common HVAC profit margin questions
What is the average profit margin for an HVAC company?
About 5% to 9% net, based on ACCA's 2025 Contractor of the Future Study: 9% net for contractors spending at least 12% of revenue on marketing, 5% for the rest. That's after overhead, with owner pay counted as an expense. Gross margins run much higher, and they vary by job mix.
What is a good gross profit margin for HVAC service work?
There's no published standard, so set your own target from your overhead. Service and repair should carry a much higher gross margin than replacements, because labor is most of the cost. In the hypothetical example above, 60% on service and 35% on replacements produced an 8% net.
Is HVAC a profitable business?
It can be, but plenty of shops aren't. In IRS data for tax year 2023, 20.6% of specialty trade contractor sole proprietors reported a loss. The ones that make money price service to a target margin, protect replacement margins and keep overhead in line with volume.
How do I calculate profit margin on an HVAC job?
Subtract job costs from the price, then divide by the price. A $575 repair with $230 in costs has a 60% gross margin: ($575 − $230) ÷ $575. To set the price from a target, use price = cost ÷ (1 − margin).
What to do on your next quote
Pick a target gross margin for service and one for replacements, price every line with cost ÷ (1 − margin), and charge for the drive.
Already sent one? Upload it to the estimate checker and see if it's priced too low.


