Why HVAC Companies Aren’t Profitable: 7 Margin Mistakes Busy Contractors Make | Oryx Horn LLC


Oryx Horn
Oryx Horn LLC — Home Services Intelligence

Operational Discipline

Why HVAC Companies Aren’t Profitable — And Why Staying Busy Is Making It Worse

Understanding why HVAC companies aren’t profitable — despite full schedules and strong revenue — requires looking below the monthly P&L at what’s actually happening job by job. Here are the seven pricing and margin mistakes most responsible for the gap.
Published March 2026 · Oryx Horn LLC

Seven Reasons Why HVAC Companies Aren’t Profitable — Even When Fully Booked

  1. 01Giving away work for free — no charge for time on site
  2. 02Calculating job cost without drive time and full labor burden
  3. 03Pricing on cost-plus instead of value delivered
  4. 04Ignoring customer lifetime value when making pricing decisions
  5. 05Not knowing margin by job type — and marketing blind
  6. 06Optimizing for revenue instead of margin per hour
  7. 07No strategic framework for deciding which work to grow

The most common financial pattern in home services is also the most demoralizing: a business that is fully booked, running multiple trucks, and generating strong top-line revenue — but where the owner is still stressed about cash, still personally involved in every job, and still not building meaningful wealth year over year. Understanding why HVAC companies aren’t profitable despite being busy is the question most owners are sitting with but rarely ask out loud. The business feels successful. The bank account tells a different story.

When I work with HVAC, plumbing, and electrical contractors, the gap between revenue and retained profit almost always traces back to a small set of recurring mistakes. None of them are complicated once you can see them clearly. But most owners can’t see them clearly because they don’t have job-level margin visibility — they’re running on monthly P&Ls that average out the problems rather than surfacing them.

This post covers the seven mistakes in detail. Understanding all seven — and which ones apply to your business — is the first step toward building a home services company that generates real profit, not just activity.

Mistake 01

Giving Away Work for Free — No Charge for Time on Site

Every technician visit has a real cost. Before a wrench is turned, you have incurred labor, vehicle depreciation, fuel, insurance, and the opportunity cost of that technician not being at another job. This is one of the primary reasons why HVAC companies aren’t profitable even at high revenue — when you send a truck out and collect nothing, you are paying your team to generate zero revenue. Whether the diagnostic was “free,” the customer declined the repair, or the job required a return visit you didn’t bill separately, the cost was real and the revenue was not.

This is the most immediate and correctable margin problem in most home services businesses. Every visit should have a billable component. A diagnostic fee, a trip charge, an assessment fee — the name matters less than the discipline of charging it consistently. As we’ve covered in detail in our guide to service call fee pricing, a well-structured diagnostic fee doesn’t reduce booking rates — it filters the funnel toward customers who are ready to spend money solving the problem.

The businesses that have eliminated free visits typically see two things happen simultaneously: revenue per truck per day increases because every dispatch generates at least a floor amount, and conversion rates on-site also increase because customers who’ve paid a diagnostic fee are psychologically invested in proceeding with the work.

The Pattern to Watch For
If your technicians are completing 6–8 calls per day but your average collected revenue per call is below $150, free or uncharged diagnostic visits are almost certainly part of the problem. Count the truck rolls where you collected nothing. That number is usually higher than owners expect.

Mistake 02

Calculating Job Cost Without Drive Time and Full Labor Burden

Even businesses that track job costs make this mistake — and it is a core reason why HVAC companies aren’t profitable despite seemingly healthy margins on paper. They calculate labor as the hours a technician spent on site, apply a materials cost, and declare a margin. What they’re not including is the 25 minutes of drive time to get there, the 20 minutes to get back, the 10 minutes spent on the phone with the dispatcher before dispatch, and the full burdened cost of the technician. According to the Bureau of Labor Statistics Employer Costs for Employee Compensation, employer costs beyond base wages typically add 30–40% to total labor cost — meaning a technician paid $28/hour costs closer to $37–$39/hour before vehicle and overhead allocation.

The difference between a “looks profitable” job and a “actually profitable” job is almost always in how thoroughly those ancillary costs are allocated. A technician paid $28/hour has a fully-burdened cost closer to $45–$55/hour once all employer costs are included. A job that takes 90 minutes on site but 45 minutes of drive time each way consumes 3 hours of that technician’s capacity, not 1.5. The margin on that job is genuinely half of what a naive calculation would suggest.

