Skip to main content
Real HVAC no-show rate benchmarks (residential 4-7%, commercial 1-3%), what each missed call actually costs, and a 4-ste...

HVAC No-Show Rate: Industry Benchmarks + How to Cut Yours in Half

By Lasse Pettersen9 min read

If you're running an HVAC shop and you feel like you're losing a full day of revenue every week to no-shows, you're probably not imagining it. On a typical residential route - say, six service calls a day - a 6% no-show rate means roughly one missed appointment every other day. That's about two and a half trucks rolling for nothing each week.

The frustrating part is that most HVAC owners I've talked to (in Ontario, but I suspect this holds broadly) don't actually know what their no-show rate is. They know it feels bad. They know Friday afternoons are the worst. But the real number is usually fuzzier than it should be.

So let's fix that. This post covers what a normal HVAC no-show rate actually looks like, what each one costs in real dollars, and the boring-but-effective 4-step reminder system that the better shops use. No magic. Just the math and the playbook.

What's a normal HVAC no-show rate?

Here are the benchmarks I've seen hold up across shops I've worked with and data from trade association surveys (grain of salt - these numbers move around by region):

  • Residential service calls: 4-7% is typical. Top quartile shops land at 2-3%.
  • Commercial service and maintenance contracts: 1-3%. Lower because there's usually a facility contact who gets locked out if they miss you.
  • Residential installs (pre-booked, deposit taken): 1-2%. The deposit does the work.
  • Emergency and after-hours calls: 8-12%. People call in a panic, the system starts working again, and suddenly they don't need you at 11pm anymore.
  • Shoulder-season tune-ups (April-May, September-October): 7-10%. The urgency is gone.

If your number is 5%, you're normal. If it's 9%, something in your booking or reminder flow is leaking. If it's 12%+, you probably have a data problem on top of a scheduling problem - meaning you're counting reschedules or same-day cancellations as no-shows, which inflates the number.

Residential vs commercial - why the gap?

Commercial accounts tend to have three things residential calls don't - a scheduled PM agreement, a named facility contact, and an expectation that your tech shows up whether the customer is there or not. Residential calls are almost always "customer must be home" and that's where the no-show risk lives. A commercial property manager juggling 14 buildings doesn't forget you're coming because their calendar is someone else's problem too.

The hidden cost of a single HVAC no-show

This is the part that surprises people. Most owners think of a no-show as "I lost the ticket." The real cost is layered - and it compounds across a week.

Let's do the math on a single missed residential service call, using numbers that should be true in most markets:

  • Truck roll (fuel + wear + depreciation): $35-60
  • Technician time (1.5 hours at loaded cost): $75-110
  • Lost gross profit on a $485 ticket at 35% margin: $170
  • Dispatch fee refund or non-collection: $0-95 (depends on policy)
  • Schedule fragmentation cost (next job runs late, overtime risk): $40-80

Total: roughly $185 on the low end and $340 on the high end, per no-show. If you're running a 6% no-show rate on 30 calls a week, that's about 1.8 no-shows weekly, or between $330 and $610 of weekly lost margin. Call it $20,000+ a year for a single-truck shop, and roughly 3x that for a three-truck operation.

And that's before you count the second-order stuff - the booking that customer won't give you again, the callback you have to chase, and the CSR time spent rebooking. If you want to plug your own shop's numbers in, we built a free no-show cost calculator that does the math in about 20 seconds.

Free tool

What are no-shows actually costing your HVAC shop?

Plug in your call volume, average ticket, and no-show rate. Get a real annual dollar figure in under a minute. No signup.

Run the numbers →

Why HVAC no-shows spike in shoulder season

This is the pattern I see every spring and fall, and it catches owners off guard every time.

A homeowner in Collingwood books an AC tune-up in early August, when their system is struggling in 32-degree heat. The appointment gets scheduled for three weeks out because you're slammed. By the time the tech shows up, it's late August, the weather's broken, and the customer is at the cottage for the weekend. No-show.

