Skip to main content

How to Re-Engage Old Roofing Leads That Went Cold (and Find the Ones Due Now)

Michael Torres, Storm Damage Specialist··30 min readRoofing Sales & Growth
On this page

Every roofing company in America is sitting on a pile of money it already paid for. It is not in the bank account. It is in the CRM, in the old estimate folder, in the spreadsheet a sales rep who quit three years ago left behind. It is the list of homeowners who called you, let you on the roof, took your number, said "let me talk to my spouse" or "let me wait until next year" or "let me get two more quotes" — and then went quiet. You marked them lost. You moved on. And every one of them still has the same roof, one to five years older, sitting over their head right now.

A cold lead is not a dead lead. A cold lead is a warm relationship that timed out. The homeowner did not decide they hated you. In most cases they decided nothing at all — life moved, the leak stopped dripping, the spouse got busy, the bonus did not come through. The roof, meanwhile, kept aging on schedule. Asphalt does not care that the conversation went quiet. It keeps losing granules, the mat keeps getting brittle, and somewhere on that list is a stack of roofs that crossed from "fine for now" into "due" while you were not looking.

The contractors who win in a slow month are almost never the ones who spent the most on new leads. They are the ones who worked their own book first. Re-engaging a cold lead costs a fraction of acquiring a new one, the homeowner already knows your name and has already let you on their property, and — the part most companies miss entirely — a slice of that old list is no longer "maybe someday." It is ready now, because age and weather did the convincing you could not.

The problem is that most re-engagement is done badly. A rep blasts the entire dead list with the same "just checking in!" text, gets a 1.5% reply rate, decides the list is junk, and goes back to buying clicks. The list was never junk. The approach was. Working a cold list well is a craft: you have to clean it, segment it by why it went cold and how old the roof is now, write outreach that gives the homeowner a reason that did not exist the day they ghosted you, and sequence the touches so you are persistent without becoming the contractor everyone blocks. Done right, a database of a few thousand old contacts is worth more than a year of paid leads — and you already own it.

What follows is the full operating system: how to find the money in your CRM, how to figure out which of those old roofs are actually due now, the exact messages and sequences that pull cold homeowners back, the scripts for the call that follows a reply, the legal lines you cannot cross when storm and insurance enter the picture, and the metrics that tell you whether the program is working or whether you are just annoying people. No fluff, no invented numbers — just the workflow a sharp sales manager would run.

Why cold roofing leads go cold (and why almost none of it is about you)

Before you can re-engage a list, you have to understand it. Contractors tend to assume a lost lead means the homeowner picked a competitor or hated the price. Sometimes. But when you actually call old "lost" contacts and ask, the reasons cluster into a handful of buckets, and most of them have nothing to do with you being beaten.

The eight reasons a roofing lead really goes cold:

  1. No urgency yet. The roof was aging but not failing. The homeowner got a quote to "know the number," not to buy. This is the single largest bucket and the most valuable, because the only thing missing was time — and time has now passed.
  2. Budget timing. They wanted the roof but the money was not there that quarter. Tax refund season, a bonus, selling the house, refinancing — the trigger event simply had not happened.
  3. Decision-maker not aligned. One spouse was in, the other was not. The "let me talk to my partner" never resolved, and nobody followed up to close the loop.
  4. Got busy / life happened. A new baby, a job change, a sick parent. The roof fell off the priority list. No decision was ever actually made.
  5. Shopping more quotes. They were collecting three bids and you were bid number one. By the time bid three came in, you had stopped following up and someone who kept calling won.
  6. Insurance limbo. Storm claim that stalled, an adjuster who came out and said "not enough damage," or a homeowner who never filed. The roof is still compromised; the paperwork died.
  7. Price objection that was never handled. They balked at the number, you did not have financing to offer or did not re-frame it, and the conversation ended on the price instead of the value.
  8. Bad data / wrong moment. You called at dinner, emailed a dead address, or the lead was mis-entered. Pure friction, not rejection.

Notice that in six of those eight, the homeowner never chose against you. They drifted. That is the whole thesis of re-engagement: you are not overcoming a "no," you are restarting a stalled "maybe" at a moment when the math has changed. And in roofing, the math changes on a clock you can predict — the roof gets older every single day, and the weather keeps hitting it.