This is precisely why job costing analytics built specifically for field service businesses matters. A properly constructed job costing model allocates drive time, applies full labor burden, and assigns a proportional share of vehicle and overhead costs to every job — giving you the actual margin, not the flattering one. Our BI dashboard for HVAC and home services surfaces this at the job and technician level in real time, so margin erosion is visible as it happens rather than discovered at month-end.

$28
Typical wage
per hour

$48–55
Fully burdened
cost per hour

~70%
Margin overstatement
when burden excluded

The practical implication: before you can make a confident decision about whether to grow a service line, expand a territory, or hire another technician, you need to know what jobs in that category actually cost when everything is included. Gut feel about margin is almost always optimistic by 10–20 percentage points once drive time and full burden are accounted for.

Mistake 03

Pricing on Cost-Plus Instead of Value Delivered

Cost-plus pricing is another major driver of why HVAC companies aren’t profitable relative to their revenue. It is intuitive: add up what it costs to do the job, apply a margin percentage, and that’s your price. It feels disciplined. It is actually one of the most reliable ways to leave money on the table, because it anchors your price to your costs rather than to what the customer is willing to pay for the outcome you deliver. According to Harvard Business Review’s framework on value-based pricing, businesses that shift from cost-plus to value-based pricing typically see 10–30% margin improvement without any change to their cost structure.

Consider a residential HVAC technician who diagnoses and fixes a refrigerant leak on a Saturday afternoon in July — restoring a family’s air conditioning during a heat wave. The parts cost $80. The labor takes 45 minutes. A cost-plus model might generate a price of $180–$220. The value delivered to that customer — comfort, relief, the avoidance of a night in a hotel with two kids — is worth several multiples of that. A value-informed price of $350–$450 is not gouging. It is an accurate reflection of what the customer gains from the transaction.

The businesses that price to value share a few characteristics. Their technicians are trained to describe the outcome of the work in the customer’s language, not in technical terms. They present options rather than a single price, giving customers control over the scope. And they have pricing confidence built on knowing their market — understanding what customers in their geography, at their service quality level, are consistently willing to pay for specific job types.

This is different from price gouging. Value-based pricing is appropriate when the service is delivered well, the customer has a genuine need, and your quality justifies a premium over the cheapest option in the market. If your callbacks are low, your technicians are licensed and trained, and your trucks show up on time — you are not the cheapest option, and you should not price as if you are.

The Test
If customers almost never push back on your prices, you are almost certainly underpriced. Healthy pricing produces some price objections — perhaps 10–20% of quotes. If your close rate is 95%+ on first quote, your prices are below the market’s willingness to pay.

Mistake 04

Ignoring Customer Lifetime Value When Making Pricing Decisions

One of the most consequential strategic pricing decisions a home services business makes is how aggressively to price the first job for a new customer. Many owners default to quoting their full standard rate on every job, including first-time customers — which is a reasonable approach for one-off transactional work but leaves value on the table when the customer has ongoing service needs.

Customer lifetime value (CLV) is the total revenue a customer generates across all interactions with your business over the full relationship — the initial repair, the maintenance agreement, the equipment replacement three years later, the referrals they generate to neighbors and family. For a residential HVAC customer who signs a maintenance agreement and stays with you for eight years, that lifetime value might be $4,000–$8,000. For a commercial property manager whose portfolio includes twelve buildings, it might be $40,000+.

When you know the lifetime value of a customer, the economics of landing them at a competitive price change entirely. Pricing an initial service call at $50 below your standard rate to win a new customer who will generate $5,000 over the next five years is a rational investment, not a margin sacrifice. The cost of acquisition — that $50 discount plus your marketing spend to generate the lead — is trivial relative to the return.

The flip side is equally important. Not every customer has high lifetime value. A homeowner who calls once for an emergency repair, pays, and never calls again has no CLV beyond that transaction. Pricing those jobs at a discount “to build loyalty” is a mistake — there is no loyalty to build, and you’ve simply reduced your margin on a one-time transaction. Customer acquisition analytics lets you distinguish between these customer types over time — identifying which channels, geographies, and job types produce customers with high lifetime value versus one-time buyers, and adjusting your pricing strategy accordingly.

