A 12-month text to every unclosed quote in your file, sent at the exact moment circumstances have changed — the budget's free, the old system finally died, or the house is going on the market. Three scripts, the dead-quote list build, and the follow-up rules.
System 3 from the Leveraged Owner Starter Pack
Last September you quoted a homeowner $8,400 for a furnace replacement. They said "we're still thinking about it" — and you never heard from them again. It's July now, and their old furnace just gave up. The question isn't whether they'll fix it. It's whether they call you or the guy who just sent them a text asking if they still need the work done. This is the natural extension of the 5-text estimate follow-up sequence: what to do with the quotes that survived all five touches and still went quiet.
An unclosed estimate feels like a dead end. It's actually a warm lead wearing a costume. The homeowner already met you, already liked you enough to let you in the house, already knows your price. What stopped the job wasn't you — it was timing. And timing changes. In twelve months:
You don't need a high response rate for this to pay. A plumber or HVAC shop with 100 dead quotes a year needs only two or three to turn into jobs for the text to beat nearly every marketing channel you pay for — because it costs you one afternoon of list-building and a scheduled text campaign.
Your CRM (customer relationship management software — whatever holds your customer and quote records) already has everything you need. Export every estimate that fits all four rules:
Split the list into two groups before you text. Group A: price objections. They said it was too expensive or went with someone cheaper. They get the re-open script with new information (seasonal angle, financing mention, price refresh). Group B: everything else. Stalled, busy, spouse decision, timing — they get the warm check-in. This split is what keeps the messages from sounding tone-deaf.
Send on the quote's one-year anniversary, give or take a week. The tone is a person remembering, not a company blasting. No discount, no urgency, one question.
Hi [First Name], it's [Your Name] from [Business Name]. Just realized it's been about a year since I quoted the [job description, e.g., "furnace replacement"] at [property address or street]. No pressure at all — just wanted to check: did you ever get that taken care of, or is it still on the list? Happy to refresh the quote if helpful. Reply STOP to opt out. — [Business Name]
Why it works: "Did you ever get that taken care of" is disarming. It accepts that they may have used someone else — and a surprising number will reply "no, still need it done," because admitting they procrastinated to a friendly contractor is easier than starting over with a stranger.
For the "too expensive" crowd, don't apologize for the price. Give them new information: the season changed, the math changed, or the terms changed. Send this one timed to your trade's natural season, not the anniversary.
Hi [First Name], [Your Name] from [Business Name]. Last [season] I quoted $[amount] for your [job description]. Two things since then: we're booking [shoulder-season availability, e.g., "fall installs in under a week"], and we've added [financing plans / a lower-tier equipment option]. If the price was the holdup, it may be worth a fresh look — want me to re-run the numbers? Reply STOP to opt out. — [Business Name]
The bracketed fields are doing real work: "we're booking fall installs in under a week" reframes the conversation from price to convenience, and the financing or lower-tier mention gives a face-saving reason to re-engage. Never open with a discount here — discounts on reactivation train customers to wait a year for a price cut.
Send to anyone who didn't reply to Text 1 or 2, exactly seven days later. Then stop — three touches over a year is persistence; four is pestering. The angle is the quote itself expiring, which is honest: material prices and your schedule both changed in a year.
Hi [First Name], last note from me, [Business Name]. That quote from last [month] is past its pricing window now — if you still need the [job description] done, I'm happy to come re-quote it before [season] hits. If you're all set, just ignore this and I'll close the file. Either way, no hard feelings. Reply STOP to opt out. — [Business Name]
"I'll close the file" is the breakup message applied at twelve months. It gives them a clean, low-pressure exit — and exits are what make replies honest. A meaningful share of the responses to this text will be "actually, yeah, come take another look," because the deadline forced the decision the last year avoided.
You're texting people who gave you their number during a quote process, which is a reasonable consent basis for a follow-up about that quote — but treat this campaign as promotional texting and build it correctly:
This is general information, not legal advice — but the pattern is simple: registered number, opt-out in the first message, daytime sends, instant suppression. Do that and you're operating the way every legitimate contractor texting program runs.
The campaign fails or pays based on what happens in the ten minutes after a reply. Set these rules before you send:
The manual version takes an afternoon a year. The system version takes ten minutes of setup: in your CRM, create a view called "Quotes 12 months, unclosed." Set a monthly reminder (first Monday, 9am) to pull that month's slice, split Group A and Group B, and load the two texts into your texting tool's scheduled send. One page of setup guide (standard operating procedure — the written "how we do this" for a task) documents the export filters, the two message variants, and the reply rules above, so your office staff runs it while you're on a roof.
Example: a 3-truck HVAC shop exports 140 unclosed quotes from the previous year. Group B gets the warm check-in; Group A gets the seasonal re-open in early fall. Eleven people reply, six book re-quotes, three buy. Three jobs from an afternoon of list work and a scheduled text campaign — no ad spend, no new leads required.
The annual text is the long-game layer on top of the 5-text estimate follow-up sequence — if your Day 1 through Day 21 game isn't built yet, start there. For turning this into a standing monthly habit rather than a once-a-year event, the dead-quote list logic pairs with a CRM that tracks quote status, which is covered across the estimate follow-up deep dives in the blog.
The full setup guide, all four copy-paste scripts (including the owner notification), the "Your Numbers" missed-call worksheet, and the step-by-step setup guide — free, no catch. Fix your missed calls this week.
Get the AI Automation Starter Pack — $27, one-time: https://leveragedowner.com/starter-pack/
This post is System 3 from the Leveraged Owner Starter Pack — the done-for-you version with the full step-by-step setup guide, every script, the worksheets, and screen-by-screen setup instructions for all 8 systems. The dead-quote export filters, the Group A/Group B message variants, and the reply-handling rules are all pre-written and ready to load.
Stats sourced as labeled: no statistics used in this post.
Related guides from the Leveraged Owner blog:
Commercial bid follow-up for contractors: the 90-day cycle for committee timelines, spec-sheet value-adds, stakeholder mapping, and the re-bid calendar.
Estimates without expiration dates drift forever. The honest way to date every quote — material-price reality as the deadline, with pressure-free wording.
Every form field costs you leads. The form-field audit: which fields earn their place, which kill conversion, and the 4-field sweet spot for contractors.