The decay curve: how fast a roofing lead actually goes cold

Speed-to-lead research across home services is consistent and brutal: the odds of connecting with a lead drop steeply within the first hour and keep falling over days. But "cold" is not binary, and a lead that aged out is not the same as a lead you mishandled in hour one. For re-engagement purposes, think in three temperature bands:

Band Age of last contact What it means Re-engagement posture
Cool 30–120 days Recently went quiet; still remembers you clearly Light, friendly, reference the specific quote
Cold 4–18 months Drifted; remembers the brand, fuzzy on details Lead with a new reason (age/season/storm), re-introduce
Frozen 18 months–5 years Largely forgotten the interaction; roof now meaningfully older Treat almost like net-new, but you have address + history as an edge

The frozen band is the one everyone writes off and the one with the most hidden gold, because that is where roofs that were "ten years old, fine for now" three years ago are now thirteen years old and visibly tired. The contact went cold; the asset got hot.

Step one: build the list before you write a single message

You cannot re-engage what you cannot find. Most roofing CRMs are graveyards of half-entered records, and the first job is archaeology. Block a half-day. Pull everything.

Sources to mine, in order of value:

  • Lost/closed-lost opportunities — the literal cold-lead pile. Every estimate that did not close.
  • Quoted-but-not-won — you gave a number, they did not sign. Highest intent of any group; they already wanted a roof badly enough to get a price.
  • Past customers (repair-only) — anyone you did a repair for but not a full replacement. A repair customer with a roof now past its prime is your warmest possible replacement lead.
  • Old inspection / free-estimate requests that never converted to a quote.
  • Storm canvass contacts from prior events — door-knock cards, sign-ups, "come back after the storm" maybes.
  • Referral sources gone quiet — agents, property managers, past customers who once sent you work.
  • Aged contractor-platform leads you paid for and never closed (you already own the data; mine it).

For each record you need, at minimum: name, property address, phone, email, date of last contact, what stage it died at, and any notes on why. The property address is the most important field and the one most often missing or wrong — it is the key that reveals the roof's real condition later, so prioritize fixing it.

Clean the data, or the whole program dies

A re-engagement campaign sent to dirty data is how you torch your sender reputation and your phone number's deliverability in a week. Before any outreach:

  1. De-duplicate by address and by phone. The same homeowner often exists three times across two reps.
  2. Validate emails through a verification pass to strip dead addresses, spam traps, and typos. A bounce rate above roughly 2% gets you throttled by mailbox providers; one bad blast can damage every future email you send.
  3. Scrub phones against the National Do Not Call Registry and your own internal DNC/opt-out list, and verify line type. The do-not-call rules are not optional and the penalties are real (the FTC enforces violations at thousands of dollars per call). Maintain a written internal DNC and honor every opt-out forever.
  4. Confirm the address is still the same owner where you can. People move. The roof is still there; the relationship may not be.
  5. Tag the record with the cold-reason bucket from the eight above, even if it is a best guess from the notes. This drives segmentation next.

Yes, this is tedious. It is also the difference between a campaign that books appointments and a campaign that gets your domain blacklisted. Do not skip it.

Step two: figure out which cold roofs are actually due now

Here is where most re-engagement programs stop short. They clean the list, then blast all of it with the same message. But a 6-year-old roof and a 19-year-old roof are not the same lead, and a homeowner whose street took golf-ball hail last spring is a different conversation than one in a calm ZIP. The list has to be prioritized by the roof, not merely by the contact.

The problem: your CRM knows when you last talked to the homeowner. It usually does not know how old the roof is now, and it definitely does not know what the weather has done to it since. So you are flying blind on the one variable that decides whether the homeowner is finally ready — the condition of the asset.

There are three ways to recover that signal, from cheapest to sharpest.

Method A: estimate roof age from your own old notes

If your rep was on the roof two years ago and wrote "20-year 3-tab, looks like original install, builder grade, granule loss starting," you already have a usable age signal. A roof noted as "12–15 years, some curling" in 2022 is an 14–17-year roof in 2026 — squarely in the replacement window for most asphalt. Mine the notes, add the elapsed years, and you have a crude but real ranking. The limitation: notes are inconsistent, many records have none, and "looks fine" from the curb is not condition data.

