Skip to main content

Which Old Roofing Estimates to Follow Up On First

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

Every roofing company is sitting on money it already paid for. Somebody drove out, climbed a ladder or flew a drone, measured the roof, wrote the bid, shook a hand, and then... nothing. The homeowner said they'd think about it. The file went quiet. Six months later that estimate is a line in a CRM nobody opens, or worse, a PDF on a sales rep's laptop that left with the sales rep.

The cost of getting that lead in the first place is already sunk. You spent the gas, the payroll, the measurement fee, the proposal-software seat. A brand-new lead costs you all of that again. An old estimate costs you a phone call. So the math on re-engaging dead bids is not subtle — it is the cheapest pipeline you own.

But here is the part most owners get wrong: they treat the backlog as one undifferentiated pile and either ignore it completely or blast every old name with the same "just checking in" text. Both are wrong. A 400-estimate backlog is not 400 equal opportunities. Some of those roofs are now past the point of no return and the homeowner is finally scared. Some took a hailstorm two weeks ago. Some belonged to people who were never going to buy and never will. Your job is not to call all 400 — it is to figure out which 40 to call this week, in what order, and with what to say.

That ranking problem is the whole game. Work the list in the wrong order and you'll burn your best afternoon on tire-kickers and call the motivated homeowner the day after they signed with the guy down the road. Work it in the right order and a dead pipeline turns into next month's production schedule. Below is the system — the signals that actually predict who buys, how to score them, the exact call cadence, the worked examples, and the edge cases that trip up even experienced sales managers.

Why Old Estimates Are Worth More Than New Leads

Before ranking anything, it helps to be honest about why this pile is so valuable, because the reason changes how you work it.

An old estimate is not a cold lead. It is a warm relationship that went cold. That distinction matters. With a cold lead you are a stranger interrupting someone's dinner. With an old estimate, you already:

  • Have the address and you've physically been to the roof.
  • Have measurements and a scope already written.
  • Have a price you quoted (and a paper trail of how you arrived at it).
  • Know their name, their objection, and usually why they stalled.
  • Have permission — they asked you to come out once already.

The homeowner who got a bid from you and didn't buy almost never decided you were wrong. They got distracted, ran short on cash that month, got a second opinion, had a spouse who wasn't ready, or simply didn't feel enough urgency yet. None of those are permanent. Most of them expire.

Think about the lifecycle of the average residential reroof decision. The homeowner notices a problem — a stain on the ceiling, a few shingles in the yard after a storm, a neighbor getting a new roof. They get one to three bids. Then a long, quiet deliberation period that can run anywhere from a couple of weeks to a couple of years. During that window the roof keeps aging, the next storm keeps coming, and the homeowner's anxiety keeps building until something tips them over. The contractor who is present at the tipping point wins. Your follow-up system exists to make sure that's you.

The decay curve of a quote

Not all old estimates age the same way. A useful mental model: a quote has two clocks running against it.

Clock one is the relationship clock. The longer it's been since you talked, the colder the rapport and the more likely a competitor has been in the home. This clock runs fast in the first 90 days and then flattens — someone who didn't buy at 18 months isn't much colder at 24 months.

Clock two is the roof clock. The roof is physically older than when you quoted it. A 17-year-old roof you bid is a 19-year-old roof now. Every season it crosses further into replacement territory, and somewhere in that window the homeowner stops debating whether and starts debating who. This clock works in your favor.

The sweet spot for re-engagement is when the roof clock has pushed the home into clear replacement territory while the relationship clock is still warm enough that they remember you fondly. Ranking your backlog is largely about reading both clocks per address.

The Signals That Actually Predict Who Buys

Here are the inputs that move an old estimate up or down the priority list. They're ordered roughly by how strongly they predict a near-term close. Pull what you can from your records; estimate the rest.

1. Roof age — where the roof sits on its lifespan now

This is the single strongest signal, and the one most contractors don't track properly. An asphalt shingle roof's realistic service life depends on the product and climate, but the practical replacement window for standard architectural shingles in most of the country runs roughly 15 to 25 years, and 3-tab tends to go sooner. A roof you quoted at "about 16 years old" three years ago is now pushing 19 — squarely in the zone where leaks, granule loss, and insurer pressure start forcing the decision.

