Two things make pest control different from other recurring home services. Preparation matters — an untreated kitchen because nobody emptied the cupboards is a wasted visit for both of you. And customers are embarrassed — a discreet text thread suits this trade far better than a phone conversation someone's family can overhear.
Prep instructions decide whether the visit works
Prep sent at booking is forgotten. Prep sent the evening before gets done. The timing is the whole intervention.
export const prep = { // Evening before. Not at booking — that was three weeks ago. nightBefore: (c: Ctx) => `${c.company}: ${c.tech} is with you tomorrow, ${c.window}. ` + `Before we arrive:\n${c.prepList}\n` + `Full list here if it's easier: ${c.link}`, pets: (c: Ctx) => `${c.company}: important — pets and fish need to be out of the treated ` + `rooms for ${c.reentryHours} hours afterwards, and fish tanks covered ` + `with the pump off. Reply if you'd like to talk that through.`, reentry: (c: Ctx) => `${c.company}: treatment's done. Stay out of ${c.rooms} until ` + `${c.reentryTime}. Ventilate when you go back in. ` + `Safety sheet: ${c.link}`,};Re-entry times are a safety instruction, not a courtesy
Get this wrong with a pregnant customer, a baby or a pet and the consequences are serious. Send it in writing, send it again on completion, and never rely on the technician having said it verbally on the doorstep.
The follow-up that proves it worked
Pest treatment often gets worse before it gets better — activity increases as the colony is disturbed. A customer who does not know that will conclude you failed and call someone else. Telling them in advance turns a complaint into confirmation that the treatment is working.
export const expectations = { afterTreatment: (c: Ctx) => `${c.company}: you may see MORE activity for the next ${c.days} days — ` + `that's normal and it means it's working. It should drop off after that. ` + `Message us if it hasn't by ${c.checkDate}.`, checkIn: (c: Ctx) => `${c.company}: how are things looking since ${c.tech} came out? ` + `Reply GOOD, SAME or WORSE — if it's not sorted, the re-treat is free.`,};That one-word reply is doing a lot of work. It is a low-effort answer for the customer, it gives you a structured signal you can route on, and offering the free re-treat before they ask removes the argument entirely.
Recurring contracts and the quiet cancellation
Quarterly contracts churn for the same reason lawn care does — the service works, so the problem disappears, so the customer stops seeing the point. The counter is the same: make the invisible work visible.
- Report what you found, including nothing. 'Checked all six stations, no activity, all rebaited' is proof of value.
- Photograph the exterior work. Customers never see the bait stations or the roofline you treated.
- Note the seasonal risk. 'Rodent season starts next month, this is the visit that matters' explains why you are coming.
- Flag it before the renewal charges, always. Surprise charges are how quarterly contracts become chargebacks.
Commercial and landlord work has an extra wrinkle: the person paying is not the person in the building. That is the same split covered in property management, and it needs two separate threads, not one.
Next step
Browse the other industry playbooks, compare the services that can send this on the providers page, or tag your links with the UTM builder.