Method B: visual / aerial spot-check

Pull current aerial or street-level imagery and eyeball the worst-looking roofs on your list. This catches obvious failures — patched sections, missing shingles, heavy discoloration. The limitation: imagery shows you the surface, not the install date, and a re-roof done by another company since your last contact is invisible to a guess. You can waste a whole campaign chasing a roof someone already replaced.

Method C: layer in roof-age range and storm history per address (where RoofPredict fits)

This is the part of the problem RoofPredict was built for, and it is the honest answer to "which of these old contacts is due now." Feed your cleaned list of addresses in and get back, per home, a roof-age range (estimated from aerial imagery — a range like 16–20 years, not a fake exact install date) plus storm history modeled on that specific roof — not "it hailed somewhere in this ZIP," but the hail and wind actually modeled against that house. You can then re-sort your entire cold list so the homeowners whose roofs are both aging out and storm-worn rise to the top.

Why this matters for re-engagement specifically: it tells you who to call first and what reason to lead with. The 18–22-year roof that also took two hail events since you last spoke is your first call of the day — the urgency the homeowner lacked two years ago now exists, and you can name it. The 7-year roof on the same list goes to the bottom or off the list entirely, so you stop wasting touches (and goodwill) on people who genuinely do not need you yet. It also flags the re-roofs: if the data says a roof reads as recent, that contact already bought from someone else, and you can retire it instead of chasing a ghost.

Two honest limits, because anyone selling you certainty is lying. Roof age comes back as a range, not a birth certificate — it narrows the field dramatically but you still confirm on the roof. And storm exposure is modeled as odds and severity, not proof of damage — it tells you which roofs the storm most likely wore out so you prioritize the inspection, not that a claim exists or will be approved. Used that way — to rank a list you already own and decide your call order — it turns a flat pile of cold contacts into a sequenced hit list. It does not replace the inspection; it tells you which ladders to put up first.

A simple priority score you can build today

Whether you use software or a spreadsheet, score each cold contact 0–100 so the list sorts itself. A workable weighting:

Factor Weight Why
Roof age in/near replacement window (range) 35 The core "is it due" signal
Storm exposure since last contact (modeled) 25 The new urgency that did not exist before
Stage it died at (quoted > inspected > inquiry) 15 Proven intent
Recency/strength of the prior relationship 10 Warmer = easier restart
Repair-only past customer 10 Pre-trusted, owed a replacement conversation
Data quality (good phone + email + address) 5 Reachability

Sort descending. Now you are not "working the list." You are working the top of the list, where the money is, with a reason in hand for each call.

Step three: write outreach that gives a reason that did not exist before

The cardinal sin of re-engagement is the empty check-in. "Hi, just following up on your roof quote from 2023, are you still interested?" gives the homeowner nothing. There is no new information, no reason to act today, and it reeks of a sales quota. It gets ignored, and worse, it trains the homeowner to ignore your number.

Every effective re-engagement message does one thing: it supplies the reason to act now that was missing when they went cold. The reason almost always comes from one of three buckets.

The three legitimate reasons to reach back out

  1. The roof is older now. Time itself is the reason. "When we looked at your roof in 2022 it had a few years left. It is now in the range where most roofs like yours start needing replacement, and I wanted to flag it before winter." True, specific, and helpful.
  2. The weather hit it. A storm came through since you last talked. "Your area took a significant hail event this spring — given your roof's age, it is worth a fresh look." (Strict legal limits apply the moment insurance enters; see the next section.)
  3. A timing/value trigger. Seasonal capacity, a financing option you did not have before, a pre-winter inspection window. "We have a few openings before the busy fall season and I wanted to offer you a no-cost re-inspection."

If you cannot put one of those three into the message honestly, you do not have a reason to send it yet. Wait until you do.

Channel by channel: what actually works

Re-engagement is multi-channel by necessity — different homeowners answer different channels, and a sequence that touches a contact across two or three channels dramatically outperforms a single blast. Here is how each one earns its place.