The trick is that you usually didn't write down a precise age, and the homeowner's guess was a guess. What you want is a defensible age range per address — "this roof is somewhere between 18 and 22 years old" — because a range is honest and a range is enough to rank by. A roof in a 6–10 year range goes to the bottom. A roof in an 18–24 year range goes to the top.

2. A storm hit the roof since you quoted

If hail or damaging wind passed over that address after your original bid, the situation changed materially. The homeowner who wasn't ready last year may now have visible damage, missing shingles, or an insurer telling them to get an inspection. This is the highest-urgency signal there is, and it has a short fuse — storm-motivated homeowners move fast and so do your competitors.

The nuance most people miss: "a storm hit the area" is not the same as "a storm hit this roof hard enough to matter." Hail swaths are narrow and patchy. Wind funnels down some streets and skips others. A blanket "there was hail in your county" mailer is weak. Knowing that this specific roof sat under a damaging core, paired with its age, is what turns a follow-up into an appointment. (More on getting that per-roof read in a moment.)

3. How they stalled — the original objection

Go back to the note your rep left (you do require a disposition note on every lost bid, right? if not, start). The reason they didn't buy tells you whether time is your friend:

  • "Too expensive / not in the budget right now" — time is neutral-to-good. Budgets reset; tax refunds land; the roof gets worse. Worth a call.
  • "Getting other bids" — if it's been more than a few weeks and they didn't go with anyone, the project stalled entirely. Very worth a call; the field is quiet now.
  • "Spouse / partner not ready" or "bad timing" — time is strongly in your favor. These almost always thaw.
  • "We're selling the house" — usually dead unless the sale fell through; low priority.
  • "Roof is fine, just wanted a number" — depends entirely on roof age. If the roof is old, the number-shopper becomes a buyer when it leaks.
  • "Going with my brother-in-law / a friend" — usually dead; deprioritize.

4. Time since the estimate (and how you read it)

Counterintuitively, the very recent dead bids (under 60–90 days) are often not your best calls — they're still in the active deliberation, may still be collecting bids, and a pushy follow-up reads as desperate. The 4-to-18-month range is frequently the richest: long enough that the original deliberation collapsed without a decision, recent enough that they remember you. Past 24 months, treat it as a near-cold lead that happens to have a great paper trail — still worth a touch, but expect to re-earn the relationship.

5. Quote value and job type

A full reroof bid is worth more of your time than a small repair quote, all else equal — but don't ignore repairs, because an old repair quote on an old roof is often a reroof waiting to happen. Sort so that high-value full-replacement bids on aging roofs float to the top.

6. Engagement signals you may already have

Did they open your last email? Reply to a text? Click a link? Call back and leave a voicemail you never returned (it happens)? Any sign of life in the last 90 days is a strong buy signal and should jump that record up the list regardless of age.

7. Neighborhood and clustering

If three of your old bids are on the same street and one of those homes is now getting a new roof from somebody, the whole block just got warmer — neighbors notice neighbors. Clustering also makes the economics work: if you're driving out anyway, an old estimate two doors down is nearly free to re-touch.

8. Life-stage and ownership signals

A quieter signal that's easy to miss: did anything change at the home itself? A property that sold and changed hands since your quote is a different conversation — the new owner never met you, but they also inherited an aging roof and a recent inspection-driven anxiety from buying the place. If you can tell a home changed owners, that's not a dead record, it's a fresh one at an address you already measured. Likewise, a homeowner who got a new garage, a deck, or solar since your visit has shown they'll spend on the house and have a contractor's number in their phone. These signals are softer than age and storm, so weight them lightly, but a record that's otherwise borderline can be tipped into the call tier by a clear sign the household is in spending mode.

How the signals interact — why you can't rank on one alone

No single signal is decisive, and the mistake is ranking on just one. A brand-new storm on a 7-year-old roof is mostly noise — that roof shrugs off pea-sized hail and a young homeowner isn't ready to reroof. A 22-year-old roof with no storm and a dead-end "chose my brother-in-law" objection is old but going nowhere. The records that pay are the ones where signals stack: old roof and recent storm and an objection that expired and a flicker of engagement. That's why the scoring model adds points across categories instead of sorting on a single column — you want the records that light up on several axes at once, because that combination is what actually predicts a signature this month. A roof that's old, that a storm has plausibly worked over, where the homeowner's stall reason is now stale and they just opened your email is not a maybe. It's a today call.

