There are two numbers that matter here, and they're often confused.
Gross profit margin is what's left of a job's revenue after direct costs: labor, materials, subcontractors, equipment. It's the number you use to judge whether a job or a department is priced correctly.
Net profit margin is what's left after everything: overhead, insurance, financing, taxes. It's the number that tells you whether the business is actually working.
The data tells a fairly consistent, if humbling, story. Industry financial-benchmarking research, including the ACCA's financial benchmarking study, puts the median net profit margin for HVAC contractors at roughly 5 to 8%, with the top quartile of operators averaging closer to 13 to 20%. Gross margins typically run 40 to 60%, and they vary a lot by job type: service and repair work tends to run 50 to 65% gross, while installation work is usually thinner, in the 35 to 50% range. That's a big part of why the highest-margin shops aren't necessarily the ones installing the most systems. They're the ones running the most service calls.
Company size matters too. Solo operators can sometimes net 15 to 30%, but many shops hit an "overhead trap" as they add their first two or three employees: overhead grows faster than revenue for a stretch, and net margin can fall to single digits before the business catches back up with better systems and a stronger service mix.
As a target, a healthy net margin for a well-run residential HVAC company in 2026 sits in the 10 to 20% range, with genuine top performers clearing 20% or more. A double-digit net margin isn't a luxury. It's what lets a business absorb a slow month, a blown compressor on a company truck, or a technician quitting mid-season without the whole operation wobbling. Below that, there's no shock absorber, and every surprise becomes a crisis.
Fixing margin isn't a single initiative. It's a habit built in three stages.
Stage 1: Know your actual numbers
You can't improve what you haven't measured. Before setting any goal, get a clear read on:
Gross and net margin by department (install, service, maintenance, new construction), not just company-wide
Technician utilization and callback rate
Average ticket size and how it's trending
Overhead as a percentage of revenue, and how that's shifted year over year
What percentage of eligible customers are on a maintenance plan
Your call answer rate and call-to-booking conversion rate
That last one is easy to overlook, but well-run shops typically convert 38 to 50% of answered inbound calls into booked jobs. If you don't know your own number, or you don't know how many calls you're missing before they even get a chance to convert, that's the first gap worth closing.
Blending all of this into one company-wide number tends to hide the real story. A strong install department can mask a service department that's losing money, and vice versa. Break it down before you set targets.
Stage 2: Track it weekly, not just annually
Annual reviews tell you where you ended up. Weekly tracking tells you whether you're on pace to get there while there's still time to course-correct. A simple weekly scorecard, covering revenue versus target, gross margin, billable utilization, average ticket, maintenance agreement sales, call answer rate, and callback rate, catches problems in week three instead of month eleven.
The businesses that do this consistently are almost always running some form of centralized software rather than stitching together spreadsheets, a booking tool, and a separate invoicing platform. When the data lives in three places, the review itself becomes the bottleneck. The same logic applies to your phones: if you can't see how many calls came in, how many were answered, and how many turned into booked jobs, you're managing blind on one of the biggest levers in the business.
Stage 3: Fix the process, not just the number
Once you know where the gap is, the fix is usually operational, not aspirational:
Pricing gap? Build a defined pricing structure with regular job-costing reviews instead of ad hoc estimates.
Utilization gap? Tighten dispatching, cut unnecessary drive time, and hold techs accountable to a first-time-fix standard.
Recurring revenue gap? Make offering a maintenance plan a standard part of every eligible call, not an afterthought.
Acquisition cost gap? Invest in the systems that turn more inbound calls into booked, paying jobs, since every call that goes unanswered or unbooked is money already spent for nothing in return.

That last point is often the fastest lever to pull, and the easiest to fix without hiring anyone. Marketing brings the phone to ring; what happens on that call determines whether the spend was worth it. A missed call after hours, a slow follow-up, or an untrained answer can undo weeks of ad spend in seconds. CloseCrew exists specifically to close that gap: it answers every call instantly, qualifies the job, books it onto your calendar, and makes sure a lead you already paid for never goes to voicemail, gets forgotten, or ends up on a competitor's schedule instead. For a shop trying to move net margin from single digits into the double digits, recovering even a fraction of currently missed calls is often the single highest-leverage change available, with no added headcount and no added overhead.