The practical application of CLV thinking also applies to your maintenance agreement strategy. Maintenance agreements are one of the most reliable wealth-building tools in home services because they convert single-transaction customers into recurring revenue relationships. An HVAC business with 500 maintenance agreement customers at $200/year has $100,000 in predictable annual revenue before it books a single repair — and those agreement customers are statistically far more likely to call you first when equipment fails.

Do You Know Which Jobs and Customer Types Are Actually Driving Your Profit?

Most contractors don’t — because their reporting averages it out. A job costing dashboard built for your operation changes that. Book a free call to see what’s possible.

Schedule Free Consultation →

Mistake 05

Not Knowing Margin by Job Type — And Marketing Blind as a Result

Ask any HVAC contractor why their business isn’t as profitable as it should be, and they’ll usually point to labor costs or slow seasons. Rarely do they say “I don’t know my margin by job type” — yet that is the single most common reason why HVAC companies aren’t profitable at the level their revenue should support. If you don’t know the margin on a tune-up versus a system replacement versus a ductwork job versus an emergency repair, you are making marketing, hiring, and dispatch decisions without the most important information available to you.

The pattern that emerges consistently when we build job-level margin reporting for contractors is one of radical dispersion. A business might have an average gross margin of 42% across all work — but when you break it down, emergency repair calls are running at 58% margin, maintenance tune-ups at 31%, system replacements at 44%, and ductwork at 22%. The business looks fine in aggregate. But it is actively investing in growing the lowest-margin work because the owner doesn’t know what the margins actually are.

Once you have margin by job type, you can make three improvements immediately:

  • Orient your marketing toward the work that returns the most margin. If emergency repairs are your highest-margin work, your Google Local Service Ads budget should be weighted toward emergency and same-day keywords — not split evenly across all service categories.
  • Price low-margin work more aggressively. If ductwork is running at 22% margin, either the pricing needs to go up or the scope needs to be tightened. Knowing the number gives you the leverage to fix it.
  • Train your sales process around the highest-margin upsells. If equipment replacements carry significantly higher margin than repairs, technicians should be trained and incentivized to present replacement options on aging equipment — not because it’s manipulative, but because it is often the genuinely better outcome for the customer and it improves your margin at the same time.

The relationship between job-type margin visibility and marketing effectiveness is direct. Every dollar you spend on advertising is more productive when it is directed at acquiring customers who generate high-margin work. Without the margin data, you are spending marketing budget to acquire all customers equally — including the ones who order the jobs that erode your profitability.

Mistake 06

Optimizing for Revenue Instead of Margin Per Hour

This is the conceptual shift that most changes how owners think about their business once they see it clearly — and it explains why HVAC companies aren’t profitable even when their technicians are fully utilized. The relevant unit of performance in a field service business is not revenue — it is margin per hour of technician time. Revenue is what you charge. Margin per hour is what you actually keep after costs, divided by the time your most constrained resource (skilled labor) spent generating it.

Consider two job types. A 6-hour all-day installation job generates $1,800 in revenue at 38% margin — $684 in gross profit over six hours, or $114/hour. A 90-minute emergency repair generates $420 in revenue at 62% margin — $260 in gross profit over 1.5 hours, or $173/hour. The installation is bigger. The repair is more profitable per unit of time by 52%.

This framework changes several decisions at once:

  • All-day jobs need to be priced to reflect their true opportunity cost. When an installation fills a technician’s entire day, you are foregoing the 3–4 service calls that technician could have completed. That forgone margin is a real cost of the installation job, even though it never appears on an invoice.
  • Dispatch sequencing should weight high-margin-per-hour jobs. If your dispatcher has the choice between sending a technician to a ductwork job and a diagnostic call with a likely repair, the diagnostic call should usually go first — not because it’s larger, but because it’s more productive per hour of capacity consumed.
  • Hiring decisions should account for which job types will fill that technician’s schedule. Adding a technician who will primarily run low-margin-per-hour jobs may reduce your average margin even as it increases your revenue.
The All-Day Job Problem
All-day installation jobs are often the jobs owners are most proud of — they feel substantial and visible. But they frequently carry the lowest margin per hour in the business, because they consume full-day capacity, generate significant materials cost, and often face scope creep and callbacks. Price them accordingly — or be deliberate about whether growing them is actually your strategic priority.

