Skip to content

Guide · Templates included

How to stop no-show estimate appointments

The fix is a three-message reminder sequence — 72 hours, 24 hours, and 1 hour before every appointment — where each message makes it easy to confirm or reschedule. Appointment-reminder studies show sequences like this cut no-shows 30–60%. This page has the copy-paste templates, the reasoning behind each touch, and the recovery message for the appointments you still miss.

What a no-show actually costs

An estimator drives out, knocks, waits, calls, leaves. On paper nothing happened. In reality you paid for the drive, the hour on site, the hour back, and — the part that stings — a booking slot another homeowner would have taken. Per home-services reminder economics, the true cost of one wasted site visit runs $300–$600 or more once labor, travel, and the lost slot are counted.

And that's the small number. The estimate that didn't happen was the front door to a job — and per industry pricing data, a residential roof replacement runs $8,000–$25,000, with even repairs at $500–$1,500. You likely also paid to create that appointment in the first place: market data puts roofing leads at $124–$300 each. A no-show quietly stacks all three losses — the lead cost, the wasted visit, and a shot at the job.

The good news is that most no-shows aren't rejections. The homeowner didn't change their mind about the roof — they forgot, or something came up and there was no easy way to tell you. Both problems are fixable with three text messages.

The 72-hour / 24-hour / 1-hour triple-touch

Three messages, three different jobs. Appointment-reminder research calls this the rule of three: one touch far enough out to fix conflicts, one the day before to beat forgetting, one right before arrival to put someone at the door. Swap the [bracketed] placeholders for real names, and send from the same number the homeowner already has for you. The tone rule: sound like the owner texting from the truck, not a scheduling department.

72 hours before

The confirm

The job: Get a YES — or surface a conflict while there's still time to move the slot.

Three days out is the sweet spot: close enough that the appointment is real, far enough that a conflict is still fixable. If the homeowner's week blew up, this message finds out on Tuesday instead of in the driveway on Friday. It's also the message that carries the opt-out — one line, once, and it's handled.

72 hours before — SMS

Hi [Name], it's [Your name] with [Company] — confirming your roof estimate this [Day] at [Time]. Reply YES to confirm, or if the week got away from you, grab a new time here: [Reschedule link]. Reply STOP to opt out.

One caveat: If they don't reply YES by the 24-hour mark, that's your cue for a quick phone call. A silent confirm request is the earliest warning light a no-show gives you.

24 hours before

The day-before reminder

The job: Put the appointment back on top of tomorrow's mental pile.

Most no-shows aren't decisions — they're forgetting. The homeowner booked in good faith two weeks ago and life buried it. The day-before message doesn't ask for anything; it just makes tomorrow's visit impossible to forget, and keeps the reschedule door open for the ones who need it.

24 hours before — SMS

Hi [Name] — [Your name] from [Company]. We're set for your roof estimate tomorrow at [Time]. If something's come up, you can pick a new time in about 30 seconds: [Reschedule link]. Otherwise, see you tomorrow.

1 hour before

The heads-up

The job: Convert “I know it's today” into “someone is at the door in an hour”.

The final touch is the one that actually gets the homeowner home. Knowing the appointment is today is not the same as knowing a truck is en route. This message names the person showing up and roughly when — which also makes your company the one that communicates like a professional outfit before anyone's climbed a ladder.

1 hour before — SMS

Hi [Name] — [Estimator name] from [Company] is headed your way for your roof estimate, arriving around [Time]. See you soon.

Text first — but don't stop at text

SMS carries the sequence because that's where homeowners are: per appointment-reminder channel research, 48% prefer a text — but 29% still prefer a phone call. So run the channels in order. Text is the primary, a mirror email is the backup, and a phone call is the fallback for anyone who hasn't confirmed by the 24-hour mark. The same research found the multi-channel version delivers a 28% greater no-show reduction than any single channel on its own — and that roughly 90% of customers are happy to get automated reminders, so you're not bothering anyone by sending them.

Why every message carries a reschedule link

Notice what every template above offers: confirm orreschedule, side by side, no friction on either door. That's the mechanic that makes the sequence work — because a homeowner whose Friday just fell apart has three options. Tell you (awkward, requires a phone call they're dreading). Ignore it and hope (the no-show). Or tap a link and pick Tuesday instead. If the only exits you offer are "show up" or "confess," plenty of decent people quietly pick door two.

This is why the guilt-trip reminder — "please make sure you're home, our team's time is valuable" — backfires. It raises the social cost of admitting a conflict, which produces more silence, not less. A reschedule that takes 30 seconds costs you a few days. A no-show costs you the $300–$600 trip and, often, the job. Make the honest exit the easy one and the driveway stops being where you find out.

The no-show recovery message

Even a good sequence won't catch everything. When a no-show happens anyway, the appointment isn't dead — the homeowner still has a roof problem, plus a small dose of embarrassment about standing you up. The recovery message removes the embarrassment and hands them the rebooking link while the need is still warm. Send it within an hour or two of the missed visit, while it's fresh.

After the missed appointment — SMS

Hi [Name] — [Your name] with [Company]. We came by at [Time] today for your roof estimate and missed you — happens to everyone. Want to grab a new time? Takes about 30 seconds: [Reschedule link]. And if you've changed your mind about the work, no hard feelings — just let me know and I'll close the file.

Why it works: "happens to everyone" kills the shame, the link makes rebooking one tap, and the "close the file" option gives them a graceful no — which gets you an answer either way, instead of a second silence.

Common questions

Want this to run automatically?

These templates work sent by hand — for a while. The catch is that every booked estimate needs three sends at three exact hours, a call trigger when nobody confirms, and a recovery text when someone still doesn't show. In our builds, this runs automatically for every appointment: the moment an estimate goes on the calendar, the sequence schedules itself, a reply stops it, and a reschedule moves everything to the new date. If you'd rather run it manually, the templates are yours — no email gate, no catch.