Email. Cheapest, most scalable, best for the soft re-introduction. Keep it short, plain-text-feeling, from a real rep's name, with one clear ask. Personalize beyond the first name — reference the actual prior interaction and, if you have it, the roof's specifics. Warm your sending domain gradually; do not blast 4,000 cold contacts from a cold domain on day one or you will land in spam and stay there.

Text / SMS. Highest open and reply rates of any channel, and the workhorse of modern re-engagement — but the most legally loaded. You need prior express consent to text, every message needs clear identification and an easy opt-out, and you must honor STOP instantly and permanently. For a prior customer or someone who gave you their number expecting contact, you have a stronger footing than a purchased list; know the difference. Keep texts conversational and short, ask a question that invites a one-word reply, and never send at dinner or before 8 a.m. or after 9 p.m. local time.

Phone call. The highest-converting channel and the one reps avoid most. A warm call to someone you have already met on their property is not a cold call — lead with the relationship. This is where a prioritized list pays off: you are not dialing randomly, you are calling the homeowner whose 19-year roof just took hail, and you have a specific, true reason. Scripts below.

Direct mail. Underrated for re-engagement because it sidesteps every deliverability and consent headache. A real piece of mail to a known address — ideally referencing the prior visit — lands when email and text are saturated. It pairs beautifully with address-level roof data: mail only the homes that are actually due, so your cost per piece goes to people who can say yes. Mail the due roofs, skip the new ones.

Retargeting / social. A low-cost ambient layer. Upload the cleaned, consented list as a custom audience so your brand reappears in their feed while the direct outreach does its work. Supplemental, never the centerpiece.

Worked message examples

These are templates to adapt, not blast verbatim. Personalize the bracketed fields from your CRM.

Email — the age-based re-introduction (Cold/Frozen band):

Subject: Quick note about your roof at [address]

Hi [First name], this is [Rep] with [Company] — we gave you an estimate back in [year] for the roof at [street]. No pressure at all; I was reviewing older inspections and yours came up. Based on what we noted then, your roof is now in the age range where shingles usually start to give out, and I would hate for you to find out during a storm. Would a free 15-minute re-check this month be useful? Reply here or call/text me at [number]. — [Rep]

SMS — the soft restart (consented contact only):

Hi [First name], it's [Rep] at [Company] — we looked at your roof a couple years back. Quick question: any leaks or missing shingles since? Happy to do a free re-check before fall. Reply STOP to opt out.

Phone voicemail — leave a reason, not a guilt trip:

"Hi [First name], [Rep] with [Company]. We inspected your roof back in [year]. I'm calling because your area got hit with [hail/wind] recently and given your roof's age it's worth a quick look — no cost, no obligation. My direct line is [number]. Thanks."

Direct mail — the address-specific postcard:

Front: "Your roof at [street] is in its replacement window." Back: "We inspected it in [year]. Roofs in your area that are [age range] are the ones we're seeing fail first — especially after this year's storms. Call [number] for a free re-inspection. We'll tell you honestly if you've got years left."

Notice every one of these names a real reason, offers value (a free re-check) before asking for anything, and keeps the door open even on a no. That is the posture: helpful, specific, low-pressure, persistent.

Step four: sequence the touches — the 30-day re-engagement cadence

A single message is a coin flip. A sequence is a system. The homeowner who ignores your email opens your text; the one who deletes the text answers the call; the one who screened the call sees the postcard on the counter. Multi-touch is not nagging — it is meeting people on the channel they actually use. The trick is enough persistence to break through without becoming the contractor everyone blocks.

Here is a proven 30-day cadence for the Cold/Frozen band, calibrated for due roofs (your top-scored contacts). Run fewer touches for low-score contacts.

Day Channel Message focus
1 Email Age-based re-introduction; reference prior estimate
3 SMS (if consented) Soft one-question restart
5 Phone call Warm call; leave the voicemail script if no answer
8 Direct mail Address-specific postcard drops
12 Email New angle: seasonal/financing/storm; short
16 Phone call Second attempt, different time of day
22 SMS "Closing the loop — should I keep your file open?"
30 Email Break-up email (the highest-replying message in most sequences)

