Your Replacement Jobs Have Worse Margins Than You Think
Your Replacement Jobs Have Worse Margins Than You Think
In 2019, I sat down with the P&L of a 14-truck residential HVAC shop outside Richmond that my firm was evaluating for acquisition. The owner was doing about 340 installs a year, average ticket around $6,800. He talked about replacements the way most owners do — as the profit center, the revenue that made the service department's thin margins worthwhile. He was not a careless operator. His dispatch ran clean. His reviews were solid.
He had also been losing money on every install for three years. The service department was subsidizing the replacement side and making the combined P&L look like a functioning business. He had no idea.
The ticket size creates a powerful illusion. A $7,200 invoice feels like a win in a way that a $215 diagnostic-and-capacitor call simply does not. But feeling like a win and being a win are different things, and the gap between them shows up in one specific place: the difference between gross margin and contribution margin.
Gross margin is revenue minus cost of goods sold — equipment, refrigerant, materials, direct labor on the job. Contribution margin subtracts what you also spent getting that job done: truck hours including staging and supply runs, CSR time on the permit, the callback two weeks later for the startup issue. Gross margin tells you whether the job covered its direct costs. Contribution margin tells you whether the job made money. Most small shops track the first and call it profit. On replacement jobs, that distinction is where the year goes.
The Hidden Hours Problem: What You're Not Counting in a Replacement
When I was running calls out of a Sprinter for Caldera Heating & Cooling in Sunnyvale, I could tell you within fifteen minutes how long a diagnostic-and-repair would take once I had the unit open. Diagnose, confirm, repair, verify, leave. On a bad day you came back once for a part. The job had a defined shape.
A replacement does not have that shape. It has a sequence, and the sequence is longer than the invoice reflects.
Pre-call site assessment — often logged to sales cost, not job cost. Permit pulling, which in Northern Virginia runs roughly ninety minutes of someone's time between the online application, fee processing, and follow-up. Equipment procurement and staging. The install itself. Startup and commissioning done properly: static pressure, subcooling or superheat verification depending on the metering device, airflow measurement, AHRI documentation. Warranty registration. And the post-install callback, which shows up on a meaningful share of jobs in my experience — usually a refrigerant issue, an airflow problem, or thermostat wiring — and which almost never gets allocated to the original job's cost because it's logged as a warranty call.
What I've seen across shops I've audited: the total hours when you count all of this are consistently higher than what the price was built against. The additional hours aren't error. They land in different departments, different days, different accounting categories, which is precisely why the person who set the price never sees them.
Truck operating cost compounds this. On a replacement, that truck may sit in a driveway for four hours. It may run to the supply house twice. It may return for the startup callback. None of those hours are billable. All of them cost money. Run your own truck cost per billable hour — pull twelve months of fuel, your commercial auto premium, your maintenance records, divide by actual billable hours. Most shops I've reviewed use a round number from a pricing guide or a national average. Your number will be different. The national average is a convenient fiction.
What Doesn't Make It Into the Job Cost
If it wouldn't have happened without this job, it belongs in this job's cost.
That's the test I use when I'm auditing job-level profitability with a shop. The permit run belongs in the job cost. The supply house trip because the line set was the wrong size belongs in the job cost. The callback belongs in the job cost.
The reason these costs disappear isn't accounting incompetence. It's that field management software is built around the invoice, and the invoice closes when the install is done. Everything after that — the callback, the warranty registration follow-up, the permit inspection trip — gets filed somewhere else, under different job numbers or overhead categories. By the time you're reviewing the month, the replacement looks clean. The mess is distributed where you can't see it.
Why Competition-Based Pricing Is the Wrong Tool for a Job Like This
Service call pricing, at most shops I've worked with, runs backward from cost. You know roughly what a dispatch costs, you add a target margin, you have a number. Imprecise, but the logic runs in the right direction.
Replacement pricing runs sideways. The sales call happens, the owner knows the Carrier dealer down the street is at $7,000 for a similar system, and the price becomes $6,900 or $7,100 depending on how the conversation felt. Cost is nearly absent from the process.
The flat-rate pricing books sold by major distributors and industry vendors don't fix this. They're built to produce predictable revenue per ticket. They are not built to produce consistent margin per ticket, because consistent margin requires knowing your specific overhead structure, and the book does not know that. It knows the vendor's preferred margin structure, which is calibrated to make the pricing look defensible to the customer and the program look successful to the vendor. I saw this pattern clearly during my time at Atlantic Comfort Partners: the shops most committed to vendor price books were often the ones with the widest gap between what they thought they were making and what the job-level data showed.
On a service call, the book's error is manageable — the variables are constrained. On a replacement, the variables blow up the flat-rate assumption. Line set length. Whether attic access needs a second person. Whether the existing electrical will support the new equipment. Whether a proper Manual J reveals the house has been oversized for fifteen years and the right replacement is a 2.5-ton unit, not the 3.5-ton the book has a price for. Each variable carries a cost. The book price doesn't flex for them the way your actual cost does.
The SEER2 transition is a clean case study in what happens when pricing runs on market feel instead of cost. Equipment costs moved. From what I saw in the shops I was working with through that period, a large share of independent shops absorbed that increase on replacements rather than passing it through — not because they made a deliberate choice, but because the replacement price was anchored to what the market had been charging, and that anchor hadn't moved. The margin consequence was real and showed up quietly, job by job.
The Manual J Problem Nobody Mentions in This Conversation
Oversizing persists in residential replacement work for reasons that are economically rational in the short term and margin-destructive over time.
When an owner calls for a replacement on a 4-ton system that failed, the path of least resistance is to quote a 4-ton replacement. Running a Manual J takes time, often reveals the existing system was oversized to begin with, and creates a selling problem: you're now explaining to a customer why you're recommending a smaller, cheaper system than what they had, while your competitor is quoting the tonnage they're used to. So shops skip it. The prior system was a 4-ton. The house gets a 4-ton. The replacement tech inherits the prior tech's error.
Three margin consequences follow.
Oversized equipment costs more than correctly sized equipment, and the markup on higher equipment cost often doesn't fully compensate for the additional installation complexity. Oversized systems short-cycle — they satisfy the setpoint before completing a full dehumidification cycle, which generates comfort complaints and callbacks, which are real labor cost against that job. And AHRI matching on an oversized system with an existing line set creates compatibility risk: if the existing line set is undersized for the new refrigerant circuit, which is common when you're replacing a pre-2023 R-22 or early R-410A system with current-generation equipment, you're looking at a line set replacement as part of the job. That's real labor and materials cost. A gut-feel price built around replacing what was there rarely includes it. A proper pre-sale site assessment catches it before you've committed to a number.
The load calc isn't just good HVAC practice. It's what keeps the job cost honest before you've agreed to a price.
What the Numbers Actually Look Like Side by Side
During my time at Atlantic Comfort Partners, I pulled job-level cost data on residential shops before and after acquisition. The pattern repeated: shops that believed their replacement work was the margin engine were, in most cases, wrong. Not by a small amount.
Here is the comparison built from the cost structures I audited in shops under 25 trucks. These are not national averages — they're derived from specific shops in specific markets over the period I was doing this work, and your numbers will vary. The point is the structure, not the precise figures.
A service call: two-hour diagnostic and capacitor replacement, one truck dispatch, one tech. Fully loaded technician cost including burden, vehicle operating cost on actual shop numbers, proportional overhead. The shop charges a diagnostic fee plus the repair. On the shops I reviewed, calls like this ran around 50-52% gross margin on fully loaded costs — not because the ticket was large, but because the cost was bounded and the pricing reflected it.
A replacement: sales visit, permit pull, install day with two techs and a supply house run, startup and commissioning, warranty registration, post-install callback two weeks later. By the time you've counted everyone who touched the job, you're well past the four to six hours the price was typically built against. Add equipment, materials, refrigerant, electrical, and proportional overhead. The shops I reviewed were charging replacement tickets in the $6,500-$7,500 range and, when every real cost was allocated, the gross margin on the full job was running meaningfully lower than the service calls — often in the low-to-mid forties before financing fees.
Then the customer finances through a third-party lender. The shop receives less than the invoice amount after the dealer fee. That margin drops further. The service call, which nobody got excited about, outperformed the replacement that everyone talked about.
Days sales outstanding compounds this on the cash side. A financed replacement funds two to four business days after job completion, depending on the lender and the documentation. The job is closed, the revenue is booked, the cash isn't there yet. Across a replacement-heavy week in July, the gap is real — and shops that don't track DSO on financed replacements separately read their position as healthier than it is.
What to Do: Build the Replacement Job Cost Floor
I've been in attics in Sunnyvale pulling line sets in August. The scar on my left forearm is from a reversing valve at a Bayview Mechanical job in 2012, and I mention it not to prove anything but because the cost model I'm describing is the one I wish those shop owners had been using when I was showing up to their equipment.
Step one: Pull your last ten replacement invoices. For each one, find the actual hours — tech time on-site, drive time, supply house runs, permit-related time, any return trips or callbacks within 90 days. Compare it to what you estimated when you set the price. In the shops I've audited, the gap is real and usually substantial. Write the number down.
Step two: Run your truck operating cost per billable hour using your own numbers. Twelve months of fuel receipts, your commercial auto insurance premium, your fleet maintenance records, total billable hours from dispatch. Divide total cost by total billable hours. That is your number. Not the national average. Yours.
Step three: Set a minimum gross margin floor for replacement jobs, separate from your service call floor, and treat it as a floor rather than a target. Any competitive situation that requires pricing below that floor is a job you decline. That is not a growth strategy failure. It is basic cost accounting applied to a pricing decision.
The owner of that Richmond shop eventually understood what his P&L had been telling him. It took two hours and a whiteboard.
FAQ
If my replacement margins are really worse than my service call margins, how do I know by how much without an accountant?
You don't need an accountant to start. Pull your last ten replacement invoices and account for every person who touched each job — salesperson, CSR who pulled the permit, tech on install day, tech on the callback. Estimate their hours, multiply by your fully loaded labor cost including burden. Add equipment, materials, and vehicle cost for the days the truck was deployed. Subtract from what you actually received after any financing fees, not what you invoiced. That's your contribution margin. Do it for ten jobs and the pattern will be visible.
What's a realistic gross margin target for a replacement job vs. a service call?
I'm reluctant to give you a universal number because your overhead structure is specific to your market, your fleet age, and your labor cost. What I can tell you from the shops I've worked with: well-priced service calls typically outperform well-priced replacements on gross margin, even though the replacement ticket is larger. When you price both on cost rather than one on cost and one on competition, that gap narrows. If your replacements are running lower than your service calls by more than a few points, start with the hidden hours — that's usually where the explanation lives.
Should I price replacements differently in shoulder season when I have capacity vs. peak season when I'm turning jobs away?
Yes, with one constraint. Your cost floor doesn't move by season — the permit costs the same, the equipment costs the same, the tech needs to be paid the same. What changes is opportunity cost. In peak season, a replacement at your minimum floor may be displacing a service call that runs at a higher margin. That's a real argument for raising your floor in July. In shoulder season, a job at your floor is better than a truck sitting. But do not confuse "better than nothing" with profitable. The floor is the floor in both directions.
The flat-rate book my distributor gave me already has replacement pricing built in — why isn't that enough?
Because the book doesn't know your overhead structure. It doesn't know your commercial auto premium, your local permit fees, your callback rate, or whether your techs are billing eight hours a day or five. Flat-rate books produce consistent ticket presentation, which has value when you're standing in front of a customer. They do not produce consistent margin, because consistent margin requires knowing your cost per billable hour, and that number varies by shop. Use the book as a customer communication tool if you find it useful. Build your price floor from your own numbers.
How does third-party financing (Synchrony, GreenSky, FTL) affect the margin I should be targeting?
The dealer fee comes off the top of what you receive. The fee varies by lender and by promotional offer — longer deferred-interest periods typically carry higher fees. Whatever that fee is for your most common financing offer, it needs to be in your price floor by job type, not absorbed after the fact as a margin reduction. Run it through the same cost model as everything else.
I price against two competitors I know in my market — what's wrong with using them as a reference point?
You don't know their cost structure. They may be losing money and not know it — which, as I've described, is not a hypothetical. They may have a different equipment cost because of a different distributor relationship. They may be buying jobs to keep trucks moving and treating the margin loss as a marketing expense. Pricing against them tells you what the market will bear, which is useful. It tells you nothing about whether you can produce that job at a margin that sustains your business. Both numbers matter. Most shops only use one.
Enjoyed this article?
Get articles like this in your inbox every Monday. Free, no spam.
