Cost Per Lead Benchmarks · October 1, 2026 · GrowthPros

What is the profit margin for HVAC?

Discover real HVAC profit margins by work type, company size, and why lead acquisition costs make or break your net profit. Benchmarks from 100s of P&Ls.

Flat illustration of HVAC equipment and a profit margin chart with lime green accents highlighting slim margins.

Key Facts

The Real Numbers: HVAC Profit Margins by Work Type and Company Size

The notion of a single "HVAC profit margin" is misleading because it blends three distinct business models under one roof. Service and repair operations typically generate gross margins of 48-65%, while installation and replacement work runs 30-52%, according to industry benchmarks. This gap widens at scale, where commercial O&M segments often operate at lower margins than new construction due to price-based bidding, as seen in public company filings showing EMCOR’s building services at 6.0% operating margin versus 12.8% for mechanical construction.

Most HVAC companies net between 5% and 12% after all expenses, with the average landing near 8%. Top performers achieve 15-20%+, though margins exceeding 20% are rare across hundreds of P&Ls reviewed. Comfort Systems USA, for example, reports an 11.2% net margin despite a 24.1% gross margin, illustrating how overhead and labor burden erode profitability. Well-run companies target specific benchmarks: gross profit of 45-55%+, overhead under 20-27%, and marketing spend of 5-12% to hit net profit goals of 10-20%+.

Blended margins mask critical departmental performance, making it essential to track service and install work separately. Service calls may show 55% gross margin on paper but drop to ~30% when fully-burdened labor costs—approximately 30% higher than base wages—are factored in, along with drive time and callbacks. This labor burdening is the single most common reason jobs appear profitable on the invoice but aren’t in reality. Overhead creep further drains profits, with 3-5% of revenue often representing unnecessary costs that could be cut without operational impact—$150K-$250K on a $5M company.

Lead costs significantly influence these margins, especially when evaluated incorrectly. Shared leads from marketplaces like Angi or HomeAdvisor may cost $80-$150 upfront but require ~17 leads per job due to a 6% overall close rate, driving the actual cost per closed job to $1,700-$2,500+. Exclusive leads, priced higher at $60-$80, reduce this to $240-$320 per job through a 26% close rate and just ~4 leads needed per job. For contractors using GrowthPros’ exclusive lead model, this shift from cost-per-lead to cost-per-booked-job reveals the true ROI—turning what looks like a premium expense into a margin-preserving investment when close rates and job value are properly accounted for.

Where the Margin Leaks: Labor Burden, Discounting, and Overhead Creep

Where the Margin Leaks: Labor Burden, Discounting, and Overhead Creep

A service call showing 55% gross margin on the invoice often delivers closer to 30% net profit after accounting for hidden costs. Fully-burdened technician labor runs approximately 1.3x base wages, turning the BLS median HVAC tech wage of $28.75/hr into ~$37.38/hr when taxes, workers’ comp, and benefits are included. This gap explains why jobs that look profitable on paper frequently underperform in reality, especially when drive time, callbacks, and dispatch inefficiencies are layered in.

Uncontrolled discounting acts as a silent profit drain. A $200 discount on a $12,000 install, applied across 300 jobs annually, erases $60,000 in gross profit—equivalent to losing an entire technician’s salary without reducing overhead. Most HVAC companies also carry 3-5% of revenue in unnecessary overhead that could be trimmed without operational impact, representing $150,000–$250,000 in avoidable costs on a $5M shop. These leaks compound when technicians are paid on revenue rather than gross profit, removing incentives to prioritize higher-margin work.

  • Fully-burdened tech costs: ~1.3x base wage ($28.75/hr → ~$37.38/hr)
  • $200 discount × 300 installs = $60,000 lost gross profit annually
  • 3-5% revenue in unnecessary overhead ($150K–$250K on a $5M company)

GrowthPros helps contractors reclaim margin by delivering exclusive, speed-to-lead prospects that reduce acquisition costs and increase close rates—turning lead spend into measurable job profitability rather than just another line item in the overhead column.

The Lead Cost Trap: Why a $100 Shared Lead Really Costs $1,700 Per Job

Most HVAC contractors fixate on the sticker price of a lead, not what it actually costs to turn that lead into a paying job. This oversight quietly erodes margins, turning what looks like a bargain into a profit drain. The math is brutal: shared leads priced at $80–$150+ often require 17 attempts to close one job due to a mere 6% overall close rate, pushing the true cost per closed job to $1,700–$2,500+. Exclusive leads at $60–$80, by contrast, close at 26% and need only four attempts, landing the cost per booked job at $240–$320.