The break-up email works because it removes pressure. Something like: "I don't want to keep cluttering your inbox, so this is my last note unless you tell me otherwise. If the roof is on the back burner, totally understand — I'll close your file. If you'd like that free re-check before winter, just reply and I'll get you on the schedule." A meaningful share of replies to a whole sequence come from this single message, precisely because it gives the homeowner an easy out, which paradoxically makes them re-engage.

Cadence rules that keep you out of trouble:

  • Vary the channel and the time of day. Same channel, same time, same message = ignored or blocked.
  • Stop instantly on any opt-out, on every channel, forever. One STOP means no more texts, ever.
  • Cap the total touches. Eight over thirty days is assertive but defensible. Twenty over thirty days is harassment and gets you reported.
  • Branch on engagement. Any reply, click, or call-back pulls the contact out of the automated cadence and into a human conversation immediately. Never let an interested homeowner get the next robotic step.
  • Re-enter on new triggers. A contact who finished the sequence without replying is not dead — they go back in the pool and re-enter when a new reason appears (a fresh storm, another year of roof age). This is the engine that makes a cold list a renewable asset.

Step five: the conversation when they reply

Outreach books the conversation. The conversation books the inspection. The inspection books the job. Most re-engagement programs are built carefully through the cadence and then fall apart the second a homeowner replies, because the rep treats it like a cold lead instead of a warm restart.

The reply-handling principles:

  • Acknowledge the history first. "Thanks for getting back to me — I know it's been a while since we looked at your roof." You are not starting over; you are resuming. That continuity is your advantage over every competitor cold-calling them.
  • Lead with the roof, not the sale. Ask about leaks, attic stains, the last storm, granules in the gutter. You are diagnosing, not pitching. Homeowners trust the contractor who acts like a doctor over the one who acts like a salesman.
  • Re-establish the specific reason. "The reason I reached out is your roof is now in the [age range] window, and your area took hail in [month]. Those two together are why I wanted to get back out." Concrete, true, and it reframes the years of silence as you watching out for them.
  • Make the next step tiny. The ask is never "buy a roof." It is "let me come do a free 20-minute re-inspection and tell you honestly where it stands." Low friction, high yes-rate.
  • Surface and handle the original objection. If your notes say they balked at price, bring financing this time. If they were waiting on a spouse, get both decision-makers at the inspection. If they were collecting quotes, ask what they ended up doing — sometimes nobody followed through and the door is wide open.

The re-engagement call script

Open: "Hi [First name], it's [Rep] from [Company] — you replied about your roof, thanks for that. Before anything else, how's the roof been treating you? Any leaks, missing shingles, stains on the ceiling?"

Diagnose: [Listen. Ask about the last storm, the attic, the gutters.] "Got it. So here's why I reached back out specifically..."

Reason: "When we looked in [year], you had some life left. You're now in the [age range] range — that's where these roofs usually start to go — and your neighborhood took [hail/wind] in [month]. I'm not saying you need a roof today; I'm saying it's the right time to actually find out instead of guessing."

Tiny next step: "Let me send someone out for a free re-inspection — 20 minutes, we get on the roof, take photos, and I'll tell you straight whether you've got years left or whether it's time to plan. Does [day] or [day] work better?"

If hesitant: "Totally fair. The inspection costs you nothing and the worst case is you find out you've got five good years — that's worth knowing too. Want me to just hold a spot and you confirm later?"

The whole script is built to lower the stakes of saying yes. You are not closing a roof on the phone. You are getting a ladder on the house, because once you are on the roof with photos, the conversation changes entirely.

Storm, insurance, and the lines you cannot cross

A large share of cold roofing leads sit in insurance limbo — a storm came, a claim stalled, an adjuster said "not enough," or the homeowner never filed. These are some of your most re-engageable contacts because the roof is genuinely compromised and the homeowner already engaged the topic once. But this is also where roofers get themselves in real legal trouble, so the lines have to be clear and you have to stay strictly on the right side of them.

What you absolutely may do, and should do well:

  • Inspect and document thoroughly. Get on the roof, photograph every hit, every crease, every wind-lifted tab, every slope, with date stamps and a documented method.
  • Build an accurate, itemized estimate of what it costs to repair the damage you found — aligned to standard estimating practice (Xactimate-style line items), reflecting the real scope of your work.
  • State facts about your scope to the homeowner and, where appropriate, about the work you would perform.
  • Hand the documentation and estimate to the homeowner so they have a clear, professional picture of their roof's condition to make decisions with.

