Turn Old Roofing Quotes Into Jobs: A Practical Playbook for Reviving Dead Estimates
On this page
Walk into almost any roofing company's office and you will find the same thing: a CRM, a shared drive, or a stack of folders full of estimates that never closed. Bids written for $9,400, $14,200, $28,000. Homeowners who said "let me think about it," "we're getting one more quote," or just stopped answering. Most of those numbers get written off as dead. They are not dead. They are aging, and aging changes everything about a roof and about the person who owns it.
The contractor who learns to work the back catalog of old quotes has a quiet advantage. You already paid to generate those leads. You already drove out, climbed up, measured, and built a price. The cost of acquiring that homeowner is already sunk. Reviving even a fraction of them is the cheapest revenue in the entire business, and it does not require a single new lead source, ad dollar, or door knocked.
The problem is that most shops have no system for it. They send a half-hearted "just checking in" text three weeks later, hear nothing, and move on. That is not follow-up. That is hoping. What follows is the actual machinery: how to pull and clean your old estimates, how to rank them by who is genuinely due, what to say and when to say it, and how to use roof age and storm history to time the outreach so it lands when the homeowner is finally ready to act. The whole thing is built to be run by a small team with a normal CRM, not a marketing department.
Why old roofing quotes are worth more than you think
Start with the math, because the math is what gets a sales manager to actually carve out time for this.
Say your shop wrote 400 estimates last year and closed 120 of them. That is a 30% close rate, which is healthy. It also means 280 estimates did not turn into jobs. Some of those were tire-kickers, some bought from a competitor, some were never going to do anything. But a meaningful slice, often 15 to 25%, fall into a category that pros underrate: deferred buyers. They needed a roof, knew it, got the quote, and then life happened. The financing fell through, a spouse said wait, a kid started college, or the leak stopped after a dry spell and the urgency evaporated.
Deferred buyers do not disappear. The roof keeps aging. The shingles keep losing granules. The next wind event finds the same weak field it found last time. And the homeowner who told you "not right now" eighteen months ago is, today, a very different prospect than a cold name on a list.
Here is the part that matters for your time: a homeowner who already let you on their roof and already saw a number from you has cleared two of the hardest hurdles in the sale. They trust you enough to do business, and they have an anchor price. When they re-enter the market, you are not starting over. You are the incumbent. The cost to re-engage them is a phone call and a well-timed message, not a $60 to $200 lead fee.
Let me put rough numbers on it. A 280-estimate backlog, worked properly over a year, might surface 40 to 60 genuinely live deferred buyers. If your average job is $12,000 and you close even a third of those, that is 13 to 20 jobs and roughly $160,000 to $240,000 in revenue from leads you already owned. Most shops leave every dollar of it on the table.
The three reasons quotes go cold (and which ones are recoverable)
Not every old quote is worth chasing. Sorting them is the first real skill. Cold estimates fall into three buckets, and only two are worth your time.
1. Price or trust objection (recoverable). The homeowner liked you but balked at the number, or wanted to compare. These people did not say no to the work. They said no to that price, at that moment, or they wanted to feel they shopped it. Time, a storm, a worsening leak, or a financing option can all reopen this door. This is your richest vein.
2. Timing or money objection (recoverable). "We're going to wait until spring." "We need to do it after the wedding." "Tax refund." These are calendar problems, not desire problems. The work is wanted; the cash or the moment was not there. These convert beautifully when you reach back at the right time, because the homeowner often forgot to come back to you.
3. Decided against / bought elsewhere (mostly dead). They hired a competitor, decided to sell the house, or genuinely did not need the roof. Chasing these wastes the credibility of your follow-up. The trick is to identify them once, tag them, and stop spending energy on them, while staying alert for the rare case where the competitor's work failed or the sale fell through.
The whole system below is about separating bucket 3 from buckets 1 and 2, then pouring your energy into the recoverable ones in the order they are most likely to buy.
Step one: pull and clean your estimate backlog
You cannot work what you cannot see. Before any clever timing or messaging, you need a single clean list of every estimate that did not close, with enough data attached to make decisions.
Most shops have this scattered across a CRM, a job-management tool like JobNimbus or AccuLynx, an email inbox, and a few salespeople's personal notebooks. Consolidate it. The goal is one spreadsheet or one CRM view with these columns at minimum:
- Homeowner name and full property address
- Phone and email
- Date the estimate was written
- Quoted scope (full replacement, repair, specific sections)
- Quoted dollar amount
- Salesperson who wrote it
- Stated reason it did not close (if known)
- Last contact date
- Roof material and, if you noted it, apparent age or condition
If half those fields are blank, that is fine for now. You will enrich them. The point is to get every dead estimate into one place where you can sort, filter, and tag.
Worked example: structuring the pull
Pull every estimate older than 90 days that has no associated signed contract. Ninety days is the floor because anything more recent is still inside a normal active follow-up window and should be handled by your standard pipeline, not your revival system.
Then split the pull into age bands, because the play changes with age:
| Estimate age | What it usually means | Primary play |
|---|---|---|
| 3 to 6 months | Recently deferred; still warm | Direct re-engage, reference the original number |
| 6 to 18 months | Cooling; original urgency gone | Re-establish need, lead with what changed |
| 18 to 36 months | Cold; roof noticeably older | Lead with roof age and recent storm exposure |
| 3+ years | Stale; treat almost like new | Re-quote from scratch, new inspection |
A 4-month-old quote and a 4-year-old quote are completely different animals. The 4-month-old still has a valid price and a recent relationship. The 4-year-old has a roof that is materially older, a price that no longer reflects current material costs, and a homeowner who may not remember you. Sorting by band stops you from sending the wrong message to the wrong person.
Cleaning the data so it is workable
Three cleanup tasks make the rest of the system run:
- De-duplicate. The same homeowner sometimes appears two or three times because they called back, got a revised quote, or a second salesperson logged them. Merge them and keep the most recent estimate.
- Flag the obvious dead ones. Anyone you know hired a competitor, sold the house, or explicitly told you never to contact them again gets tagged "closed-lost-final" and removed from active rotation. Be honest here; padding your list with corpses just demoralizes whoever works it.
- Verify the address and contact. Phone numbers and emails go stale. A quick pass to confirm the property address is correct matters more than the phone number, because the address is what lets you layer on roof-age and storm data later, and because people move but roofs do not.
By the end of this step you have a clean, de-duped, age-banded list of recoverable estimates with verified addresses. That list is an asset. Treat it like one.
What to capture going forward so future quotes never go fully cold
While you are building the backlog, fix the upstream leak so next year's pile is smaller and easier to work. The single biggest data gap in most shops is the objection note. A salesperson writes the estimate, the homeowner says "we'll think about it," and nobody records what was really behind it. Six months later you have no idea whether that homeowner was a price objection, a timing objection, or a tire-kicker, and you cannot rank them.
Train every estimator to log three things the moment a quote does not close on the spot:
- The real objection in the homeowner's own words. Not "thinking about it" but "husband wants to wait until his bonus in March" or "comparing us to two other bids." The specificity is what makes the future follow-up land.
- The roof's apparent age and condition. Even a rough "architectural shingles, heavy granule loss on the south slope, my guess is 18 to 20 years" is gold when you re-rank later. If you have an aerial age estimate, attach it.
- A follow-up date that means something. If the homeowner said "after the wedding in June," the follow-up date is early June, not a generic 30 days out. Calendar the trigger so the system reminds you when their stated obstacle clears.
Shops that capture these three fields at the point of quote turn their cold-estimate problem from a salvage operation into a scheduled, predictable pipeline. The homeowner who said "call me in spring" gets a call in spring, from a contractor who remembered exactly what they said, and that contractor wins the job before a competitor even knows it exists.
Where the data usually hides, and how to extract it
A practical note on the pull itself, because the consolidation is where most teams stall. Your estimate data is almost never in one place. The most common locations, in rough order of completeness:
- Job-management software (AccuLynx, JobNimbus, Roofr, and similar) usually holds the cleanest record, but only for estimates that were entered there. Many quick driveway quotes never make it in.
- Email sent-folders capture estimates that were emailed as PDFs. Searching for your estimate-template filename or subject line surfaces a surprising number.
- Salespeople's phones and notebooks hold the quotes that never got logged anywhere. This is the painful manual part: sit down with each estimator and walk their recent history.
- Accounting or invoicing tools sometimes show quotes that were drafted but never converted to invoices.
Export each source to a spreadsheet, stack them, then de-dupe by address. Do not skip the manual phone-and-notebook pass; in many shops it surfaces 20 to 30 percent more estimates than the software alone, and those off-the-books quotes are often the warmest because they came from a salesperson's personal relationship.
Step two: rank by who is actually due, not merely who is oldest
Here is where most revival efforts fall apart. A team gets the clean list, starts at the top, and dials in whatever order the spreadsheet happens to be sorted. That is a fast way to burn out, because you spend your best energy on names that were never going to buy.
The better approach is to score each old estimate on how likely the homeowner is to be ready now, and work the list in that order. Three signals do most of the work.
Signal 1: roof age relative to expected service life
A roof has a service life, and a homeowner's readiness to replace climbs sharply as the roof approaches and passes the end of it. The most common residential covering, asphalt shingles, typically lasts somewhere in the 15 to 30 year range depending on the product, the climate, the ventilation, and the quality of the original install. Architectural shingles last longer than the old three-tab. Heat, intense sun, and big temperature swings shorten the life. (The NRCA and shingle manufacturers publish service-life expectations; treat any single number as a range, never a guarantee.)
What you want to know for each old estimate is: how old is this roof now, and where does that put it on the curve? A homeowner whose roof was 18 years old when you quoted it two years ago now owns a 20-year-old roof. That roof has crossed from "getting up there" into "genuinely near end of life." Their readiness to act is much higher than it was when they deferred, and they may not even realize how far the clock has moved.
The catch is that you usually do not know the exact roof age from your old notes. Your salesperson may have written "looks 15ish" or nothing at all. This is exactly the kind of gap that aerial-imagery roof-age estimation is built to fill, and it is worth a dedicated look later in this piece, because being able to attach an age range to every address on your list changes how you rank it.
Signal 2: storm and hail exposure since the quote
The second signal is what the weather did to that specific roof since you last talked. A roof that sat through a significant hail event or a high-wind storm after you quoted it is a different roof today, and the homeowner is a different prospect. They may have visible damage. They may have a leak that started after the storm. They may have a neighbor whose roof is being replaced and are wondering about their own.
You can pull historical storm data for an area from the National Weather Service and the Storm Prediction Center, and hail and wind verification reports are part of the public record. The honest framing: a storm passing over an address raises the odds that the roof took damage. It does not prove damage on any given house, and you should never tell a homeowner their roof is damaged before you have inspected it. What storm history gives you is prioritization and a legitimate reason to call: "There was a significant hail event near your address on the 14th. Given the age of your roof, it's worth me taking a look so you have documentation either way."
That is a true statement, a helpful offer, and it puts you on the roof. What you must not do is promise the storm means a free roof, promise the insurance will pay, or promise an approval. More on that boundary below, because it is where contractors get themselves into real trouble.
Signal 3: the original objection and how recoverable it was
The third signal is your own note about why the quote went cold. A homeowner who said "we want to wait until spring" and it is now spring is a layup. A homeowner who said "that's more than we can spend right now" is a financing conversation. A homeowner who said "we're getting two more quotes" and then went quiet either bought elsewhere or stalled, and a single well-placed call sorts which.
Score each objection type for recoverability and let it weight your ranking alongside roof age and storm exposure.
Putting the three signals into a simple score
You do not need data science. A 1-to-3 score on each of the three signals, summed, gives you a working priority. Here is a concrete rubric:
| Signal | 3 points | 2 points | 1 point |
|---|---|---|---|
| Roof age vs. life | Near or past end of expected life | Mid-life, aging | Newer roof |
| Storm exposure | Significant event since quote | Minor weather | Quiet weather |
| Objection type | Timing/calendar problem | Price/trust problem | Decided against |
An estimate scoring 8 or 9 is your A-list: an aging roof, a recent storm, and a recoverable objection. Those get called first, this week, by your best closer. A 6 or 7 is your B-list for steady weekly outreach. A 3 to 5 goes into a low-touch nurture: a couple of emails a year, no phone time, until something changes.
This ranking is the single highest-leverage move in the whole system. It is the difference between working 280 names in random order and working the 40 that are actually ready, first.
A worked ranking example
Make it concrete with three real-feeling estimates from a backlog.
Estimate A is a $13,500 full replacement written 26 months ago. The salesperson noted "roof looked tired, maybe 17 years, homeowner wanted to wait until they refinanced." Since then, a significant hail event passed within a mile of the address. Score it: roof age is now pushing 19-plus years, near end of expected life, so 3 points. Storm exposure since the quote, 3 points. The objection was a timing-and-money problem tied to a refinance that has very likely happened by now, a recoverable timing objection, so 3 points. Total: 9. This is the first call you make tomorrow morning, by your best closer, leading with the storm and the roof's age.
Estimate B is an $8,200 repair-or-replace written 5 months ago. The homeowner was comparing three bids and went quiet. Roof is mid-life, maybe 14 years, so 2 points. Quiet weather since, 1 point. The objection was a price-and-trust comparison shop, moderately recoverable, 2 points. Total: 5. This goes to steady weekly outreach, not the front of the line, with a message that gently re-opens the comparison and confirms the original number.
Estimate C is an $11,000 replacement written 14 months ago, but your note says the homeowner mentioned they were planning to sell the house within a year. Roof age, 2 points. Quiet weather, 1 point. Objection: they were on their way out the door, low recoverability, 1 point. Total: 4. This one drops to low-touch nurture, with one check to see whether the sale actually happened; if the house sold, the estimate is dead, and if it did not, a planned sale that fell through can make a homeowner suddenly ready to invest in the roof they are now keeping.
Three estimates, three completely different priorities, all decided in under a minute each once you have the signals attached. Multiply that across 280 names and you have a worklist your team can actually execute.
Step three: the re-engagement message that does not sound like a salesperson
Now the outreach. The message has to do three things: remind them who you are without making them feel hunted, give them a real reason the timing makes sense now, and make the next step tiny and easy. The most common failure is the generic "just following up to see if you're still interested," which gives the homeowner nothing to react to and is trivially easy to ignore.
The fix is to lead with what changed. Something is always different now than when they deferred: the season, the weather, the roof's age, a financing option, your schedule. Anchor the message to that change.
Templates by age band and channel
These are starting points, not scripts to read robotically. Adjust to your voice and the specific homeowner.
3 to 6 months, text or email (warm, reference the number):
Hi [Name], it's [You] with [Company]. Back in [month] I put together a roof estimate for you at [$amount]. I know the timing wasn't right then. Material costs have been moving, so I wanted to check whether you'd like me to confirm that number still holds before it changes. No pressure either way. Happy to answer any questions.
6 to 18 months, phone-first (re-establish need):
Hi [Name], this is [You] from [Company]. I came out about a year ago and looked at your roof. I was reviewing past visits and yours stood out because the roof was already showing some age then. I'd be glad to do a quick re-check, no charge, so you've got a current read on where it stands. When's good for you this week?
18 to 36 months, storm-aware (lead with age + weather, stay compliant):
Hi [Name], [You] with [Company]. We did a roof estimate for you a while back. There was a significant hail/wind event near your address recently, and given the age of your roof, I'd recommend a current inspection so you have it documented either way. I can put together a written assessment of what I find and a repair estimate if anything needs attention. Want me to come take a look?
3+ years, treat as fresh:
Hi [Name], it's [You] from [Company]. We crossed paths a few years ago about your roof. Roofs change a lot in three years, so any old number I gave you is out of date. If it's still on your mind, I'd be glad to come out, take a fresh look, and give you a current estimate. No obligation.
Notice what these do and do not do. They reference a real prior interaction, which separates you from cold spam. They give a concrete reason the timing makes sense. They offer a small, low-commitment next step. And the storm version offers documentation and a repair estimate, never a promise about insurance, payout, or a free roof.
The cadence: how many touches and how far apart
One message is not follow-up. A single text gets ignored and the estimate stays dead. But ten messages in two weeks is harassment and gets you blocked. The working middle is a multi-touch sequence spread over weeks, varying the channel.
A reliable cadence for an A-list estimate:
- Day 0: Phone call. If no answer, leave a short, specific voicemail referencing the original visit.
- Day 1: Text or email matching the band template above. The voicemail-plus-text combo on consecutive days lifts response noticeably over either alone.
- Day 5: Second phone attempt at a different time of day.
- Day 12: Value email. Not a pitch; something useful, like a short note on what to look for on an aging roof, or photos of a recent job in their neighborhood.
- Day 25: Final direct touch. A polite "I'll stop reaching out, but I'm here whenever you're ready" message. This one closes a surprising number, because it removes the pressure and the homeowner realizes they actually do want to move.
- After day 25: If no response, drop them to long-term nurture: quarterly value emails, and re-activate immediately if a storm hits their area.
Four to six touches over roughly three to four weeks, mixing call, text, and email, is the sweet spot. Track which touch produces the response so you can refine. In most shops, a large share of revivals come on touch three or later, which is exactly why the single "just checking in" text fails.
What to do when they respond but still hesitate
A response is not a yes. The homeowner who replies "yeah we still need to do it but money's tight" has handed you the exact objection to solve. Three of them come up constantly:
- "It's the money." This is where financing options earn their keep. Offering a monthly payment path, or simply walking them through phasing the work, often unsticks a deferred buyer who never had the lump sum. Be straight about terms; do not oversell.
- "I need to talk to my spouse." Offer to do a short walkthrough with both of them present. The deferred buyer who never closed often never got both decision-makers in the room at once.
- "Is it really that urgent?" This is your inspection-and-documentation opening. Go look, photograph what you find, and let the evidence make the case. An aging roof with granule loss, lifted shingles, or storm bruising documented in clear photos is more persuasive than any pitch.
Step four: time the outreach to roof age and storms
Everything above works better when the timing is right, and timing is where most of the leverage hides. The same message that gets ignored in a quiet July can book a job the week after a hailstorm. Two timing levers matter most.
Lever 1: the roof-age clock
A homeowner's readiness to replace is not linear. It is flat for years, then climbs steeply as the roof nears the end of its expected life, then spikes when something visibly fails. If you can see where each address sits on that curve, you can reach out as a roof crosses from "fine" into "due," which is the window when your message stops feeling like a sales push and starts feeling like good advice.
The practical move: re-rank your backlog every quarter by current roof age. A roof that was a borderline 16 years old when you quoted it is, three years later, a 19-year-old roof firmly in the replacement conversation. The homeowner who deferred at 16 is genuinely ready at 19, and a well-timed call reaches them before a competitor or a leak does.
The honest limit, again, is that roof age from aerial imagery is an estimated range, not a birth certificate. A roof might read as "roughly 17 to 22 years" rather than "installed in 2006." That range is plenty to prioritize with. You are not promising the homeowner an exact age; you are deciding who to call first.
Lever 2: the storm window
The days and weeks after a significant hail or wind event are the single highest-intent window in roofing. Homeowners are already thinking about their roof. Neighbors are getting work done. The local news is running stories. Reaching your old-quote backlog in an affected area during that window is the highest-conversion outreach you can run, because you are meeting demand that already exists rather than trying to create it.
The workflow: when a storm passes through your service area, cross-reference the affected zone against your old-estimate list, pull every deferred buyer inside the impact area, and reach out within days with the documentation-and-inspection offer. Speed matters; the contractor who is on the roof first, documenting professionally, is the one who earns the job.
This is also where the legal boundary is sharpest, so it gets its own section below. The short version: you can inspect, document, and write an honest repair estimate. You cannot handle the homeowner's insurance claim, interpret their policy, promise a payout or an approval, promise the deductible disappears, or advertise a free roof.
A timing calendar you can actually run
| Trigger | Who to pull | When to reach out | Lead message |
|---|---|---|---|
| Quarterly roof-age re-rank | Estimates whose roof just crossed into end-of-life range | Within that quarter | "Your roof's reached the age where it's worth a current look." |
| Hail/wind event in service area | Deferred buyers inside the impact zone | Within 3 to 7 days | "Storm near you; let's document your roof either way." |
| Seasonal (spring/fall) | Timing-objection deferrals ("we'll wait until spring") | At the start of that season | "You'd mentioned waiting until now; want me to come back out?" |
| Material price changes | Recent (3 to 6 month) deferrals with a quoted number | When your costs shift | "Wanted you to know before the price I quoted changes." |
Run this calendar and your outreach stops being random. Every contact has a real reason behind it, which is what makes the difference between a homeowner who feels helped and one who feels hounded.
How RoofPredict fits: knowing which old quotes are due
The two hardest inputs in everything above are roof age and storm exposure per address. You can guess at them from old notes, or you can have them attached to every address on your list. That is the specific gap RoofPredict is built to fill.
The product looks at a roof from aerial imagery and returns an estimated age range per address, and it models storm and hail exposure per roof rather than just per zip code. Feed it your backlog of old-quote addresses, and you get back, for each one, roughly where that roof sits in its service life and whether it has taken significant storm exposure since you quoted it. In other words, it enriches the list you already built in step one with the two signals that drive the ranking in step two.
Concretely, that means you can sort 280 dead estimates by which roofs are genuinely due, point your team at the aging-and-storm-hit addresses first, and reach out during the windows when those homeowners are most likely to be ready. It plugs into the list and CRM you already keep; it is not a lead-buying service handing you strangers. It ranks the doors and the homeowners you already earned.
The honest limits matter, and they are the same ones stated throughout. Roof age comes back as a range, not an exact install date, because that is what aerial imagery can support. Storm modeling gives you odds and exposure, not proof that a specific roof is damaged; only an inspection establishes that. The value is sharper prioritization and better timing, not certainty. Used that way, it turns a flat backlog into a ranked, time-able worklist, which is exactly what a small team needs to work old quotes without drowning in them.
The compliance line on storm and insurance outreach
Because storm timing is so effective, this is where contractors get themselves in trouble, so be precise about what you can and cannot say. The rules exist to keep you on the right side of public-adjusting law, and crossing them can cost you a license or a lawsuit.
What you may do:
- Inspect the roof and document its condition thoroughly with photos and notes.
- Write an accurate, itemized repair estimate for the work you would perform, aligned to standard estimating practice (Xactimate-style line items if that is your workflow).
- State facts about your own scope and findings to the homeowner, and, regarding your scope, to the carrier.
- Hand the homeowner a clear written estimate and clear documentation so they can decide what to do.
What you may not do:
- Negotiate, adjust, or "handle" the homeowner's insurance claim for a fee. That is public adjusting and it requires a license you almost certainly do not hold.
- Interpret the homeowner's policy or tell them what is or is not covered.
- Promise a specific payout, promise the claim will be approved, or promise a timeline for approval.
- Promise the deductible will be waived, absorbed, or "taken care of."
- Advertise or imply a "free roof."
- Represent the homeowner against their insurer.
The safe frame is simple and it actually closes more work because it builds trust: you document thoroughly, you write an honest estimate, you hand it to the homeowner, the homeowner files their own claim, and the insurer decides coverage. You are the expert on the roof and the repair, not on the policy. Teaching your team this do-not-say list is more than legal hygiene; homeowners can smell an overpromise, and the contractor who is straight about the process wins the ones who got burned by the contractor who was not.
Building the system into your operation
A playbook only pays off if it runs every week without heroics. Three things make it stick.
Make it someone's job
Deferred-buyer revival dies when it is everyone's job, because then it is no one's. Assign it. In a small shop, that might be a single salesperson who owns the backlog list and spends a set block each week working it. In a larger shop, it might be an inside-sales or appointment-setter role whose entire function is reviving old estimates and booking re-inspections for the field team. Either way, name the person and protect their time.
Set a weekly rhythm
A simple cadence keeps the list alive:
- Monday: Re-rank. Pull in any new aged-out estimates, flag any storms from the prior week, refresh the A-list.
- Tuesday through Thursday: Work the A-list and B-list by phone and text, log every touch and outcome.
- Friday: Move non-responders to the right nurture track, schedule the next week's re-inspections, review what converted and why.
Thirty to sixty focused minutes a day, run consistently, outperforms a frantic once-a-quarter blitz every time.
Track the numbers that matter
You cannot improve what you do not measure. Track at minimum:
- Number of dead estimates in the active backlog
- Touches per week and contact rate (reached a human / attempts)
- Re-inspections booked from revival outreach
- Jobs closed from revived estimates, and their total value
- Cost per revived job (basically just labor time), to prove the ROI internally
When a sales manager can show that a few hours a week of revival work produced six figures of revenue from leads the company already owned, the program funds itself and earns the time it needs.
One more metric worth watching: revival contact rate by channel and time of day. Most homeowners are unreachable by phone during business hours and far more responsive on weekday evenings and Saturday mornings. If your appointment-setter is dialing the A-list at 10 a.m. and getting voicemail every time, the problem is not the list, it is the clock. Track which windows actually reach a human and shift your calling block to match. A small change in timing often doubles contact rate, and contact rate is the gate everything else passes through.
A 30-day starter plan
If you are starting from zero, do this:
- Week 1: Consolidate every non-closed estimate older than 90 days into one list. Clean, de-dupe, verify addresses. Tag the obvious dead ones out.
- Week 2: Enrich the list with roof age and storm exposure per address, then score each estimate on the three signals and sort into A, B, and nurture tiers.
- Week 3: Write your band templates, set your cadence, and start working the A-list by phone and text. Log everything.
- Week 4: Review results, move non-responders to nurture, and set the weekly rhythm. By now you should have re-inspections on the calendar and at least a couple of revived deals in motion.
Thirty days in, you will have turned a static pile of dead paper into a living, ranked, time-able pipeline, and you will have proven the model on real jobs. From there it is just consistency.
Common mistakes that kill revival efforts
A few errors come up again and again. Avoid them and you are ahead of most of the field.
- Working the list in random or oldest-first order. Without ranking, you spend your best energy on the least likely buyers and burn out before you reach the ready ones.
- Sending one generic touch and calling it follow-up. Most revivals land on the third touch or later. One message is a coin flip you usually lose.
- Leading with the pitch instead of the reason. "Are you still interested?" gives the homeowner nothing. "Your roof crossed into end-of-life and there was a storm nearby" gives them a reason to act.
- Ignoring the storm window. Reaching an affected backlog days after a hail event is the highest-conversion outreach in roofing. Miss the window and a competitor fills it.
- Overpromising on insurance. The single fastest way to lose trust and risk your license. Document and estimate; never handle the claim or promise a payout.
- Not tracking results. Without numbers, the program looks like busywork and gets cut. With numbers, it gets resourced.
- Treating a 3-year-old quote like a 3-month-old one. The roof and the price both changed. Re-inspect and re-quote, do not simply resend the old number.
Bringing it together
The backlog of old roofing quotes sitting in your CRM is not dead weight; it is the cheapest pipeline you own. You already paid to generate those leads, already earned the homeowner's trust enough to get on the roof, and already established a price anchor. What has been missing is a system to work them: pull and clean the list, rank by who is actually due using roof age and storm exposure, reach out with a reason rather than a pitch, time the outreach to the roof-age clock and the storm window, and stay strictly on the documentation-and-estimate side of the insurance line.
The shops that build this into a weekly rhythm, and that can see which roofs are aging out and which ones a storm just worked over, convert deferred buyers their competitors wrote off. If you want the roof-age range and per-roof storm signal attached to every address on your old-quote list so you can sort it by who is genuinely ready, that is exactly what RoofPredict is for. Start with the 30-day plan, prove it on a handful of revived jobs, and let the numbers earn the program its place in your week.
FAQ
How old can a roofing quote be and still be worth following up on?
Any non-closed estimate older than 90 days is worth a structured follow-up, but the play changes with age. Quotes 3 to 6 months old still have a valid price and a warm relationship, so you can reference the original number directly. Quotes 18 months to 3 years old need you to lead with what changed, usually the roof's age and any storms since. Quotes older than 3 years should be treated almost like new leads: re-inspect and re-quote, because both the roof's condition and your material costs have moved. The estimate itself does not expire as a relationship; only the price does.
Why do most roofing follow-up efforts fail?
Three reasons. First, teams send a single generic touch like 'just checking in' and give up when it is ignored, even though most revivals land on the third touch or later. Second, they work the list in random or oldest-first order, burning their best energy on the least likely buyers. Third, they lead with a pitch instead of a reason, so the homeowner has nothing concrete to react to. Fixing all three, ranking by readiness, running a four-to-six-touch cadence, and anchoring each message to something that changed, is what separates a working system from hoping.
How do I decide which old quotes to call first?
Score each estimate on three signals: how close the roof is to the end of its expected service life, whether it took significant storm or hail exposure since you quoted it, and how recoverable the original objection was (timing problems are very recoverable, 'we bought elsewhere' usually is not). Give each signal 1 to 3 points and sum them. Estimates scoring 8 or 9 are your A-list and get called first by your best closer. Mid-scores get steady weekly outreach. Low scores go to a low-touch email nurture until something changes.
What should the first re-engagement message say?
Lead with what changed, not 'are you still interested.' Reference the real prior visit so you are not mistaken for cold spam, give a concrete reason the timing makes sense now (material prices moving, the season they said to wait for arrived, a storm near their address, the roof crossing into end-of-life age), and offer a small, easy next step like a quick no-charge re-inspection. Keep it short and remove pressure. The message that books appointments gives the homeowner a real reason and a tiny commitment, not a sales push.
How many times should I follow up before giving up?
Four to six touches over roughly three to four weeks, mixing phone, text, and email, is the working range. A reliable A-list cadence is: day 0 call plus voicemail, day 1 text or email, day 5 second call, day 12 value email, and a day 25 polite final touch that says you will stop reaching out but are there when they are ready. That last message closes a surprising number because it removes pressure. After day 25, drop non-responders to a quarterly nurture and re-activate immediately if a storm hits their area.
How does roof age help me time outreach to old quotes?
A homeowner's readiness to replace stays flat for years, then climbs steeply as the roof nears the end of its expected life. A roof that was a borderline 16 years old when you quoted it is a 19-year-old roof three years later, firmly in the replacement conversation, and the homeowner often has not registered how far the clock moved. Re-rank your backlog quarterly by current roof age and reach out as each roof crosses from 'fine' into 'due.' At that moment your message reads as good advice rather than a sales push. Note that aerial roof-age estimates are a range, not an exact install date, which is plenty for prioritizing.
Can I tell a homeowner their roof was damaged by a storm so they'll move forward?
Not before you have inspected it. A storm passing over an address raises the odds the roof took damage, which is a legitimate reason to call and offer an inspection, but it does not prove damage on any specific house. Reach out with a documentation offer: 'There was a significant hail event near your address; given your roof's age it's worth me taking a look so you have it documented either way.' That is true and helpful. Telling them the roof is definitely damaged before you have looked is both inaccurate and a trust-killer.
What can I legally do around insurance when following up after a storm?
You may inspect the roof, document its condition thoroughly with photos, write an accurate itemized repair estimate for your own scope, and hand that documentation to the homeowner so they can decide what to do. You may state facts about your scope to the carrier. You may not negotiate or handle the homeowner's claim for a fee, interpret their policy or what is covered, promise a specific payout or approval, promise the deductible will be waived or absorbed, advertise a free roof, or represent the homeowner against their insurer. The safe frame: you document and estimate, the homeowner files, the insurer decides coverage.
How does RoofPredict help me work old quotes?
It enriches your existing list of old-quote addresses with the two signals that drive ranking: an estimated roof-age range per address from aerial imagery, and storm and hail exposure modeled per roof rather than per zip code. Feed it your backlog and you get back, for each address, roughly where that roof sits in its service life and whether it took significant storm exposure since you quoted it. That lets you sort dead estimates by which roofs are genuinely due and time outreach to the right windows. It works with the CRM and list you already keep; it is not a lead-buying service. The roof age is a range and storm modeling gives odds, not proof, so it sharpens prioritization rather than replacing inspection.
How much revenue can reviving old quotes realistically produce?
Run the math on your own numbers. If you wrote 400 estimates and closed 120, you have 280 that did not close, and typically 15 to 25 percent of those are deferred buyers who wanted the work but hit a timing or money snag. Worked properly over a year, that backlog might surface 40 to 60 genuinely live prospects. Closing even a third of them at a $12,000 average job is 13 to 20 jobs and roughly $160,000 to $240,000 from leads you already paid to generate. The cost is mostly a few focused hours a week, which is why it is the cheapest pipeline most shops own.
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.
Sources
- NRCA - National Roofing Contractors Association — nrca.net
- Insurance Institute for Business & Home Safety (IBHS) — ibhs.org
- NOAA National Weather Service — weather.gov
- NOAA Storm Prediction Center — spc.noaa.gov
- NWS Storm Prediction Center Storm Reports — spc.noaa.gov
- OSHA - Roofing and Fall Protection — osha.gov
- International Code Council (ICC) - International Residential Code — iccsafe.org
- U.S. Census Bureau - American Housing Survey — census.gov
- U.S. Bureau of Labor Statistics - Roofers — bls.gov
- Federal Trade Commission - Business Guidance — ftc.gov
- Texas Department of Insurance - Public Adjusters — tdi.texas.gov
- National Association of Insurance Commissioners (NAIC) — naic.org
- NOAA National Centers for Environmental Information - Storm Events Database — ncdc.noaa.gov
- RoofPredict — roofpredict.com
Related Articles
How to Target Apartment Complexes for Roof Replacement (Without Wasting a Season Chasing the Wrong Properties)
Multifamily roofs are bigger jobs with fewer competitors than residential, but the buyer, the timeline, and the sales motion are completely different. Here is how to find the apartment complexes whose roofs are actually due and get in front of the person who signs.
Which Old Roofing Leads Are Worth Re-Contacting (And Which to Let Die)
Most contractors sit on hundreds of old estimates and lost bids. Here is how to score that list, rank it, and call back only the doors actually worth a second knock.
How to Find HOA Roofing Contracts (and Win Them by Roof Age)
Where HOA roofing work actually comes from, how to find the communities whose roofs are aging out, and how to walk into a board meeting already knowing the answer.