A Simple Scoring System You Can Build This Week

You don't need fancy software to start. You need a spreadsheet and twenty minutes of discipline. Here's a scoring model that's worked for sales teams that run lean. Assign points per signal, total them, sort descending, and work top-down.

The scoring table

Signal Condition Points
Roof age (now) 20+ years 30
15–19 years 22
10–14 years 10
Under 10 years 0
Storm since quote Damaging hail/wind hit this roof 25
Storm in the area, this roof uncertain 10
No notable storm 0
Original objection Budget / timing / spouse / stalled bid race 15
Pure price shopper, old roof 8
Selling house / chose a friend -10
Time since quote 4–18 months 12
18–24 months 6
Under 4 months 3
Over 24 months 2
Recent engagement Opened/clicked/replied in last 90 days 15
Job type / value Full reroof bid 8
Large repair on old roof 5
Clustering Another active job/bid on same street 6

Anything scoring 55+ is a hot record — call it first, this week. 35–54 is a solid second tier — work it next, mostly by phone and personalized text. Under 35 goes into a low-effort nurture: a periodic mailer or email, not a live phone call, until something changes (a storm, an engagement signal) and bumps the score.

Worked example: ranking five old bids

Walk through a real-feeling sample so the model isn't abstract.

Bid A — 412 Marigold Ln. Quoted 14 months ago, full reroof, $14,200. Roof was "about 18" then, so ~19 now. Objection note: "wife wants to wait till spring." No storm. No engagement since.

  • Roof age 15–19 → 22
  • No storm → 0
  • Timing objection → 15
  • 4–18 months → 12
  • Full reroof → 8
  • Total: 57 → hot. Call first. Spring came and went twice; the stall reason has long expired and the roof is now solidly in the zone.