This gap isn’t just academic—it directly impacts whether you can pay your techs what they’re worth. When you factor in fully-burdened labor costs (approximately 30% higher than base wages), a job that invoices at 55% gross margin can drop to ~30% net after drive time, callbacks, and overhead. At those levels, spending $1,700 to acquire a single job leaves little room for error, especially when the average residential HVAC job generates $6,500 in revenue. Suddenly, that “cheap” shared lead isn’t just inefficient—it’s actively undermining your ability to sustain a profitable operation.

  • Shared leads from Angi/HomeAdvisor: $80–$150+ cost per lead, 6% overall close rate, ~17 leads needed per job, $1,700–$2,500+ actual cost per closed job
  • Exclusive leads: $60–$80 cost per lead, 26% overall close rate, ~4 leads needed per job, $240–$320 actual cost per closed job
  • HVAC-Specific Lead Value: Average job value $6,500, exclusive lead close rate 30%, true lead value $1,950

The only metric that matters for payroll and sustainability is cost per booked job—not cost per lead. GrowthPros helps contractors shift focus to this number by delivering exclusive and capped-shared leads with AI-powered follow-up inside five minutes, ensuring you’re not just buying a lead but buying a real shot at closing the job. When your acquisition cost aligns with your job value, margins stop leaking and start scaling.

Fix the Math: Track Cost Per Booked Job, Not Cost Per Lead

Most HVAC owners track cost per lead because it's easy to see on an invoice. The number that actually pays your technicians is cost per booked job — and the gap between the two is where profit disappears.

Shared marketplace leads illustrate the trap perfectly. A $100 shared lead with a 6% overall close rate requires roughly 17 leads to close one job, pushing the real acquisition cost to $1,700–$2,500 per closed job. An exclusive lead at $70 with a 26% close rate needs only about four leads per job, dropping the cost per closed job to $240–$320. The sticker price told you the opposite story.

Departmental margin tracking makes this math actionable. Well-run companies target 55–65% gross profit on service and repair, and 42–52% on replacement and install work. Blended margins hide the fact that a service call showing 55% gross can fall to roughly 30% net once fully-burdened labor, drive time, and callbacks are accounted for.

Benchmark tiers keep the scorecard honest:

  • Great: Gross profit 55%+, overhead under 20%, marketing 5–8%, net profit 20%+
  • Good: Gross profit 45–55%, overhead 20–27%, marketing 8–12%, net profit 10–20%
  • Red Flag: Gross profit under 40%, overhead over 27%, marketing over 15%, net profit under 8%

Seasonality distorts lead economics if you don't plan for it. Peak-season lead prices rise 20–40% during summer AC and winter heating spikes, while shoulder seasons deliver cheaper volume. Smart contractors shift budget accordingly instead of chasing the same cost-per-lead target year-round.

Speed-to-lead and exclusivity change the close-rate denominator. Contacting a lead within five minutes makes contact roughly 100x more likely than at thirty minutes, and about 78% of buyers choose whoever responds first. GrowthPros builds that window into every delivery — AI voice, SMS, and email follow-up inside five minutes, 24/7 — so the close rate improves before your team even picks up the phone.

The cheapest acquisition channel is often the one you already own. A dormant, opted-in CRM list typically re-engages 8–15% of contacts through a multi-channel AI sequence (SMS first, voice follow-up, email backup). Reactivation costs 60–80% below new-lead cost per qualified conversation, and every reactivated lead carries a consent record, timestamp, and DNC-scrubbed compliance trail.

Your Next Move: Run the Numbers on Your Own Pipeline

You now know the margins. The question is whether your lead pipeline is quietly eating them. Here's how to find out in one sitting.

Start by calculating your true cost per closed job — not your cost per lead. Pull your last 90 days of leads from every channel, count how many actually closed, and divide total spend by closed jobs. As one lead-cost analysis puts it, "The only number that matters is cost per closed job." A $100 shared lead closing at 6% effectively costs $1,700–$2,500+ per job; a $70 exclusive lead closing at 26% costs $240–$320.

Then compare your acquisition channels honestly, channel by channel:

  • Shared marketplace leads — $80–$150+ per lead, but 4–5 contractors receive each one and contact rates sit around 40%, dragging overall close rates to roughly 6%.
  • Exclusive leads — higher sticker ($60–$80 in the same analysis), but 75% contact rates and ~26% overall close rates mean ~4 leads per job instead of ~17.
  • Your existing CRM — dormant, opted-in leads you already paid for, typically the cheapest acquisition source you own.

