A no-show on an HVAC service call is a $250-$450 hit. The technician gets paid (or loses billable hours), the truck stop is wasted, the dispatcher has to rebook the slot on short notice, and the homeowner who wanted an emergency call gets pushed to tomorrow. Across a 6-truck shop running 30-45 calls per day, a 15% no-show rate quietly costs $80,000-$140,000 a year — and most owners cannot tell you the number off the top of their head because no-shows are buried inside dispatch chaos.
The good news: HVAC no-show rates respond predictably to structured confirmation. A shop that goes from no formal confirmation process to a layered 48-hour, 24-hour, and 2-hour cadence — plus a small refundable trip-fee deposit on first-time customers — typically drops no-show rates from 12-18% down to under 5% within 60 days. This guide is the playbook: timing, scripts, escalation rules, and the deposit policy that converts the marginal 5% of flake-prone bookings into either a paying job or a clean cancellation that frees the slot.
Typical Workflow Today
The unstructured HVAC dispatch workflow: a customer calls Tuesday, books a Thursday morning service call, gives a phone number to the CSR. The booking is logged in the dispatch system. Thursday morning rolls around — no confirmation has been sent. The technician arrives at 9:15 AM, no one answers the door, knocks for ten minutes, calls the homeowner's phone (no answer), leaves a printed door tag, and drives off. The homeowner calls at 11 AM upset that no one showed up — they were at work and forgot, or the spouse was supposed to be home, or they thought the call was for next Thursday.
No-show rates for shops with no formal confirmation process typically run 12-18% of bookings. Shops that send a single 24-hour reminder text often sit at 8-12%. Shops that run the full layered cadence below sit at 3-5% — and the difference is the structured cadence, not any one specific message.
1. Send a 48-hour confirmation SMS with a one-tap reply
The 48-hour mark is the first checkpoint. The customer is far enough out that they remember booking the call but close enough that the appointment is no longer abstract. The message should confirm the date, the arrival window, the address, and offer a one-tap reply to confirm or reschedule.
The template that works:
"Hi {{first_name}}, this is {{company_name}}. We have you scheduled for HVAC service on {{day_of_week}}, {{date}} between {{window_start}} and {{window_end}} at {{address}}. Reply YES to confirm, RESCHEDULE if the time no longer works, or CALL to speak with our office. — {{company}}"
The one-tap reply is the critical mechanic. About 60-70% of customers reply YES within an hour of receiving the text. About 5-10% reply RESCHEDULE — these are the customers who would have been a no-show or a frantic morning-of cancellation; you converted them into a clean reschedule with a free dispatch slot. About 1-3% reply CALL with a question that needed handling. The remaining 20-30% who do not reply at all become the next-checkpoint focus.
In Deelo, the 48-hour SMS is a workflow trigger fired automatically when an appointment is 48 hours out. The customer's reply is captured in the contact thread, the appointment is auto-confirmed on YES, and a CSR task is created on RESCHEDULE or CALL. Outside Deelo, most field service tools (Jobber, Housecall Pro, ServiceTitan, FieldPulse) support some version of this with their built-in messaging or a Twilio/messaging integration.
2. Send a 24-hour reminder SMS with the technician's name and photo
The 24-hour reminder is where confirmation rates jump again. Customers who got the 48-hour message and replied YES are now reminded the appointment is tomorrow; customers who never replied are reminded again with one final easy way to confirm or reschedule. The 24-hour message also introduces the technician, which both reduces no-shows (a person who knows a specific technician's name is less likely to flake) and reduces the security concern of a stranger showing up.
Template:
"Reminder: {{first_name}}, your HVAC service appointment is tomorrow {{day_of_week}} between {{window_start}} and {{window_end}}. Your technician will be {{tech_first_name}} — photo and bio: {{tech_profile_link}}. Reply YES to confirm, RESCHEDULE if needed. Questions? Call {{office_phone}}. — {{company}}"
The technician profile link points to a one-page bio with the tech's photo, first name, certifications (EPA, NATE, your state license), and years with the company. Customers who land on this page show measurably higher confirmation rates because the appointment becomes concrete — "Marcus is coming tomorrow at 10" replaces "someone is coming." The page also reduces the front-door anxiety that drives some last-minute cancellations.
For unconfirmed customers, this is the second nudge to either confirm or cancel. Customers who do not respond to either the 48-hour or 24-hour message become the focus of the next layer.
3. Send a 2-hour GPS-based ETA text the morning of
The 2-hour ETA is where the modern field service experience earns its keep. Two hours before the technician's calculated arrival time, an automated SMS goes out with the actual GPS-projected ETA based on the technician's real-time location and route.
Template:
"Good morning {{first_name}}, this is {{company_name}}. {{tech_first_name}} is on his way to your home for your HVAC service. Current ETA: {{eta_window_start}} – {{eta_window_end}}. You can track his arrival here: {{live_tracking_link}}. Reply HERE if you'd like a 15-minute heads up before arrival. — {{company}}"
The live tracking link is the magic. Modern dispatch systems (Deelo, ServiceTitan, FieldPulse, Jobber) generate a one-time customer-facing tracker showing the technician's truck on a map, the current ETA, and a countdown. The customer who sees the truck moving toward their house does not leave for a coffee run; the customer who can't see it does.
The HERE confirmation reply triggers a final 15-minute heads-up text just before the tech arrives. About 70-80% of customers who reply HERE end up at the door when the truck pulls up — versus a 60-70% answer rate with no live tracking. The 5-10 minutes of doorstep wait time saved per call adds up to one extra completed call per truck per day for a 5-truck shop.
4. Require a refundable $75 trip-fee deposit for first-time customers
The deposit policy is the single biggest move on no-show rate, and the most controversial. The structure:
- Existing customers (in your CRM with a paid invoice in the last 24 months): no deposit required. - First-time customers booking a paid service call: $75 refundable trip-fee deposit charged at booking. The deposit is fully deducted from the invoice on the day of service. If the customer reschedules with 24+ hours notice, the deposit transfers to the new appointment. If the customer cancels with 24+ hours notice, the deposit is refunded in full. If the customer no-shows or cancels with less than 24 hours notice, the $75 is retained as the trip fee for the dispatched truck. - Existing customers who have previously no-showed: $75 refundable deposit required on future bookings. - Service agreement holders: never required to pay a deposit.
The homeowner's reaction to the deposit is the single best signal of whether the booking is real. The 95% who pay the $75 without friction are real bookings. The 5% who push back hard or refuse the deposit are almost always the same 5% who would have no-showed. Either they pay and the appointment becomes real, or they walk and the slot is freed for someone who will show up.
No-show rates on first-time customers without a deposit policy run 18-30% in most markets. With a $75 refundable deposit, first-time no-show rates typically drop to 2-5%. The deposit collection itself becomes a small revenue stream from the genuine no-show cases.
Process the deposit at booking via a payment link sent in the booking confirmation text. The link should be tokenized (Stripe, Square, or your payment processor) so the customer never enters card details into your CSR's mouth. The CSR script: "We collect a $75 trip-fee deposit at booking that comes off your invoice on the day of service — it just guarantees the slot for both of us. I'll send you a secure payment link by text right now. Once it's paid, you're confirmed."
5. Build the dispatcher escalation rule for unconfirmed appointments
Despite a 48-hour and 24-hour SMS, a portion of bookings (typically 10-20%) will not have responded. These are the highest no-show risk and need a human touch — but the dispatcher should not chase every appointment. The escalation rule that works:
At 24 hours out, if not confirmed by SMS reply: dispatcher calls the customer at the booked phone number. Voicemail script: "Hi {{first_name}}, this is {{csr_name}} from {{company}}. We have you scheduled for tomorrow at {{window}} for HVAC service and we wanted to confirm — please call us back at {{office_phone}} or text us back, otherwise we'll see you tomorrow."
At 12 hours out, if still not confirmed: dispatcher sends a final text: "Hi {{first_name}}, we haven't been able to confirm tomorrow's appointment at {{address}}. We'll plan to dispatch as scheduled, but if the time no longer works please reply RESCHEDULE so we can free the slot for another customer. Thanks — {{csr_name}}"
Day of, if no confirmation and no answer at the door for 10 minutes: technician leaves a door tag, sends a photo of the door tag back to dispatch through the field app, and the dispatcher logs a no-show. Future bookings for this customer require a $75 deposit.
In Deelo, this escalation cadence is a workflow that runs against every appointment automatically — the dispatcher sees a worklist of "unconfirmed at 24 hours" and "unconfirmed at 12 hours" rather than scrolling through every appointment. Outside Deelo, most field service tools support some version of this through dispatch boards or saved filters, though the automation depth varies.
6. Track no-show rate by source, time slot, and day of week
The numbers will tell you exactly where no-shows concentrate. Track three slices weekly:
By lead source: no-shows from Google Local Services bookings often differ from Yelp, Angi, organic website, referrals, or service-agreement bookings. Some sources will run double the no-show rate of others. The remediation is to require deposits on the high-risk sources or to disqualify them entirely if the economics do not work.
By time slot: the 8-10 AM and 4-6 PM slots are typically lower-risk because they cluster around workdays starting and ending. The 12-2 PM and 2-4 PM slots are typically higher-risk because customers misjudge their lunch windows. Some shops adjust their booking flow to push high-risk customers into low-risk slots.
By day of week: Monday and Friday tend to run higher no-show rates. Tuesday and Wednesday tend to run lower. The data should drive how aggressively you load each day — and how big the deposit policy needs to be on the high-risk days.
Pull the data weekly. In Deelo, a saved CRM view filters appointments by status (no-show vs completed) crossed against source, slot, and day of week. The view is the dispatcher's Monday-morning homepage; the trends drive the next 30 days of policy adjustments.
Common Mistakes
- Sending only one reminder text — a single 24-hour SMS reduces no-shows from 15% to 10%. The full 48-hour, 24-hour, 2-hour cadence reduces them to 3-5%. The marginal cost of three texts versus one is essentially zero; the lift is not.
- Skipping the deposit policy on first-time customers — every shop that adds a refundable trip-fee deposit on first-time bookings sees no-show rates drop within two weeks. Owners who resist citing "we don't want to scare customers off" are losing more revenue to no-shows than they would to deposit refusals.
- Letting the dispatcher chase every unconfirmed appointment manually — a workflow rule that surfaces only the appointments that haven't confirmed at 24 hours out lets the dispatcher spend their time on the actual at-risk slots, not on manually checking 40 bookings a day.
- Sending the 2-hour ETA without live tracking — the static "we're on the way" text is meaningfully less effective than a dynamic GPS link. If your dispatch tool does not support live customer-facing tracking, this is a primary upgrade trigger.
- Running the same cadence for service-agreement holders as for first-time strangers — agreement holders almost never no-show because they have a relationship with you. A simpler 24-hour reminder is plenty. Over-messaging them with three texts feels heavy-handed and degrades the membership experience.
- Failing to record the no-show event in the customer record — the data only matters if it is captured. Every no-show should mark the contact's record so future bookings trigger the deposit-required workflow automatically.
How Deelo Helps
Deelo runs the full layered confirmation cadence and the deposit workflow as one connected system. CRM holds the customer record with no-show history and deposit-required flag. Field Service schedules the appointment and tracks the technician's GPS position in real time. Automation fires the 48-hour SMS at exactly 48 hours, the 24-hour SMS at exactly 24 hours, and the 2-hour live-tracking ETA based on the technician's real-time route. Invoicing handles the $75 deposit charge at booking via tokenized payment, the deduction from the day-of invoice, and the refund on cancellation with 24+ hours notice.
The dispatcher's worklist surfaces unconfirmed appointments at 24 hours and 12 hours out — not the full schedule — so their attention is concentrated on the actual at-risk slots. The CSR script is built into the booking flow; when a first-time customer books, the deposit collection is presented automatically and the booking does not confirm until paid.
The analytics are saved CRM views: no-show rate by lead source, by time slot, by day of week, by technician, by month — refreshed weekly without exports or spreadsheets. Owners and dispatchers see trends in real time and adjust deposit policy or slot mix accordingly.
At $19/seat/month, a 6-person HVAC shop runs the full no-show reduction system — confirmation cadence, deposit workflow, dispatcher escalation, and analytics — for $114/month. No add-on fees for the SMS, the automation, or the payment processing beyond standard Stripe transaction rates.
Try Deelo free for HVAC dispatch and confirmation
No credit card required. Cut no-shows from 15% to under 5% with a layered SMS cadence, live tracking, and a refundable deposit policy — all in one platform. See how an automated workflow recaptures $80,000+ a year for a 6-truck shop.
Start Free — No Credit CardTools Mentioned
| Tool | Use in No-Show Reduction | Pricing |
|---|---|---|
| Deelo | Layered SMS cadence, live tracking, deposit workflow, dispatcher worklist | $19/seat/mo, all included |
| ServiceTitan | Mature customer-facing tracking, deep dispatch tools, call center support | $300+/mo per tech, annual contract |
| Jobber | Built-in SMS reminders, simple customer notifications | $49-249/mo by tier |
| Housecall Pro | Customer-facing booking and reminders, marketing-led | $69-199+/mo by tier |
| Twilio + Stripe | DIY SMS and payment for shops on legacy field service tools | Per-message and per-transaction fees |
HVAC No-Show Reduction FAQ
- How quickly will we see the no-show rate drop?
- Most shops see meaningful improvement within the first two weeks of turning on the layered cadence. Full effect — 12-18% no-show rate dropping to 3-5% — typically takes 60-90 days because the deposit policy needs to filter through the first-time-customer cohort, and the data on lead-source no-show rates needs a month or two to stabilize. Track weekly: by week 4 you should see at least a 50% reduction; by week 12 you should be near steady state.
- Do customers complain about the $75 deposit policy?
- Some do. Roughly 5-10% of first-time-booking customers push back on the deposit. About half of those, after a brief CSR explanation ("it's fully refundable on the day of service or with 24-hour notice"), pay the deposit and become real bookings. The other half walk away — and the data is consistent that this group has dramatically higher no-show risk than customers who pay the deposit without friction. Net economics: the small revenue loss from walk-aways is dwarfed by the avoided no-show cost.
- What if a customer's phone is on Do Not Disturb and they never see the SMS?
- About 3-5% of bookings will not respond to any of the three SMS messages because of carrier issues, full inbox, blocked numbers, or DND settings. For these, the dispatcher's 24-hour voice call is the safety net. Track unanswered-after-call escalations separately — these are the cases where the technician dispatches blind. Some shops add a final voicemail at the office number 1 hour before dispatch to ensure the customer has every chance to respond.
- How do we apply the same approach to commercial accounts?
- Commercial maintenance accounts have very different dynamics — usually a facility manager or property manager who is the booking contact, not the end user of the equipment. Adapt the cadence: 48-hour confirmation goes to the facility manager via email and SMS, 24-hour reminder goes to the on-site contact, 2-hour ETA goes to both. Skip the deposit policy entirely for commercial accounts on contract or on net-30 invoicing. Commercial no-show rates are typically lower (3-5% baseline) and concentrated in tenant-occupied properties where the facility contact and tenant are different people.
- Should we charge the deposit for emergency dispatch calls?
- Yes, with a small modification. For after-hours emergency calls, the deposit should be the same $75 (refundable from the invoice), but the CSR's framing shifts: "For after-hours emergency dispatch we collect a $75 hold deposit at the time of booking — that comes off the trip charge on the call. I can take that by phone right now or text you a payment link." Customers in genuine emergencies almost never refuse; customers who refuse are almost always the cases where the urgency was misjudged and the call would have been a no-show anyway.
- How do we measure whether the layered cadence is actually working?
- Pull no-show rate weekly, broken into three time-bound buckets: pre-cadence (your baseline), 30-day post-cadence, 60-day post-cadence, 90-day post-cadence. Also track: percentage of appointments confirmed at 48 hours, percentage confirmed at 24 hours, percentage confirmed at 2 hours. The leading indicator is the 48-hour confirmation rate — if it sits at 60-70%+, your no-show rate will follow downward within weeks. Cross-track the metrics by lead source and time slot to find the residual hot spots; the deposit policy is the lever for everything that does not respond to the SMS cadence alone.
Related pages
Explore More
Related Articles
How to Start a Plastic Surgery Practice: Complete 2026 Guide
A step-by-step guide to launching a plastic surgery practice in 2026. Licensing, credentialing, facility setup, liability insurance, patient pipeline, operations software, and first-year revenue targets.
14 min read
ComparisonDeelo vs ServiceTitan: The Honest 2026 Comparison
A genuinely fair side-by-side comparison of Deelo and ServiceTitan for field service businesses. Pricing, features, strengths, weaknesses, and who each platform is really built for.
12 min read
Alternatives7 ServiceTitan Alternatives That Won't Cost $300/Month
ServiceTitan is powerful but expensive. Here are 7 affordable alternatives for field service businesses, compared on features, pricing, and ease of setup.
15 min read
PricingServiceTitan Pricing 2026: What You Actually Pay
ServiceTitan does not publish pricing publicly. Here is what field service businesses actually report paying in 2026, including base costs, add-ons, and hidden fees.
10 min read