None of this means you should refuse large jobs. It means you should price large jobs to reflect their true capacity cost, and be deliberate about how much of your team’s total capacity you allocate to them. A business that books two technicians solid with all-day installs every day might have strong revenue and thin margin. A business that runs those same technicians on a mix of installs, diagnostics, and emergency calls — dispatched strategically — can generate materially more gross profit from the same labor investment.

Mistake 07

No Strategic Framework for Deciding Which Work to Grow

The previous six mistakes are operational. This one is strategic. Most home services businesses grow reactively — they market broadly, take whatever calls come in, and hire to meet demand. The result is a business shaped entirely by market volume rather than by the owner’s deliberate choices about what kind of company they want to run.

There are at least three legitimate strategic orientations a home services business can choose, and they produce very different operating models:

  • Maximize total margin dollars. Run as many trucks as you can fill, prioritize high-margin job types, and build the dispatch and marketing infrastructure to sustain high volume. This is a scale strategy — it requires investment in people, systems, and operational infrastructure, but it builds a business with real enterprise value.
  • Maximize margin per hour with a small team. Deliberately limit capacity to 2–4 technicians, price aggressively, cherry-pick the highest-margin work available in the market, and avoid the overhead of a large organization. This is a lifestyle strategy — it trades top-line growth for simplicity and owner income as a percentage of revenue.
  • Maximize portfolio depth in a geography or customer segment. Price competitively on initial jobs to win a large share of the available customer base in a defined area or segment, then convert those customers to maintenance agreements and high-margin recurring work over time. This is a market capture strategy — it accepts lower margins early in exchange for a defensible customer base with high lifetime value.

None of these strategies is objectively better. But operating without a strategy — taking all jobs at all prices because the phone is ringing — is a guaranteed path to the “busy but not profitable” trap. The business fills with work, but that work is a random mix of high and low margin, strategic and non-strategic customers, jobs that build the business and jobs that just fill the calendar.

The starting point for any of these strategies is the same: job-level margin data by job type, technician, and channel. Once you can see where your margin actually comes from, you can make a deliberate choice about which of these orientations fits your business and your goals — and start aligning your marketing, pricing, and dispatch decisions to support it. Your operational dashboard should reflect whichever strategy you choose: if you’re optimizing for margin per hour, that metric should be visible. If you’re growing portfolio depth, maintenance agreement attach rate should be front and center. The dashboard is the accountability mechanism for the strategy.

Marketing alignment follows directly from this strategic choice. If your priority is maximum margin per hour, your acquisition spend should be concentrated on the channels that bring emergency and high-urgency calls — Google Local Service Ads, strong reviews, fast response time as a differentiator. If your priority is portfolio depth, your spend should prioritize brand visibility, maintenance agreement promotions, and referral programs that build long-term customer relationships rather than one-time transactions.

The Strategic Clarity Test
Ask yourself: if I could only take one type of job for the next 90 days, what would it be? If you can’t answer that question, you don’t have a strategy — you have a schedule. And a schedule shaped by whoever calls first is not a path to building a profitable business.

The Bottom Line

Why HVAC Companies Aren’t Profitable — And What to Do About It

Every one of these seven mistakes is fixable. None of them requires a software platform you don’t already have, a management hire you can’t afford, or a business transformation that takes years. Most of them require two things: accurate data at the job level, and the discipline to act on what that data reveals.

Why HVAC companies aren’t profitable despite full schedules is ultimately a data visibility problem. The Plumbing-Heating-Cooling Contractors Association consistently identifies financial management and job costing as the areas where contractors most need structured support — and their research confirms that the gap between busy and profitable is almost always operational, not market-driven.

The businesses that break out of the “busy but not profitable” pattern share a common characteristic — at some point, an owner stopped accepting the monthly P&L as the final word on performance and started asking harder questions about what was happening at the job level. Which customers are actually profitable? Which jobs are consuming capacity without generating margin? Where is the marketing budget generating returns, and where is it filling the calendar with the wrong work?

Those questions are answerable. The data to answer them almost certainly exists in your field service software right now. The gap, for most contractors, is building the system to surface that data cleanly — and having the analytical framework to act on it.

That is precisely what we build at Oryx Horn. If you’re a home services contractor who is generating strong revenue but not seeing it convert to profit, book a free 30-minute consultation. We’ll review your current data infrastructure, identify which of these seven mistakes applies to your operation, and tell you what it would take to fix them.

Ready to Find Out Where Your Margin Is Actually Going?

