Margins
What Is a Good HVAC Gross Margin?
Target HVAC gross margin by service, install, and maintenance agreements, and how to fix a margin that is running low.
Key takeaways
- Service work should generally run 45 to 55 percent gross margin.
- Install work typically runs lower, 20 to 35 percent, because of equipment cost.
- Maintenance agreements can be the highest-margin, most stable revenue you have.
- A blended company-wide gross margin number can hide a losing service line.
- Low margin is almost always a pricing or job-costing visibility problem, not a labor problem alone.
A good gross margin for HVAC service work is generally 45 to 55 percent. Install work often runs lower, closer to 20 to 35 percent, because of higher equipment cost, while maintenance agreements can run higher because labor is efficient and pre-scheduled. Blending these correctly, and knowing which is which, is the real skill.
What gross margin measures
Gross margin is revenue from a job minus the direct costs of doing that job, labor, materials, equipment, and subcontractors, divided by revenue. It does not include overhead like office staff, rent, marketing, or insurance; those come out later when calculating net profit. Gross margin tells you whether the job itself, in isolation, made sense financially. A technician can be busy all day, and the company can look active and successful, while the actual jobs being done are priced too thin to leave enough behind to cover overhead and profit. This is why gross margin, tracked by service line rather than as one blended company number, is one of the most important numbers an HVAC owner can watch. It is the first place a pricing or efficiency problem shows up, well before it shows up in the bank account.
Service work: the 45 to 55 percent range
Standard repair and service calls should generally deliver 45 to 55 percent gross margin. This range accounts for technician labor, drive time, standard parts, and a reasonable profit built into pricing. If your service work is consistently below 45 percent, common causes include underpriced flat-rate menus that have not been updated for rising labor and material costs, too much discounting or coupon-driven work, excessive drive time or inefficient routing eating into billable hours, or a habit of absorbing minor extra parts and time as a customer service gesture without adjusting the price. Service work is usually the highest-margin category available to an HVAC company because it relies mostly on labor and expertise rather than expensive equipment, so a service gross margin below the 45 percent floor deserves quick attention, since it is often the easiest margin to fix through pricing discipline alone.
Install work: why it runs lower
Installation of new systems typically runs a lower gross margin, generally 20 to 35 percent, because a large share of the job cost is the equipment itself, furnaces, condensers, air handlers, purchased at wholesale and marked up, alongside labor. Even with healthy markup on equipment, the dollar cost of that equipment relative to the total job price naturally compresses the percentage margin compared to a labor-heavy service call. This is normal and expected; install work should still be evaluated on gross margin dollars, not just percentage, since a $12,000 install at 28 percent margin delivers more actual profit dollars than a $400 service call at 50 percent margin. Problems arise when install margin drops meaningfully below the 20 to 35 percent range, often from underestimating labor hours, project overruns, poor material takeoffs, or competitive bidding pressure that pushes prices down without a matching reduction in scope or cost.
Maintenance agreements: your highest-margin asset
Maintenance agreements, where customers pay for scheduled tune-up visits, often deliver the highest gross margin of any service line, because the labor is efficient, pre-scheduled with minimal drive-time waste, and the visits rarely involve expensive parts. Well-run maintenance programs can push gross margin well above the general 45 to 55 percent service range. Beyond the direct margin, maintenance agreements act as a pipeline: a technician doing a routine tune-up frequently identifies a failing part or an aging system, generating warm-lead repair and install revenue that would otherwise require expensive advertising to find. If your maintenance agreement gross margin looks thin, check whether visits are being scheduled efficiently by route and area, and whether technicians are pricing add-on repairs found during the visit correctly rather than treating them as a favor to a loyal customer.
Why blended margin can hide a real problem
Many HVAC companies only track one company-wide gross margin number, blending service, install, and maintenance together. This can look perfectly healthy, sitting comfortably in the 40s, while masking a real problem underneath, like install work running at 12 percent because of chronic underbidding, offset by strong service and maintenance margins covering the gap. A blended number moving from 46 to 43 percent might look like a minor dip, but if that shift is actually install collapsing from 30 to 15 percent while service holds steady, that is a serious and specific problem needing a specific fix. Breaking out gross margin by service line, using job types, classes, or locations in QuickBooks, is the difference between catching a real problem early and not noticing until it has dragged down a full year of overall profitability.
Common causes of a low gross margin
Beyond stale pricing, several patterns quietly erode HVAC gross margin. Warranty and callback work that is not tracked separately can make margins look worse than the paying work actually performed, or can hide a real quality issue driving unpaid rework. Material cost increases, especially for refrigerant and major equipment, that are not passed through into pricing on a regular basis will steadily compress margin even if labor efficiency stays constant. Technician pay structures that reward hours worked rather than jobs completed efficiently can quietly inflate labor cost per job. And a general habit of quoting from memory or gut feel, rather than from an updated cost sheet, tends to drift low over time as costs rise gradually and pricing does not keep pace. Reviewing actual job costs against quoted prices on a sample of recent jobs each month is one of the fastest ways to catch this drift.
How to fix a margin that is running low
Start by measuring gross margin separately for service, install, and maintenance, using the last three to six months of actual job costs, not estimates. Compare each to its target range, and identify which category is dragging the average down. For service, review flat-rate pricing against current labor and material costs and adjust if it has not been updated in the last year. For install, review recent jobs for accuracy between estimated and actual labor hours, and tighten the estimating process if overruns are common. For maintenance, check route efficiency and whether technicians are pricing add-on findings correctly. Then set a simple monthly habit of reviewing gross margin by category, not just once a year, so a slipping number gets caught and corrected within weeks rather than compounding across an entire season of underpriced jobs.
Why real-time margin tracking beats a year-end surprise
Gross margin problems compound. A service menu that is 5 percentage points underpriced does not just cost you 5 points once; it costs you on every single job booked under that pricing until it is corrected, potentially hundreds of jobs across a busy season. Discovering this at year-end, when your accountant hands you an annual profit and loss statement, means the damage is already done for the entire year. A live dashboard that tracks gross margin by service line weekly or monthly, paired with a Virtual CFO who flags a slipping number and asks the right question, like whether pricing has kept pace with material costs, catches this early enough to protect a full season of jobs rather than one. This is the practical, ongoing value of real-time financial visibility over a once-a-year backward look.
Questions people ask
What gross margin should HVAC service calls have?
Generally 45 to 55 percent. Below that consistently points to underpriced flat rates or too much discounting.
Why is install gross margin lower than service margin?
Install jobs involve a much higher share of expensive equipment cost relative to labor, which naturally compresses the percentage margin even when pricing is done correctly.
Are maintenance agreements a good source of gross margin?
Yes, often the highest-margin work available, because labor is efficient and pre-scheduled, and visits frequently generate warm-lead repair and install revenue.
Should I track one gross margin number or separate ones by service line?
Separate by service line. A single blended number can hide a real problem, like install work running at a loss while service and maintenance cover the gap.
How do I fix a low HVAC gross margin?
Break margin out by service line, compare recent job costs to current pricing, update flat-rate menus and estimating processes, and review the numbers monthly instead of once a year.
Want these numbers waiting for you every morning?
QuickBooks records your numbers. LedgerDude turns them into a simple daily brief: your cash, what happened yesterday, what is coming next, and what deserves your attention.