Same dynamic in reverse for fall furnace tune-ups. They call when the first cold snap hits in late September, book for mid-October, and by then it's warmed back up and they've forgotten the whole thing.

The fix is structural, not tactical. Two rules:

  1. Never schedule tune-ups more than two weeks out. If your calendar is full, offer a callback window instead of a firm date. The further out you book, the higher the no-show rate, almost linearly.
  2. Send a reason-to-show in the reminder text. Not "reminder of your appointment." Something like: "Hi Sarah, Jake is confirmed for 2:30 tomorrow for your AC tune-up. Catches refrigerant leaks early and usually saves about 8% on your summer bills." The reminder carries value, not just a date.

The 4-step reminder system that actually works

This is the boring part. It's also the part that separates shops running 3% no-shows from shops running 8%. There are four touchpoints, and every one of them matters.

1. Booking confirmation - sent within 60 seconds of booking

The moment the appointment is on the calendar, the customer gets a text (not an email - texts get read). Format: confirmation of date, window, technician name if you can, what they should expect, and a clear line on cancellation policy. Keep it under 160 characters if you can.

The reason this works is that it sets an expectation at the moment of highest commitment. The customer just agreed to the appointment. Getting a confirmation right then reinforces the booking as a real thing, not a vague calendar entry.

2. 24-hour reminder - sent the afternoon before

Send it between 3pm and 6pm the day before. That's when people are checking their phones, planning the next day, and can still cancel or reschedule if they need to. A reminder sent at 8am day-of is too late - they've already made plans.

Include the appointment window, the tech's first name, and a one-tap reply option for reschedule. The easier you make it to reschedule, the fewer no-shows you get (this feels counterintuitive but it's been proven out in enough shops that I'll call it reliable).

3. Morning-of ETA text - sent between 7am and 8am