Schedule a complimentary 30-minute call. We’ll identify which of these seven mistakes is most affecting your business and what it would take to fix it — no commitment, no pitch.

Book Free Call →


Oryx Horn Oryx Horn LLC — Home Services Intelligence
Operational Discipline

Why HVAC Companies Aren't Profitable — And Why Staying Busy Is Making It Worse

Understanding why HVAC companies aren't profitable — despite full schedules and strong revenue — requires looking below the monthly P&L at what's actually happening job by job. Here are the seven pricing and margin mistakes most responsible for the gap.
Published March 2026 · Oryx Horn LLC

Seven Reasons Why HVAC Companies Aren't Profitable — Even When Fully Booked

  1. 01Giving away work for free — no charge for time on site
  2. 02Calculating job cost without drive time and full labor burden
  3. 03Pricing on cost-plus instead of value delivered
  4. 04Ignoring customer lifetime value when making pricing decisions
  5. 05Not knowing margin by job type — and marketing blind
  6. 06Optimizing for revenue instead of margin per hour
  7. 07No strategic framework for deciding which work to grow

The most common financial pattern in home services is also the most demoralizing: a business that is fully booked, running multiple trucks, and generating strong top-line revenue — but where the owner is still stressed about cash, still personally involved in every job, and still not building meaningful wealth year over year. Understanding why HVAC companies aren't profitable despite being busy is the question most owners are sitting with but rarely ask out loud. The business feels successful. The bank account tells a different story.

When I work with HVAC, plumbing, and electrical contractors, the gap between revenue and retained profit almost always traces back to a small set of recurring mistakes. None of them are complicated once you can see them clearly. But most owners can't see them clearly because they don't have job-level margin visibility — they're running on monthly P&Ls that average out the problems rather than surfacing them.

This post covers the seven mistakes in detail. Understanding all seven — and which ones apply to your business — is the first step toward building a home services company that generates real profit, not just activity.

Mistake 01

Giving Away Work for Free — No Charge for Time on Site

Every technician visit has a real cost. Before a wrench is turned, you have incurred labor, vehicle depreciation, fuel, insurance, and the opportunity cost of that technician not being at another job. This is one of the primary reasons why HVAC companies aren't profitable even at high revenue — when you send a truck out and collect nothing, you are paying your team to generate zero revenue. Whether the diagnostic was "free," the customer declined the repair, or the job required a return visit you didn't bill separately, the cost was real and the revenue was not.

This is the most immediate and correctable margin problem in most home services businesses. Every visit should have a billable component. A diagnostic fee, a trip charge, an assessment fee — the name matters less than the discipline of charging it consistently. As we've covered in detail in our guide to service call fee pricing, a well-structured diagnostic fee doesn't reduce booking rates — it filters the funnel toward customers who are ready to spend money solving the problem.

The businesses that have eliminated free visits typically see two things happen simultaneously: revenue per truck per day increases because every dispatch generates at least a floor amount, and conversion rates on-site also increase because customers who've paid a diagnostic fee are psychologically invested in proceeding with the work.

The Pattern to Watch For
If your technicians are completing 6–8 calls per day but your average collected revenue per call is below $150, free or uncharged diagnostic visits are almost certainly part of the problem. Count the truck rolls where you collected nothing. That number is usually higher than owners expect.
Mistake 02

Calculating Job Cost Without Drive Time and Full Labor Burden

Even businesses that track job costs make this mistake — and it is a core reason why HVAC companies aren't profitable despite seemingly healthy margins on paper. They calculate labor as the hours a technician spent on site, apply a materials cost, and declare a margin. What they're not including is the 25 minutes of drive time to get there, the 20 minutes to get back, the 10 minutes spent on the phone with the dispatcher before dispatch, and the full burdened cost of the technician. According to the Bureau of Labor Statistics Employer Costs for Employee Compensation, employer costs beyond base wages typically add 30–40% to total labor cost — meaning a technician paid $28/hour costs closer to $37–$39/hour before vehicle and overhead allocation.

The difference between a "looks profitable" job and a "actually profitable" job is almost always in how thoroughly those ancillary costs are allocated. A technician paid $28/hour has a fully-burdened cost closer to $45–$55/hour once all employer costs are included. A job that takes 90 minutes on site but 45 minutes of drive time each way consumes 3 hours of that technician's capacity, not 1.5. The margin on that job is genuinely half of what a naive calculation would suggest.