What you absolutely may not do (this crosses into public adjusting, which is license-required, and into deceptive practices):

  • Do not negotiate or adjust the claim with the carrier on the homeowner's behalf for a fee.
  • Do not interpret the homeowner's policy or tell them what is or is not covered.
  • Do not promise a specific payout, an approval, or that "insurance will cover it."
  • Do not promise the deductible disappears, get waived, or "we'll eat it" — that is fraud.
  • Do not advertise a "free roof."
  • Do not represent the homeowner against their insurer.

The safe frame for every storm re-engagement is the same: you document the damage, you write an accurate estimate of the repair, and you hand it to the homeowner. The homeowner files the claim. The insurer decides coverage. Your value is the inspection and the documentation, not the claim handling. When you call a cold storm contact, the honest, legal message is "your roof took [hail/wind], it's worth a thorough re-inspection and documentation so you and your insurer have an accurate picture" — never "I'll get your claim approved."

This is also where modeled storm data earns its keep responsibly. Knowing which of your cold contacts have roofs that were both aging and most exposed to a storm tells you which inspections to prioritize — the roofs most likely to actually show damage worth documenting. It does not tell you a claim exists or will pay, and you should never present it to a homeowner as proof of either. It ranks your ladders; the roof itself and the documentation tell the truth.

What pros get wrong about re-engagement

Having watched a lot of these programs run, the failures are remarkably consistent. Avoid these and you are ahead of most of your market.

  • Blasting the whole list with one message. No segmentation, no priority, no reason. The list gets blamed when the approach was the problem.
  • The empty check-in. "Just following up" with no new information. Train yourself to never send a touch that lacks a real reason.
  • Giving up after one or two touches. Most replies come on touches three through eight. Quitting at touch two leaves the majority of the money on the table.
  • Over-touching low-intent contacts. The opposite failure — hammering a 6-year roof eight times. Match cadence intensity to the priority score.
  • Ignoring the data hygiene step. One blast to dirty data wrecks deliverability and can trigger DNC violations. The boring step protects every future campaign.
  • Treating frozen contacts as dead. The 3-year-old "lost" lead is now a meaningfully older roof. Frozen is where the surprise wins live.
  • Letting an interested reply sit in the automated queue. Any engagement must pull the contact to a human instantly. Nothing kills a warm restart like a robotic next-step text after they already replied.
  • Reps cherry-picking only the easy contacts. Without a scored, sequenced list, reps work the names they remember and skip the rest. The system has to drive the order, not the rep's memory.
  • No re-entry mechanism. Running a list once and discarding the non-responders. A cold list is a renewable resource — new storms and another year of age make non-responders re-engageable again. Build the re-entry trigger.
  • Crossing the insurance line. Promising approvals or covering deductibles to get a stalled storm contact off the fence. It is illegal and it ends companies.

A 90-day re-engagement program you can actually run

Theory is cheap. Here is the concrete rollout for a company starting from a neglected CRM.

Weeks 1–2 — Excavate and clean. Pull every source from Step one into one place. De-dupe by address and phone. Validate emails, scrub phones against the DNC and your internal opt-out list, fix and verify property addresses. Tag each record with its cold-reason bucket. Output: one clean, deduped, consented master list with addresses you trust.

Weeks 2–3 — Prioritize by the roof. Layer roof-age range and modeled storm history onto the cleaned addresses, then score every contact 0–100 with the weighting above. Retire the contacts whose roofs read as recently replaced. Sort descending. Output: a ranked hit list, top contacts first, each with a real reason to call.

Weeks 3–4 — Build the assets. Write the email/SMS/voicemail/postcard templates per band. Set up the 30-day cadence in your CRM with branch-on-reply logic and opt-out handling wired correctly. Confirm domain warm-up and consent records. Train reps on the reply-handling script. Output: a sequence ready to fire and people ready to answer.

