The 7 Hidden Profit Leaks Killing HVAC Companies Under $3M
You don't need to be losing money to have a profit leak. You just need to be keeping less than you should.
The average HVAC company doing $500K–$3M in revenue is losing between 8% and 14% of gross revenue to leaks that are identifiable, measurable, and fixable — most of them hiding in plain sight inside operations that feel completely normal.
At $1M revenue, 10% leaked = $100,000 per year leaving quietly. Not from one catastrophic mistake. From seven small ones compounding daily.
Here are all seven. By the end of this article you'll know which ones are active in your business — and what to do about each.
Why $3M Is the Danger Zone for HVAC Margin
There's a specific reason these leaks hit hardest in the $500K–$3M range. Below $500K, an owner-operator can personally see almost everything happening in the business. Above $3M, most operators have been forced to build real systems just to function.
The $500K–$3M band is the gap in between — too big to run on personal oversight, too small to have real systems. The owner has usually added trucks and staff but hasn't added the financial visibility to know what any of it actually costs.
"I kept thinking the next truck would fix the margin problem. It didn't. I was just scaling the leak." — HVAC owner, 6 trucks, $2.1M revenue
That's the trap. Revenue growth without diagnostic clarity means you're potentially adding more of whatever is already leaking. The seven leaks below are the ones we see most consistently in this revenue band — and the ones that compound fastest with growth.
The 7 Leaks
A callback isn't just a free return visit. It's a fully loaded tech hour (or two) with zero revenue attached, plus the opportunity cost of the job slot that could have been a paying call.
The math: at a 5% callback rate on 1,000 annual jobs, you have 50 callbacks. At a loaded tech cost of $95/hour and an average 1.5 hours per callback, that's $7,125 in pure cost — before the $180–$320 in foregone revenue per blocked slot.
Industry average callback rate is 3–7%. Top performers run under 2%. Every percentage point above 3% is costing the average $1M HVAC company $3,000–$5,000 per year in direct cost alone.
How to check yours: Pull your last 90 days of jobs. Filter for any job at an address that had a prior job within 30 days on the same equipment. That's your callback pool. Divide by total jobs. If it's above 3%, this leak is active.
When techs discount in the field — 10% off here, waived service fee there, "I gave them a deal" — those decisions don't usually show up anywhere. They're absorbed into the job and forgotten.
But across 1,200 annual jobs, even $25 average untracked discount per job = $30,000/year in margin erosion. At $50 average, that's $60,000. Most owners have no idea their field discounting rate is higher than their stated policy.
How to check yours: Pull any jobs from the last 60 days where the invoiced amount was less than the flat rate book price for that service. Calculate the gap. That's your discounting leak rate — even if the tech had a "good reason" for each one.
Most HVAC businesses have 4–6 active lead sources. At least one of them — often two — is producing leads that cost more to acquire and convert than the jobs they generate in gross profit.
A lead that costs $180 to acquire, closes at 55%, and produces an $380 average ticket with 40% gross margin generates $83 in gross profit at a $180 acquisition cost. That channel is cash-flow negative per closed job.
The problem: most owners calculate CAC as total marketing spend divided by total leads. That blended rate hides which channels are profitable and which are bleeding.
How to check yours: For each lead source, calculate: (leads × close rate × avg ticket × gross margin %) minus total channel spend. Any source with a negative result is a leak. Most owners find at least one.
Know which of these 7 leaks is yours before finishing this article.
The MarginPlug diagnostic identifies your active leaks across all five profit pillars — with a dollar estimate attached to each one — in 8 minutes.
Find your leak free Free during beta · No credit card · 8 minutesThis is the most structurally damaging leak on this list because it corrupts every decision downstream. If you're calculating your labor cost using payroll figures, your gross margin is wrong, your job profitability is wrong, and your pricing is probably wrong.
True loaded labor cost includes: base pay + overtime, employer FICA (7.65%), workers' compensation (typically 8–14% in HVAC), health insurance contribution, paid time off (roughly 5–8% of wages), training time, drive time between jobs, and any vehicle allowance.
Most operators undercount by 22–35%. A tech you think costs $38/hour actually costs $47–$51/hour fully loaded. At 2,000 annual billable hours across 4 techs, that miscalculation represents $72,000–$104,000 in cost that isn't reflected in your pricing or margin calculations.
How to check yours: Take one tech's annual fully-loaded cost (everything above) and divide by their actual billable hours (not hours worked — billable hours after drive time and non-billable tasks). That's your real hourly cost. Compare it to what you assumed. The gap is this leak's size in your business.
If your flat rate book hasn't been updated in the last 12–18 months, your pricing is behind your costs. Labor costs increased significantly in 2022–2024. Parts and materials saw 15–28% price increases. Fuel costs spiked. Insurance premiums climbed.
Every month your book stays static while costs rise, your effective gross margin shrinks — even if your close rate and ticket size stay constant. A 2-point annual margin compression on $1.5M revenue = $30,000/year in eroded profit with zero visible cause.
How to check yours: Take three common jobs from your flat rate book (e.g., capacitor replacement, TXV swap, coil clean). Calculate your true cost for each at current labor and parts prices. Compare to what you're charging. The delta is this leak.
A maintenance agreement customer costs near-zero to retain, generates predictable recurring revenue, has a 3–4x higher close rate on repair and replacement recommendations, and refers at roughly twice the rate of a one-time service customer.
The industry benchmark for maintenance agreement penetration is 18–25% of your active customer base. Top performers run 35–45%. Most HVAC businesses in the $500K–$3M range are at 8–12% — leaving a significant recurring revenue base unbuilt.
At $180/year per maintenance agreement and 800 active customers, moving from 10% to 25% penetration = 120 new agreements = $21,600 in new recurring annual revenue at near-zero acquisition cost.
How to check yours: Divide your current active maintenance agreements by your total customers in the last 24 months. If it's below 20%, this leak is active and the fix is a systematic offer process, not more marketing.
This last one is different from the others. It's not a leak itself — it's the condition that allows every other leak to persist undetected. When you can't see profitability at the job level, you can't identify which job types, techs, service areas, or call types are actually profitable.
You might be running 45% gross margin on residential service calls and 28% on commercial maintenance — and optimizing your marketing toward commercial without knowing it. Or your best tech by revenue might be your worst by margin because of how they price and discount in the field.
Without job-level visibility, you make decisions based on averages — and averages hide everything that matters.
How to check yours: Can you answer these three questions right now? (1) Which of your service technicians generates the highest gross margin per job — not highest revenue? (2) Which zip code in your service area has the best job profitability? (3) Which job type in your flat rate book has the worst margin? If you can't answer all three within 10 minutes, this leak is active.
All 7 Leaks at a Glance
Here's a quick reference for where each leak lives, what it typically costs, and how hard it is to fix once diagnosed.
| # | Leak | Pillar | Annual Cost Est. | Fix Difficulty |
|---|---|---|---|---|
| 1 | Callback rate above 3% | Delivery | $7K–$18K | Medium |
| 2 | Untracked field discounting | Economics | $30K–$60K | Low |
| 3 | Cash-negative lead sources | Demand | $15K–$50K+ | Low |
| 4 | Labor burden miscalculation | Economics | $72K–$104K | Medium |
| 5 | Stale flat rate pricing | Economics | $20K–$45K | Low |
| 6 | Low maintenance agreement penetration | Flywheel | $15K–$40K | Medium |
| 7 | No job-level profitability data | Economics | Enables all others | Medium |
Which Leak Is Yours?
The honest answer is that most HVAC businesses in this revenue band have three or more of these active simultaneously. The question isn't whether you have leaks — it's which one is costing you the most right now, and which one is easiest to close first.
That's a diagnostic problem, not a strategy problem. You don't need a new playbook — you need to know your number on each of these seven dimensions, benchmarked against what's normal for a business at your revenue level.
The self-check questions under each leak above will get you started. For a faster, more complete picture across all five profit pillars — with your biggest constraint ranked and a prescription for what to fix first — that's exactly what the MarginPlug diagnostic is built to do.
Related reading: Why your HVAC business is busy but broke covers the broader context behind why these leaks are so hard to see from inside a growing operation.
Stop estimating. Find out exactly which leak is costing you the most.
MarginPlug runs your business across five diagnostic pillars and returns a scored health report with your #1 profit constraint identified — and a prescriptive fix. Takes 8 minutes. Free during beta.
Run the free diagnostic Free during beta · No credit card · Results in minutes