This is precisely why job costing analytics built specifically for field service businesses matters. A properly constructed job costing model allocates drive time, applies full labor burden, and assigns a proportional share of vehicle and overhead costs to every job — giving you the actual margin, not the flattering one. Our BI dashboard for HVAC and home services surfaces this at the job and technician level in real time, so margin erosion is visible as it happens rather than discovered at month-end.

$28
Typical wage
per hour
$48–55
Fully burdened
cost per hour
~70%
Margin overstatement
when burden excluded

The practical implication: before you can make a confident decision about whether to grow a service line, expand a territory, or hire another technician, you need to know what jobs in that category actually cost when everything is included. Gut feel about margin is almost always optimistic by 10–20 percentage points once drive time and full burden are accounted for.

Mistake 03

Pricing on Cost-Plus Instead of Value Delivered

Cost-plus pricing is another major driver of why HVAC companies aren't profitable relative to their revenue. It is intuitive: add up what it costs to do the job, apply a margin percentage, and that's your price. It feels disciplined. It is actually one of the most reliable ways to leave money on the table, because it anchors your price to your costs rather than to what the customer is willing to pay for the outcome you deliver. According to Harvard Business Review's framework on value-based pricing, businesses that shift from cost-plus to value-based pricing typically see 10–30% margin improvement without any change to their cost structure.

Consider a residential HVAC technician who diagnoses and fixes a refrigerant leak on a Saturday afternoon in July — restoring a family's air conditioning during a heat wave. The parts cost $80. The labor takes 45 minutes. A cost-plus model might generate a price of $180–$220. The value delivered to that customer — comfort, relief, the avoidance of a night in a hotel with two kids — is worth several multiples of that. A value-informed price of $350–$450 is not gouging. It is an accurate reflection of what the customer gains from the transaction.

The businesses that price to value share a few characteristics. Their technicians are trained to describe the outcome of the work in the customer's language, not in technical terms. They present options rather than a single price, giving customers control over the scope. And they have pricing confidence built on knowing their market — understanding what customers in their geography, at their service quality level, are consistently willing to pay for specific job types.

This is different from price gouging. Value-based pricing is appropriate when the service is delivered well, the customer has a genuine need, and your quality justifies a premium over the cheapest option in the market. If your callbacks are low, your technicians are licensed and trained, and your trucks show up on time — you are not the cheapest option, and you should not price as if you are.

The Test
If customers almost never push back on your prices, you are almost certainly underpriced. Healthy pricing produces some price objections — perhaps 10–20% of quotes. If your close rate is 95%+ on first quote, your prices are below the market's willingness to pay.
Mistake 04

Ignoring Customer Lifetime Value When Making Pricing Decisions

One of the most consequential strategic pricing decisions a home services business makes is how aggressively to price the first job for a new customer. Many owners default to quoting their full standard rate on every job, including first-time customers — which is a reasonable approach for one-off transactional work but leaves value on the table when the customer has ongoing service needs.

Customer lifetime value (CLV) is the total revenue a customer generates across all interactions with your business over the full relationship — the initial repair, the maintenance agreement, the equipment replacement three years later, the referrals they generate to neighbors and family. For a residential HVAC customer who signs a maintenance agreement and stays with you for eight years, that lifetime value might be $4,000–$8,000. For a commercial property manager whose portfolio includes twelve buildings, it might be $40,000+.

When you know the lifetime value of a customer, the economics of landing them at a competitive price change entirely. Pricing an initial service call at $50 below your standard rate to win a new customer who will generate $5,000 over the next five years is a rational investment, not a margin sacrifice. The cost of acquisition — that $50 discount plus your marketing spend to generate the lead — is trivial relative to the return.

The flip side is equally important. Not every customer has high lifetime value. A homeowner who calls once for an emergency repair, pays, and never calls again has no CLV beyond that transaction. Pricing those jobs at a discount "to build loyalty" is a mistake — there is no loyalty to build, and you've simply reduced your margin on a one-time transaction. Customer acquisition analytics lets you distinguish between these customer types over time — identifying which channels, geographies, and job types produce customers with high lifetime value versus one-time buyers, and adjusting your pricing strategy accordingly.