Weeks 5–10 — Run the top tier. Launch the cadence on your highest-scored contacts first — the due, storm-worn roofs. Reps handle every reply live. Book re-inspections. Track the funnel daily. Do not launch the whole list at once; protect deliverability and let reps keep up.

Weeks 10–13 — Measure, prune, and roll down. Review the metrics below. Kill what is not working, double down on what is, and roll the cadence down into the next tier of scores. Move non-responders into the re-entry pool. Output: a running, self-replenishing engine instead of a one-time blast.

After 90 days you do not have a campaign. You have a standing program: the highest-ROI source of jobs most roofing companies own and never use.

The metrics that tell you the truth

Track these or you are guessing. Watch the funnel, not only the vanity numbers.

Metric What it tells you Watch for
Deliverability (email bounce, SMS fail) Data hygiene + sender health Bounce >2% means stop and clean
Reply / response rate per channel Whether the message has a real reason Below ~2–3% on a warm list = weak messaging
Re-inspection booking rate Whether outreach converts to ladders up The number that actually predicts revenue
Booked → inspected (show rate) Reminder/confirmation discipline Low show rate = confirmation process broken
Inspected → sold Closing + the quality of your prioritization Should beat your cold-lead close rate handily
Opt-out / complaint rate Whether you are over-touching Rising opt-outs = back off cadence intensity
Cost per booked inspection The whole program's efficiency Compare directly against your paid-lead cost

That last row is the one to put in front of ownership. The cost to re-engage a contact you already own is a fraction of what you pay to acquire a new lead, the homeowner already knows you, and the roofs are pre-qualified by age and weather. When you can show booked inspections from the old book at a third of your paid cost-per-lead, the program funds itself and the argument is over.

Turning a cold list into a renewable asset

The deepest shift here is not tactical, it is how you think about the database. A roofing company's customer and prospect book is not a list of past failures to feel bad about. It is an asset that ripens. Every contact in it owns a roof that gets one year older every year and keeps standing under whatever weather rolls through. The contact going quiet did not stop that clock; it just meant nobody was watching it.

A roofer should own their next job rather than rent it — and the cold list is the purest version of that idea, because you already paid for every name in it. Lead sites resell the same homeowner to five competitors. Storms come and go on their own schedule and bring an out-of-town swarm with them. But the old book is yours alone, nobody else is working it, and the only thing standing between you and the jobs hiding in it is the discipline to clean it, rank it by which roofs are actually due, and reach back out with a real reason.

The contractors who internalize this stop dreading slow months. A slow month is just a signal to work the book — to re-sort the list by roof age and recent storms, surface the homeowners who crossed from "fine" into "due" since you last talked, and start dialing the top of the list with something true to say. The money was already in the building. Re-engagement is just the work of going to get it.

Start with the oldest "lost" file you have. Pull the address, find out how old that roof really is now and what the weather has done to it, and make the call that nobody else is going to make. That homeowner has the same problem they had years ago — only now it is worse, and you are the one who already knows their roof.

FAQ

How long does a roofing lead stay worth re-engaging?

Effectively forever, as long as the homeowner still owns the property. The contact going cold doesn't stop the roof from aging. A 'lost' lead from three years ago is now a roof three years older — often crossing from 'fine for now' into the replacement window. Frozen contacts (18 months to 5 years) are the most overlooked and frequently the most ready, because age and weather did the convincing the rep couldn't.

What's the single biggest mistake in re-engaging cold roofing leads?

The empty check-in. Sending 'just following up on your quote, still interested?' gives the homeowner zero new information and reads as a quota chase, so it gets ignored. Every effective touch supplies a reason that didn't exist when they went cold — the roof is older now, a storm hit it, or there's a real timing/financing trigger. No real reason, no message.

How do I know which of my old cold leads actually need a roof now?

Rank the list by the roof, not the contact. Estimate age from your old inspection notes (add the elapsed years), spot-check current aerial imagery, and where you want sharper signal, layer in a roof-age range and modeled storm history per address so the homeowners whose roofs are both aging out and storm-worn rise to the top. Then call the top of the list first instead of blasting everyone equally.

How many times should I follow up before giving up on a cold lead?