Narrower window than the original booking. If you booked them for "2pm-5pm," this text says "Jake will be there between 2:30 and 3:30." Customers hate 3-hour windows because it means their whole afternoon is blocked. Narrowing it to an hour (even if you're only 70% sure) dramatically reduces the "I had to run out" no-show.

4. 15-minutes-away text - sent when the tech leaves the previous job

This is the one most shops skip and it's probably the single highest-ROI touchpoint in the whole chain. "Jake is 15 minutes out." That's it. The customer stops whatever they're doing, makes sure the dogs are put away, and is ready at the door when the tech pulls up.

More on the mechanics of this kind of system in our full breakdown of SMS updates and how they reduce both no-shows and "where are you?" calls.

Deposit policies - when they help and when they hurt

There's a lot of bad advice about deposits in the HVAC world. The honest answer is - it depends on the job, and deposits on the wrong kind of job will cost you more in lost bookings than they save in prevented no-shows.

Here's roughly how I'd think about it:

  • Standard diagnostic or tune-up ($100-$200 ticket): No deposit. The dispatch fee (if you charge one) does the job. A deposit request at booking will push 15-25% of callers to your competitor.
  • Repair over $500: Optional deposit of $50-$100 against the final invoice. Most customers accept this without friction if you frame it as "to hold the parts."
  • Install ($3,000+): 10-20% deposit is standard. Nobody pushes back. The financing process often requires it anyway.
  • After-hours emergency: Full dispatch fee collected at booking (non-refundable if they cancel). This filters out the "never mind, it started working" no-shows.

The framing matters. "Deposit to hold your spot" triggers resistance. "Dispatch fee that comes off your final invoice" almost never does. Same dollars, different customer reaction.

When to fire a serial no-show customer

Most HVAC shops have two or three customers who no-show repeatedly. The math here is usually clear even though the emotional resistance is high. If a customer has no-showed twice in the last 12 months, they're probably going to do it a third time, and the cost of keeping them on the roster exceeds the margin on their future work.

What works: a polite email the next time they call, saying "Hi, we'd love to help - given a couple of missed appointments previously, we'll need to collect the full dispatch fee upfront when booking. It comes off your invoice if you're home." Roughly half will pay it and become reliable. The other half will go away, which is also a win.

The goal isn't zero no-shows - it's a no-show rate low enough that it doesn't distort your scheduling. For most residential HVAC shops, that's the 2-3% range.

The math for your specific shop

Rough formula if you want to estimate your annual no-show cost on the back of a napkin:

(weekly calls) x (no-show rate) x (avg ticket x margin + truck roll cost) x 52

For a mid-sized shop doing 50 calls a week at 6% no-show, $485 avg ticket, 35% margin, $80 truck roll - that's about $35,000 a year in direct losses. Cutting the rate from 6% to 3% puts $17,500 back on the bottom line. And a shop that gets to 3% usually isn't doing anything exotic - they're just executing the 4-step reminder system on every single call, every single week.

If you want the exact dollar number for your shop instead of a rough estimate, the no-show cost calculator takes about 30 seconds and gives you the annual figure plus the savings from cutting the rate in half.

The hardest part isn't the system - it's the consistency

Almost every HVAC shop I've looked at knows what they should be doing. They just can't execute it on every job because their dispatcher is on the phone, the tech forgot to text, or the booking system doesn't auto-send the confirmation. The gap between 6% and 3% is almost entirely a consistency gap, not a strategy gap.

That's the problem FixyFlow is built to solve, honestly. Automatic booking confirmations, the 24-hour reminder, the morning-of ETA, and the 15-minute text - all triggered off your existing dispatch workflow, nothing to remember. If you're running an HVAC shop and you've nodded along with this whole article, try a free trial. Setup takes about two minutes and if your no-show rate doesn't drop in the first 30 days, we refund the first month.

The numbers are boring but they're also unambiguous. Most shops are leaving $15,000 to $40,000 a year on the table just because the reminders aren't firing reliably. Fixing that isn't a marketing problem or a pricing problem - it's a calendar problem, and calendar problems are the easiest kind to solve.

— Lasse
Built FixyFlow in Collingwood

Frequently asked questions

What's a normal HVAC no-show rate?

Broadly speaking, residential HVAC shops run 4-7% no-shows on scheduled service calls, and the top quartile sits closer to 2-3%. Commercial and maintenance-contract work tends to run lower (1-3%) because there's a facility contact expecting you. Anything above 8% usually points to a scheduling or communication problem, not bad customers.

How much does one HVAC no-show actually cost?

In most markets, a single no-show costs between $180 and $340 in direct impact - that's truck roll (fuel, wear, tech time) plus the gross profit you lost on the booked ticket. On a $485 average service call with 35% margin, the lost gross is around $170, and the truck roll itself runs $60-100. Add schedule fragmentation (your next job starts late) and the real number is higher.

What do the top 10% of HVAC shops do differently?

Three things, consistently. They send a booking confirmation the moment the appointment is set (not the night before), they text a morning-of ETA window, and they ping a 15-minute-away text when the tech leaves the previous job. That's it. No fancy software - just a repeatable touchpoint every time, on every job. The calendar hygiene is boring and it works.

Do SMS deposit policies scare off customers?

For residential diagnostic calls under $150, a deposit usually does more harm than good - you lose the booking entirely. For installs, after-hours emergency, or anything over $500, a $50-100 deposit against the final invoice is standard in most markets and almost nobody pushes back. The rule of thumb: take deposits where the no-show actually hurts, not where it's an annoyance.

Are HVAC no-shows worse in some seasons?

Yes, and not in the way most people assume. Shoulder seasons (April-May and September-October in Ontario) have the highest no-show rates because customers 'don't feel it' anymore - they booked the tune-up when their AC was struggling in August, and by the time the appointment arrives, the weather's cooled off and the urgency is gone. Peak-season no-shows are lower but cost more because demand is higher.

What are status calls actually costing your shop?

Slide in your jobs per week, average ticket, and calls per job. See your monthly loss in 10 seconds. No signup.

Try the Profit Killer calculator