The practical application of CLV thinking also applies to your maintenance agreement strategy. Maintenance agreements are one of the most reliable wealth-building tools in home services because they convert single-transaction customers into recurring revenue relationships. An HVAC business with 500 maintenance agreement customers at $200/year has $100,000 in predictable annual revenue before it books a single repair — and those agreement customers are statistically far more likely to call you first when equipment fails.

Do You Know Which Jobs and Customer Types Are Actually Driving Your Profit?

Most contractors don't — because their reporting averages it out. A job costing dashboard built for your operation changes that. Book a free call to see what's possible.

Schedule Free Consultation →
Mistake 05

Not Knowing Margin by Job Type — And Marketing Blind as a Result

Ask any HVAC contractor why their business isn't as profitable as it should be, and they'll usually point to labor costs or slow seasons. Rarely do they say "I don't know my margin by job type" — yet that is the single most common reason why HVAC companies aren't profitable at the level their revenue should support. If you don't know the margin on a tune-up versus a system replacement versus a ductwork job versus an emergency repair, you are making marketing, hiring, and dispatch decisions without the most important information available to you.

The pattern that emerges consistently when we build job-level margin reporting for contractors is one of radical dispersion. A business might have an average gross margin of 42% across all work — but when you break it down, emergency repair calls are running at 58% margin, maintenance tune-ups at 31%, system replacements at 44%, and ductwork at 22%. The business looks fine in aggregate. But it is actively investing in growing the lowest-margin work because the owner doesn't know what the margins actually are.

Once you have margin by job type, you can make three improvements immediately:

  • Orient your marketing toward the work that returns the most margin. If emergency repairs are your highest-margin work, your Google Local Service Ads budget should be weighted toward emergency and same-day keywords — not split evenly across all service categories.
  • Price low-margin work more aggressively. If ductwork is running at 22% margin, either the pricing needs to go up or the scope needs to be tightened. Knowing the number gives you the leverage to fix it.
  • Train your sales process around the highest-margin upsells. If equipment replacements carry significantly higher margin than repairs, technicians should be trained and incentivized to present replacement options on aging equipment — not because it's manipulative, but because it is often the genuinely better outcome for the customer and it improves your margin at the same time.

The relationship between job-type margin visibility and marketing effectiveness is direct. Every dollar you spend on advertising is more productive when it is directed at acquiring customers who generate high-margin work. Without the margin data, you are spending marketing budget to acquire all customers equally — including the ones who order the jobs that erode your profitability.

Mistake 06

Optimizing for Revenue Instead of Margin Per Hour

This is the conceptual shift that most changes how owners think about their business once they see it clearly — and it explains why HVAC companies aren't profitable even when their technicians are fully utilized. The relevant unit of performance in a field service business is not revenue — it is margin per hour of technician time. Revenue is what you charge. Margin per hour is what you actually keep after costs, divided by the time your most constrained resource (skilled labor) spent generating it.

Consider two job types. A 6-hour all-day installation job generates $1,800 in revenue at 38% margin — $684 in gross profit over six hours, or $114/hour. A 90-minute emergency repair generates $420 in revenue at 62% margin — $260 in gross profit over 1.5 hours, or $173/hour. The installation is bigger. The repair is more profitable per unit of time by 52%.

This framework changes several decisions at once:

  • All-day jobs need to be priced to reflect their true opportunity cost. When an installation fills a technician's entire day, you are foregoing the 3–4 service calls that technician could have completed. That forgone margin is a real cost of the installation job, even though it never appears on an invoice.
  • Dispatch sequencing should weight high-margin-per-hour jobs. If your dispatcher has the choice between sending a technician to a ductwork job and a diagnostic call with a likely repair, the diagnostic call should usually go first — not because it's larger, but because it's more productive per hour of capacity consumed.
  • Hiring decisions should account for which job types will fill that technician's schedule. Adding a technician who will primarily run low-margin-per-hour jobs may reduce your average margin even as it increases your revenue.
The All-Day Job Problem
All-day installation jobs are often the jobs owners are most proud of — they feel substantial and visible. But they frequently carry the lowest margin per hour in the business, because they consume full-day capacity, generate significant materials cost, and often face scope creep and callbacks. Price them accordingly — or be deliberate about whether growing them is actually your strategic priority.

None of this means you should refuse large jobs. It means you should price large jobs to reflect their true capacity cost, and be deliberate about how much of your team's total capacity you allocate to them. A business that books two technicians solid with all-day installs every day might have strong revenue and thin margin. A business that runs those same technicians on a mix of installs, diagnostics, and emergency calls — dispatched strategically — can generate materially more gross profit from the same labor investment.