Plan for roughly eight touches over 30 days across email, text, phone, and direct mail for your high-priority due roofs — most replies land on touches three through eight, so quitting at touch two leaves the majority on the table. Cap it there to stay assertive without becoming harassment, and always pull anyone who engages out of the automation into a live conversation immediately.

It depends on consent. You need prior express consent to send marketing texts, every text needs clear sender ID and an easy opt-out, and you must honor STOP instantly and permanently. Scrub phone numbers against the National Do Not Call Registry and your own internal opt-out list before any calling campaign — the FTC enforces violations at thousands of dollars per call. A past customer who gave you their number stands on firmer ground than a purchased list; know which you have.

What's the best channel to re-engage cold roofing leads?

A sequence across several channels beats any single one, because different homeowners answer different channels. Email is cheapest for the soft re-introduction, SMS has the highest reply rate (and the strictest consent rules), the phone converts best for warm contacts you've already met, and direct mail sidesteps deliverability and consent headaches entirely — especially powerful when you mail only the addresses whose roofs are actually due.

How do I re-engage cold leads from a storm that stalled in insurance limbo?

Stay strictly on the documentation side. Re-inspect, photograph the damage thoroughly, and write an accurate itemized estimate of the repair, then hand it to the homeowner so they have a clear picture. The homeowner files the claim and the insurer decides coverage. You may never negotiate or adjust the claim for a fee, interpret their policy, promise a payout or approval, waive or 'eat' a deductible, or advertise a 'free roof' — those cross into public adjusting and fraud.

How is re-engaging old leads cheaper than buying new ones?

You already paid to acquire every name in your CRM, so the only cost is the outreach. The homeowner already knows your brand and has already let you on their property, the roofs can be pre-qualified by age and storm exposure, and nobody else is working that exact list. Track cost per booked inspection from the old book against your paid cost-per-lead — it's routinely a fraction, which is the number to put in front of ownership.

Should I clean my list before I start, or just start calling?

Clean first, always. De-dupe by address and phone, validate emails (a bounce rate above ~2% gets you throttled by mailbox providers), scrub phones against DNC and internal opt-outs, and verify the property address still ties to the same owner. One blast to dirty data can wreck your sender reputation and trigger do-not-call violations. The boring hygiene step protects every campaign you'll ever send.

How does RoofPredict help with re-engaging a cold roofing list?

Feed in your cleaned list of addresses and it returns, per home, a roof-age range estimated from aerial imagery plus storm history modeled on that specific roof — so you can re-sort the whole cold pile and call the roofs that are both aging out and storm-worn first, while retiring contacts whose roofs read as recently replaced. Honest limits: age comes back as a range, not an exact install date, and storm exposure is modeled odds and severity, not proof of damage or a claim. It ranks which ladders go up first; the inspection still confirms the truth.

The Roofline by RoofPredict

Stay Ahead of Roofing Market Changes

Join The Roofline by RoofPredict for weekly roofing intelligence: material price signals, storm demand, insurance and regulatory updates, sales tactics, and local contractor opportunities.

By signing up, you agree to receive The Roofline by RoofPredict. Unsubscribe anytime.

Sources

  1. NRCA — National Roofing Contractors Associationnrca.net
  2. IBHS — Insurance Institute for Business & Home Safety: Roofing Researchibhs.org
  3. NOAA Storm Prediction Center — Severe Weather Reports & Climatologyspc.noaa.gov
  4. National Weather Service — Hail and Severe Thunderstorm Informationweather.gov
  5. FTC — National Do Not Call Registry (Business Guidance)ftc.gov
  6. FTC — Telemarketing Sales Ruleftc.gov
  7. FTC — CAN-SPAM Act: A Compliance Guide for Businessftc.gov
  8. FCC — Telephone Consumer Protection Act (TCPA) Rulesfcc.gov
  9. NAIC — Public Adjusters (Consumer Information)naic.org
  10. Texas Department of Insurance — Public Insurance Adjusterstdi.texas.gov
  11. Verisk / Xactimate — Property Estimating Solutionsverisk.com
  12. USPS — Every Door Direct Mail (EDDM)usps.com
  13. U.S. Census Bureau — American Housing Surveycensus.gov
  14. RoofPredictroofpredict.com

Related Articles