Bid B — 88 Cedar Crest. Quoted 5 months ago, repair, $1,900. Roof ~9 years. Objection: "just getting a number for a small leak." No storm.

  • Roof under 10 → 0
  • No storm → 0
  • Price shopper, but roof young → 0 (the "old roof" condition isn't met)
  • Under 4 months? No, 5 months, so 4–18 → 12
  • Large repair? It's small → 0
  • Total: 12 → nurture. Young roof, small job, recent. Email it, don't burn a call.

Bid C — 1240 Ridge Rd. Quoted 9 months ago, full reroof, $18,600. Roof ~21 now. Hail event crossed this street six weeks ago. Objection: "getting two other bids." Opened your last email last month.

  • Roof 20+ → 30
  • Storm hit this roof → 25
  • Stalled bid race → 15
  • 4–18 months → 12
  • Recent engagement → 15
  • Full reroof → 8
  • Total: 105 → drop everything. Old roof, fresh storm, stalled comparison, and they just opened your email. This is the one that pays for the whole exercise. Call today.

Bid D — 7 Old Mill Ct. Quoted 26 months ago, full reroof, $16,000. Roof ~17 now. Objection: "going with my brother-in-law's crew." No storm, no engagement.

  • Roof 15–19 → 22
  • No storm → 0
  • Chose a friend → -10
  • Over 24 months → 2
  • Full reroof → 8
  • Total: 22 → low nurture. The brother-in-law may never have shown up, so a single soft touch is worth it — but it's not a priority call.

Bid E — 305 Birchwood. Quoted 11 months ago, full reroof, $13,400. Roof ~16 now. Objection: "budget, maybe next year." Same street as Bid C. No direct storm read on this roof, but the area got the same event.

  • Roof 15–19 → 22
  • Storm in area, this roof uncertain → 10
  • Budget/timing → 15
  • 4–18 months → 12
  • Full reroof → 8
  • Clustering (Bid C active nearby) → 6
  • Total: 73 → hot. "Next year" is now. And since you're already going to Ridge Rd for Bid C, Birchwood is on the way.

Sorted, your week's call order is C, E, A, D, B — and B probably never gets a live call at all. That ordering is the entire point. Without scoring, a rep tends to call the most recent bid (B) first because it's top of the CRM, which is exactly backwards.

The Roof-Age Problem — and Where RoofPredict Fits

The scoring model above leans hardest on two signals: how old the roof is now, and whether a storm actually worked over this specific roof. Those are also the two signals roofers have the worst data on, because most CRMs store a price and a date, not a roof age you can trust or a per-address storm history.

Most of the easy data sources fail you here. A county record or a Zillow listing gives you year the house was built — which is useless the moment a roof has been replaced once, because the re-roof is invisible to those records. A 1985 house may have a 4-year-old roof. Measurement tools like aerial-takeoff platforms tell you the roof's size and pitch beautifully, but not its age and not its condition. They answer "how big is the roof," not "is this roof due." Those are different questions.

This is the gap RoofPredict was built to close. Feed it your backlog of addresses and it returns, per home, a roof-age range read from aerial imagery (a range like 18–22 years, not a fake-precise date — anyone selling you an exact birthday for a roof from the air is overselling it), plus a per-roof storm read that models hail and wind on that specific roof rather than just telling you it hailed somewhere in the county. A hail map shows you where it hailed. Modeling the storm on each roof shows you which roofs it likely wore out. Paired together, age plus storm exposure is exactly the two-clock read your scoring model wants, computed for every address in your dead-estimate list at once.

In practice that means you can take the 400-row spreadsheet of old bids you'd otherwise have to eyeball one at a time, enrich it with an age range and a storm signal per address, and let the sort do the triage. The records that light up are the ones where the roof has aged into the replacement window and a storm has had a go at it — your Bid C's and Bid E's — surfaced automatically instead of found by luck.

The honest limits, because a tight trade compares notes: an age range is a range, not a guarantee, and a modeled storm read is odds, not proof of damage — it tells you which roofs to go look at, never that a given roof is definitely damaged. Nobody can certify hail damage from the air, and you shouldn't claim they can. What the data does is point your phone calls and your truck at the right doors first, which is the whole job of a follow-up system. You still have to make the call, get on the roof, and earn the sale. RoofPredict just makes sure the doors you start with are the ones most likely to open.

The Follow-Up Cadence That Actually Lands Appointments

Ranking tells you who to call. Cadence tells you how so you don't waste the ranking. A few principles that hold up across thousands of follow-up attempts:

Lead with the phone, not the text. For a warm-but-cold old estimate, a live conversation re-opens the relationship in a way a text can't. Texts are a great follow to a missed call, not a replacement for the call.

Have a reason to call that isn't "checking in." "Just following up" is the weakest opener in sales because it puts the burden on the homeowner to remember why they should care. A reason resets the whole dynamic. Good reasons you legitimately have: the roof is now a couple years older and you noticed it's crossing into the range where you'd recommend planning; a storm came through their area and you're re-checking roofs you'd previously looked at; you've got a crew working two streets over and can swing by. Each is true and each gives the homeowner a fresh hook.

Reference the prior visit specifically. "I was out at your place on Marigold back in spring of last year and wrote you up for the architectural shingle in the weathered-wood color" instantly separates you from every cold-caller. You're not a stranger; you're the guy who already knows their roof.

A practical 3-touch sequence for a hot record

Touch 1 — Phone call (day 1). Lead with the reason and the specific reference. If they pick up, your goal is a re-inspection appointment, not a re-quote over the phone. If voicemail, leave a short one naming the reason and say you'll text the details.

Touch 2 — Personal text (day 1, after a missed call). "Hi [Name], [Your Name] from [Company] — left you a voicemail. I was out at your roof on [street] last [season]; with the [storm / it being a couple years on now] I wanted to recheck it for you. Want me to swing by [day] or [day]?" Two concrete day options beat "let me know when works."

Touch 3 — Value follow (day 3–4). If still no response, send something useful, not nagging: a photo of the original roof if you have it, a short note on what you'd look for given the roof's age, or a homeowner-facing one-pager. Then give it space — a hot record that goes quiet after three touches moves to a 30-day nurture, not a daily pester.

For second-tier (35–54) records, compress this to a call plus one text and a longer gap. For nurture-tier records, skip live calls entirely and run them on a quarterly mailer or email until a score-changing event moves them up.

Scripts that survive contact with a real homeowner

The reason-led opener does the heavy lifting, but reps freeze on the next ten seconds, so give them word-for-word lines to fall back on.

Opener (roof-age reason): "Hi [Name], it's [Rep] over at [Company] — I was out at your roof on [street] back in [season/year] and wrote you up for the [shingle type]. I keep a list of roofs I've looked at, and yours has crossed into the age where I'd want to recheck it before another winter. Mind if I swing by [day] or [day] and take another look? No charge."

Opener (storm reason): "Hi [Name], [Rep] from [Company]. I was out at your roof last [season]. We had that storm come through [area] a few weeks back, so I'm re-checking the roofs I'd previously looked at. I'd like to get up there, document the condition with photos, and write you an accurate estimate that's yours to keep. Is [day] or [day] better?"

When they say "remind me what you quoted?": Don't re-quote on the phone — that turns a relationship call into a price negotiation with no roof access. "I'd rather not quote from memory and be wrong — a lot can change in [X] months. Let me get back up there, see where it's at now, and give you a current number that's actually accurate. Takes me twenty minutes."

When they say "we already got it done": Gracious exit, and harvest the intel. "Glad you got it handled — who'd you end up going with, if you don't mind?" Then mark the record won-by-competitor with the name, so you stop calling it and you learn who keeps beating you.

When they say "now's still not a good time": Don't push; set the next touch. "Totally fair. The roof's only getting older, so I'd hate to lose track of you — okay if I check back in around [season]?" Then log a future task. That's a kept relationship, not a lost call.

What 'book the inspection, not the re-quote' means and why it matters

The goal of every hot-tier call is one thing: getting back on the roof. Reps who try to re-sell over the phone lose, because a number with no fresh inspection is easy to say no to and impossible to defend. A re-inspection resets everything — you're back in the home, the roof has visibly aged, you can show the homeowner the granule loss in the gutters and the photos side by side with last time, and you write a current, accurate estimate from a current, accurate roof. The phone call's only job is to put your ladder back against their house. Measure your follow-up reps on inspections booked, not calls made.

A note on cadence discipline

The most common failure isn't calling too little — it's calling once, getting voicemail, and quietly giving up. Studies of sales follow-up consistently show most contacts happen after multiple attempts, yet most reps stop after one or two. Build the three-touch sequence into the CRM as tasks so it happens whether or not the rep "feels like it." The ranking decides who; the task automation decides that it actually happens.

When a storm passes over a batch of your old estimates, you've got a powerful re-engagement reason and a minefield to walk at the same time. The reason is legitimate and strong: you previously inspected this roof, a damaging event has since occurred, and re-checking it is a real service. The minefield is everything you say about insurance.

Here's the bright line, and it matters because crossing it is illegal in most states and gets contractors fined and sued. As a roofer you may climb the roof, thoroughly document its condition with dated photos, and write an accurate repair estimate for the work you'd do — aligned to standard estimating practice — and hand that documentation and estimate to the homeowner. You may state facts about your own scope of work to the carrier. That is your lane and it's a valuable one.

What you may not do, for a fee, is negotiate or "handle" the homeowner's claim, interpret their policy or what's covered, promise a specific payout or that the claim will be approved, promise the deductible will be waived/absorbed/discounted/"taken care of," advertise a "free roof," or represent the homeowner against their insurer. Those acts are unlicensed public adjusting in most jurisdictions, and several of them — eating the deductible, promising approval — are flat-out illegal regardless of licensing.

The do-not-say list, in plain words

Train every rep who works storm re-engagement to never say:

  • "We'll get your roof approved / get this covered."
  • "You won't pay anything out of pocket" / "we'll cover your deductible" / "the deductible disappears."
  • "Free roof."
  • "We'll handle the insurance company for you" / "we'll deal with the adjuster."
  • "This is definitely covered" or any interpretation of their policy.
  • Any specific promised dollar amount the insurer will pay.

What to say instead — the safe, strong frame

  • "A storm came through since I was last out at your roof. I'd like to get up there, document the condition thoroughly with photos, and write you an accurate repair estimate. That's yours to keep."
  • "If you decide to file a claim, that's between you and your insurer — they decide what's covered. What I can do is make sure the damage is documented clearly and the estimate is accurate, so you and they are working from good information."
  • "I'll document what I find and put it in writing. You file, they make the coverage call, and I'm here to do the repair work and stand behind it."

The frame is simple: you document, you estimate, you repair. The homeowner files. The insurer decides. Stay in your lane and storm re-engagement is one of the strongest, most defensible reasons to reopen an old estimate. Wander out of it and you've handed a regulator and a plaintiff's attorney a gift.

This is also why a per-roof storm read beats a county-wide hail alert for this work: it points you at the specific old estimates where getting back on the roof to document is genuinely warranted, which keeps your storm-season effort focused on roofs that plausibly have something to document rather than spraying "there was hail near you" at homes the core missed.

Setting Up Your CRM So This Runs Itself

A scoring model you run by hand once is a one-time win. Built into your process, it's a quarterly machine. A few configuration moves make the difference.

Capture the right fields at quote time

The re-engagement quality of a bid is decided the day you write it. Require these fields before a rep can mark a quote "lost":

  • Estimated roof age range at time of quote (e.g., "15–18 yrs"), even if it's the rep's eyeball estimate.
  • Disposition reason from a fixed dropdown (budget, timing, spouse, other bids, chose competitor, selling, price-shopping). Free-text notes alone are useless for sorting.
  • Quote value and job type.
  • Photos of the roof, saved to the record.
  • Preferred contact method and best time, captured during the visit.

The single highest-leverage one is the disposition reason as a structured field, because it's the input your scoring model needs and the one reps are laziest about.

Build the scoring as a calculated field

Most modern CRMs let you compute a field from other fields. Recreate the scoring table as a formula so every record carries a live priority score that updates as inputs change (time since quote ticks up, a storm flag flips on). Then a saved view sorted by score descending is your call list. No human re-sorts anything.

Re-enrich on a schedule

The two best signals — roof age now and storm exposure — drift over time, which is the good news. Once a quarter, push your open-but-lost addresses through an enrichment pass so the age ranges advance and any new storm exposure gets flagged. Records that were nurture-tier last quarter cross into hot-tier on their own. This is exactly the kind of batch enrichment RoofPredict is meant for: hand it the list of addresses, get back updated age ranges and storm reads, and let your calculated score re-rank itself.

Automate the cadence as tasks

When a record's score crosses the hot threshold, auto-generate the three-touch task sequence and assign it. The rep opens their day to a prioritized, pre-loaded call list with the reason-to-call already in the notes. The ranking and the discipline both happen without anyone deciding to do them.

Common Mistakes That Quietly Kill the Backlog

Even teams that try to work old estimates leave most of the value on the table because of a handful of repeatable errors.

Calling newest-first. The CRM shows the most recent activity at top, so reps call the freshest dead bid first — which is usually the least ready, since it's still in active deliberation. Sort by readiness (score), not recency.

"Just checking in" with no reason. Covered above, but it's worth repeating because it's the number-one cadence killer. No reason, no traction.

Blasting the whole list with one message. A mass "we have openings, call us" text to 400 names produces opt-outs and spam complaints and converts almost nobody, while burning the goodwill you'd need for a personal touch later. Segment, then personalize.

Treating roof age as static. The bid said "15 years old" three years ago, so the rep still thinks of it as a 15-year-old roof. It's an 18-year-old roof now, which changes the urgency and the pitch entirely. Age your records.

No disposition notes, so no learning. If you don't know why each bid stalled, you can't rank by it and you can't tailor the re-open. The thirty seconds of a structured note at quote time is the cheapest investment in your whole pipeline.

Letting estimates leave with the rep. When a salesperson quits, their quotes shouldn't quit with them. Centralize every bid in the CRM, not on laptops and personal phones. Turnover is the single biggest leak in most roofing pipelines.

Stopping after one attempt. Most re-engagement contacts succeed on a later touch, not the first. One voicemail is not a follow-up; it's the start of one.

Over-promising on storm jobs. The fastest way to torch a re-engaged storm lead — and your license — is a deductible or "free roof" promise. Document, estimate, repair. Let the homeowner file and the insurer decide.

Forgetting to measure what's working. Teams run the backlog once, book a few jobs, and never track which signals and which scripts actually produced the signatures. Log the outcome of every re-engaged record — booked, dead, won-by-competitor — against its score and its reason-to-call. After a quarter you'll know whether your storm opener beats your age opener, whether 55+ records really do close at a higher rate, and where to set your thresholds. The scoring model is a starting hypothesis; your own close data is what tunes it. Without that feedback you're guessing forever.

A 30-Day Plan to Mine Your Backlog

If you're starting cold, here's a concrete month to turn a dormant pipeline into booked inspections.

Week 1 — Consolidate and clean. Pull every unsold estimate from the last 24 months into one spreadsheet: address, date, value, job type, original roof-age guess, disposition reason, last contact. Hunt down the bids living on reps' laptops and phones. Expect the list to be messier and longer than you thought — that's the gold.

Week 2 — Enrich and score. Add a current roof-age range and a storm-since-quote flag per address (eyeball it from your notes, or run the list through an enrichment pass to get age ranges and per-roof storm reads at once). Apply the scoring table. Sort descending. You now have a ranked call list and, usually, a surprising number of 55+ records nobody had touched.

Week 3 — Work the hot tier. Run the three-touch cadence on everything 55+, phone-first, reason-led, referencing the prior visit. Book inspections, not phone re-quotes. Track which reasons-to-call land best so you can sharpen the script.

Week 4 — Systematize. Move the scoring into the CRM as a calculated field. Make a saved view sorted by score. Build the auto-task cadence. Add the required disposition and roof-age fields to your quote workflow so new lost bids feed the machine. Schedule the quarterly re-enrichment so the list re-ranks itself going forward.

Do that once and you've converted a pile of sunk cost into a renewable, self-sorting source of work — the cheapest pipeline you own, worked in the order most likely to pay.

The Bottom Line

Which old estimates should you follow up on first? The ones where the roof has aged into clear replacement territory, a storm has plausibly worked it over since you quoted, the original stall reason has since expired, and there's a flicker of recent engagement — in roughly that order of weight. Score every dead bid by those signals, sort descending, and work the top of the list with a reason-led, phone-first, three-touch cadence. Skip the live calls on young roofs and dead-end objections; nurture those by mail until something changes.

The ranking is the leverage. A 400-estimate backlog isn't 400 phone calls — it's maybe 40 that matter this month, and the trick is knowing which 40 and in what order. The two signals that decide it, roof age now and per-roof storm exposure, are also the two most roofers track worst, which is exactly where pulling an age range and a storm read per address turns guesswork into a sorted call list.

If you want that age-and-storm read run across your whole book of old estimates so the right doors float to the top automatically, that's the problem RoofPredict solves — hand us your list of addresses and get back a roof-age range and storm signal per home, then let your own scoring do the triage. See how it works. Either way, build the system. The money's already in your pipeline; you just have to call it in the right order.

FAQ

How old does an estimate have to be before it's worth following up on?

There's no hard cutoff — what matters is the roof and the reason it stalled, not the calendar. That said, the 4-to-18-month window tends to be richest: long enough that the original deliberation collapsed without a decision, recent enough that the homeowner still remembers you. Bids under 60–90 days are often still in active deliberation and a push reads as desperate. Past 24 months, treat it as a near-cold lead with a great paper trail — still worth a single soft touch, especially if the roof has aged into replacement range.

What's the single most important signal for ranking old roofing bids?

Roof age right now. A roof you quoted at 'about 16' three years ago is pushing 19 today — squarely in the window where leaks, granule loss, and insurer pressure force the decision. Pair it with whether a storm has hit that specific roof since you quoted, and you've got the two strongest predictors of a near-term close. Both are also the signals most CRMs track worst, which is why ranking by them gives you an edge over competitors still calling newest-first.

Should I call or text an old estimate first?

Call first. A warm-but-cold relationship reopens far better in a live conversation than over text. Lead with a specific reason that isn't 'just checking in' — the roof being a couple years older and crossing into replacement range, a recent storm, or a crew working nearby — and reference the original visit by detail ('I wrote you up for the weathered-wood architectural shingle last spring'). Use text as the follow to a missed call, not the replacement for the call.

Why shouldn't I just blast my whole old-estimate list with one text or email?

Because a mass 'we have openings, call us' message converts almost nobody, generates opt-outs and spam complaints, and burns the goodwill you'd need for a personal touch later. Old estimates aren't cold leads — they're warm relationships that went cold, and they respond to personalization that proves you remember their specific roof. Segment by score first, then personalize the top tier. Save broad messaging for the low-priority nurture tier where a live call isn't worth it.

How do I know a roof's current age if I never wrote it down?

You usually can't get an exact date, and you don't need one — you need a defensible range. Public records and listing sites only give you the year the house was built, which is useless once a roof has been replaced because the re-roof is invisible to those records. Your own rep's original eyeball estimate plus the years elapsed gets you close. For a whole backlog at once, an aerial roof-age read returns a range per address (like 18–22 years) you can rank by. A range is honest and a range is enough to sort the list.

A storm just hit an area where I have a bunch of old bids. What should I do?

Re-engage, but carefully. The reason is legitimate and strong: you previously inspected these roofs and a damaging event has since occurred, so re-checking them is a real service. Offer to climb the roof, document its condition with dated photos, and write an accurate repair estimate the homeowner keeps. What you must not do is promise the claim will be approved, promise a specific payout, offer to waive or 'absorb' the deductible, advertise a 'free roof,' or offer to handle/negotiate the claim with the insurer — those are unlicensed public adjusting and several are illegal regardless of licensing. Document, estimate, repair. The homeowner files; the insurer decides coverage.

What exactly should my reps never say on a storm follow-up?

Never say 'we'll get it approved,' 'you won't pay anything out of pocket,' 'we'll cover/waive your deductible,' 'free roof,' 'we'll handle the insurance company for you,' 'this is definitely covered,' or any specific dollar amount the insurer will pay. Instead: 'A storm came through since I was last out; I'd like to document the roof thoroughly and write you an accurate estimate that's yours to keep. If you file, your insurer decides what's covered.' The safe frame is document, estimate, repair — never interpret policy, promise approval, or touch the deductible.

How does RoofPredict help with re-engaging old estimates?

It enriches your backlog of addresses with the two signals your CRM tracks worst: a roof-age range read from aerial imagery (a range, like 18–22 years, not a fake-precise date), and a per-roof storm read that models hail and wind on each specific roof rather than just flagging that it hailed somewhere in the county. Run your whole list of old bids through it and the records most likely to buy — old roof, recent storm — surface automatically so your scoring sorts them to the top. Honest limits: an age range is a range, and a storm read is odds, not proof of damage. It tells you which doors to start with; you still make the call and get on the roof.

How many follow-up attempts should I make before giving up on a record?

More than most reps do — the most common failure is calling once, hitting voicemail, and quietly quitting. For a hot record, run a three-touch sequence: a phone call, a personal text after the missed call, and a value-add follow a few days later. If it goes quiet after that, move it to a 30-day nurture rather than pestering daily. Build the sequence into your CRM as automatic tasks so it happens whether or not the rep feels like it. Most re-engagement contacts succeed on a later touch, not the first.

How do I keep this from being a one-time project I never repeat?

Build it into the quote workflow and automate the re-ranking. Require a structured disposition reason and a roof-age range on every lost bid. Recreate the scoring table as a calculated field so each record carries a live priority score. Make a saved view sorted by that score — that view is your call list, re-sorted automatically. Then re-enrich the list quarterly so age ranges advance and new storm exposure flags flip on, which pushes nurture-tier records into hot-tier on their own. The pile re-sorts itself and feeds you a fresh prioritized list every quarter.

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. National Roofing Contractors Association (NRCA)nrca.net
  2. Asphalt Roofing Manufacturers Association (ARMA)asphaltroofing.org
  3. Insurance Institute for Business & Home Safety (IBHS) — Hailibhs.org
  4. NOAA National Severe Storms Laboratory — Severe Weather 101: Hailnssl.noaa.gov
  5. NOAA Storm Prediction Centerspc.noaa.gov
  6. National Weather Service — Severe Weather Awarenessweather.gov
  7. OSHA — Fall Protection in Residential Constructionosha.gov
  8. Federal Trade Commission — Hiring a Contractorconsumer.ftc.gov
  9. National Association of Insurance Commissioners — Public Adjustersnaic.org
  10. Texas Department of Insurance — Public Insurance Adjusterstdi.texas.gov
  11. International Code Council — International Residential Code (IRC)codes.iccsafe.org
  12. U.S. Bureau of Labor Statistics — Roofers Occupational Outlookbls.gov
  13. U.S. Census Bureau — American Housing Surveycensus.gov
  14. RoofPredictroofpredict.com

Related Articles