Mistake 07

No Strategic Framework for Deciding Which Work to Grow

The previous six mistakes are operational. This one is strategic. Most home services businesses grow reactively — they market broadly, take whatever calls come in, and hire to meet demand. The result is a business shaped entirely by market volume rather than by the owner's deliberate choices about what kind of company they want to run.

There are at least three legitimate strategic orientations a home services business can choose, and they produce very different operating models:

  • Maximize total margin dollars. Run as many trucks as you can fill, prioritize high-margin job types, and build the dispatch and marketing infrastructure to sustain high volume. This is a scale strategy — it requires investment in people, systems, and operational infrastructure, but it builds a business with real enterprise value.
  • Maximize margin per hour with a small team. Deliberately limit capacity to 2–4 technicians, price aggressively, cherry-pick the highest-margin work available in the market, and avoid the overhead of a large organization. This is a lifestyle strategy — it trades top-line growth for simplicity and owner income as a percentage of revenue.
  • Maximize portfolio depth in a geography or customer segment. Price competitively on initial jobs to win a large share of the available customer base in a defined area or segment, then convert those customers to maintenance agreements and high-margin recurring work over time. This is a market capture strategy — it accepts lower margins early in exchange for a defensible customer base with high lifetime value.

None of these strategies is objectively better. But operating without a strategy — taking all jobs at all prices because the phone is ringing — is a guaranteed path to the "busy but not profitable" trap. The business fills with work, but that work is a random mix of high and low margin, strategic and non-strategic customers, jobs that build the business and jobs that just fill the calendar.

The starting point for any of these strategies is the same: job-level margin data by job type, technician, and channel. Once you can see where your margin actually comes from, you can make a deliberate choice about which of these orientations fits your business and your goals — and start aligning your marketing, pricing, and dispatch decisions to support it. Your operational dashboard should reflect whichever strategy you choose: if you're optimizing for margin per hour, that metric should be visible. If you're growing portfolio depth, maintenance agreement attach rate should be front and center. The dashboard is the accountability mechanism for the strategy.

Marketing alignment follows directly from this strategic choice. If your priority is maximum margin per hour, your acquisition spend should be concentrated on the channels that bring emergency and high-urgency calls — Google Local Service Ads, strong reviews, fast response time as a differentiator. If your priority is portfolio depth, your spend should prioritize brand visibility, maintenance agreement promotions, and referral programs that build long-term customer relationships rather than one-time transactions.

The Strategic Clarity Test
Ask yourself: if I could only take one type of job for the next 90 days, what would it be? If you can't answer that question, you don't have a strategy — you have a schedule. And a schedule shaped by whoever calls first is not a path to building a profitable business.
The Bottom Line

Why HVAC Companies Aren't Profitable — And What to Do About It

Every one of these seven mistakes is fixable. None of them requires a software platform you don't already have, a management hire you can't afford, or a business transformation that takes years. Most of them require two things: accurate data at the job level, and the discipline to act on what that data reveals.

Why HVAC companies aren't profitable despite full schedules is ultimately a data visibility problem. The Plumbing-Heating-Cooling Contractors Association consistently identifies financial management and job costing as the areas where contractors most need structured support — and their research confirms that the gap between busy and profitable is almost always operational, not market-driven.

The businesses that break out of the "busy but not profitable" pattern share a common characteristic — at some point, an owner stopped accepting the monthly P&L as the final word on performance and started asking harder questions about what was happening at the job level. Which customers are actually profitable? Which jobs are consuming capacity without generating margin? Where is the marketing budget generating returns, and where is it filling the calendar with the wrong work?

Those questions are answerable. The data to answer them almost certainly exists in your field service software right now. The gap, for most contractors, is building the system to surface that data cleanly — and having the analytical framework to act on it.

That is precisely what we build at Oryx Horn. If you're a home services contractor who is generating strong revenue but not seeing it convert to profit, book a free 30-minute consultation. We'll review your current data infrastructure, identify which of these seven mistakes applies to your operation, and tell you what it would take to fix them.

Ready to Find Out Where Your Margin Is Actually Going?

Schedule a complimentary 30-minute call. We'll identify which of these seven mistakes is most affecting your business and what it would take to fix it — no commitment, no pitch.
Book Free Call →