Remember the context: your average job is worth about $6,500, and most HVAC companies net just 5–12% after overhead, per benchmark reviews of hundreds of P&Ls. A $1,700 acquisition cost on a $6,500 install can erase the entire net margin before the truck leaves the driveway. On 100 jobs a year, switching from shared to exclusive leads saves $140,000+ in acquisition costs, according to the same ROI comparison.

One variable compounds everything: speed. Contacting a lead within five minutes makes contact roughly 100x more likely than at thirty minutes, and about 78% of buyers choose whoever responds first. This is where GrowthPros builds its model — every lead is qualified, consent-recorded, and either exclusive or capped-shared with a hard maximum of two buyers, then followed up by AI voice, SMS, and email inside a five-minute window, 24/7. No lead ever gets dumped into a shared inbox, and follow-up is included with every lead, not sold as an upsell.

Pricing is directional until we see your market: home-services leads typically run $30–$150+, with exclusive leads costing 2–4x a shared lead but closing 15–30% higher. We won't quote you invented numbers on a page — that's what the qualification call is for.

Book the 15-minute qualification call. It's free, honest about fit, and commits you to nothing — but it will tell you exactly what your cost per closed job could look like with a capped pipeline and five-minute follow-up.

Frequently Asked Questions

What is a good profit margin for an HVAC company?
Most HVAC companies net between 5% and 12% after all expenses, with the average landing near 8%, and 20%+ margins are rare across hundreds of P&Ls reviewed. Well-run companies target gross profit of 45-55%+, overhead under 20-27%, and net profit of 10-20%+ (benchmark tiers).
Why does my service call show 55% gross margin but barely make money?
You're probably costing labor at base wage — the single most common reason jobs look profitable on the invoice but aren't. Fully-burdened technician labor runs about 1.3x base wages ($28.75/hr becomes ~$37.38/hr), and once drive time, callbacks, and overhead are factored in, a 55% gross-margin service call drops to roughly 30% (Level CFO analysis).
Are shared leads from Angi or HomeAdvisor really cheaper than exclusive leads?
No — shared leads just look cheaper. A shared lead at $80-$150+ has only a 6% overall close rate, meaning you need roughly 17 leads per job and pay $1,700-$2,500+ per closed job. An exclusive lead at $60-$80 closes at 26%, needs about four leads per job, and costs $240-$320 per closed job (Minyona's lead-cost analysis).
What's the difference between service and installation margins in HVAC?
Service and repair work typically generates gross margins of 48-65%, while installation and replacement runs 30-52%. Blended margins mask this gap, so you should track the departments separately — service work carries low material costs and strong pricing power, since a homeowner with a broken AC in July isn't shopping three bids (Profitability Partners benchmarks).
How much should an HVAC company spend on marketing and overhead?
Well-run companies keep operating overhead under 20-27% of revenue and marketing between 5-12%. Most companies also carry 3-5% of revenue in unnecessary overhead — $150,000-$250,000 on a $5M shop — that could be cut without operational impact (Profitability Partners).
Should I judge lead quality by cost per lead or cost per booked job?
Cost per booked job is the only number that pays your technicians — cost per lead is misleading without close rates. On 100 jobs a year, switching from shared to exclusive leads saves $140,000+ in acquisition costs, and speed matters too: contacting a lead within five minutes makes contact roughly 100x more likely than at thirty minutes, with 78% of buyers choosing whoever responds first (Minyona ROI comparison).

Turn Your HVAC Lead Spend Into Real Profit

HVAC profit margins aren’t a single number—they’re shaped by work type, labor burden, and how you acquire jobs. Service work may show 55% gross margin but often nets closer to 30% after fully-burdened labor, while shared leads from marketplaces can cost $1,700–$2,500+ per closed job due to low close rates, eroding profitability before the truck even leaves the driveway. The fix starts with tracking cost per booked job, not cost per lead, and targeting benchmarks like 55%+ gross profit on service and under 20% overhead. When your lead acquisition aligns with job value—through exclusivity, speed-to-lead, and reactivating your existing CRM—you stop leaking margin and start scaling it. To see what your true cost per closed job could be, book a free, no-pressure 15-minute qualification call with GrowthPros to evaluate your pipeline and uncover real savings.

This article is general information, not legal or financial advice. Benchmark figures are directional industry data, not guarantees of results.

Start

More booked calls. Not more form fills.

Tell us your niche and your goal. We will show you realistic volume, exclusivity options, and what follow-up looks like on a live call — no pressure, no 40-page deck.