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.
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.
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.
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.
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.
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.
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.
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:
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.
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:
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.
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:
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.
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.
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.
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.
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.
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.
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.
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.
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 →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:
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.
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:
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.
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:
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.
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.