How Many Jobs Are Hiding in Your Roofing CRM (And How to Dig Them Out)
On this page
Walk into almost any roofing office and you'll find the same thing: a CRM stuffed with thousands of names, and an owner who's convinced the only way to grow is to buy more of them. New leads, more ad spend, another mailer drop, a fresh batch of shared leads from some portal. Meanwhile the most qualified prospects that company will see all year are already in the building, sitting in a database nobody has touched in eighteen months.
That gap is the most expensive thing in a roofing business, and almost nobody measures it.
The people in your CRM already raised their hand. They called you, or you bid their roof, or you did a repair for them in 2019. They know your truck, your name, your crew. They cost you money to acquire once already. And the overwhelming majority of them never got worked past the second follow-up, because the estimator got busy, the storm season hit, or the lead just went cold and quietly aged out of anyone's attention.
So let's actually answer the question in the headline with numbers, not a pep talk. Then let's build the system that pulls those jobs out, week after week, instead of hoping somebody remembers to call old Mrs. Garrett back.
The honest math: how many jobs are really in there
You can't fix what you won't count. Before you reactivate anything, you need a real read on what's buried. Here are the four piles that hide jobs, and a way to estimate each.
Pile 1: Unsold estimates
This is the biggest one and the most painful. The industry-wide reality is that a large share of roofing bids never close, and most of those never get a serious second touch. If your close rate on estimates is 35%, that means 65 of every 100 roofs you measured, climbed, and quoted walked away. Some of those genuinely went to a competitor. But a meaningful chunk did nothing — they didn't replace the roof at all. They stalled on money, on a spouse, on timing, on a claim that never got filed.
Those stalled bids are not lost. They're parked.
How to size it: Pull every estimate from the last 36 months that is marked lost, open, pending, or has no disposition at all. Multiply that count by a conservative 8-12% reactivation close rate (we'll defend that number later) and your average job value. That's your floor.
Worked example: a shop that wrote 600 estimates over three years and closed 35% has roughly 390 unsold bids. Strip out the ones you can confirm went to a competitor and got built — say a third — and you're left with about 260 roofs that, as far as you know, still have the original roof on them. At a 10% reactivation rate and a $14,000 average job, that's 26 jobs and roughly $364,000 in revenue sitting in a folder.
Pile 2: Past customers (the repair-to-replacement pipeline)
Every repair customer is a future replacement customer, and most roofers never circle back. You patched a leak around a chimney in 2018 on a roof that was already 14 years old. That roof is now 21. It is at or past the end of a typical asphalt shingle's service life, and the homeowner has no idea — they think the patch fixed it.
Past customers convert at a much higher rate than cold prospects because the trust is already built. They are also the cheapest jobs you will ever sell.
How to size it: Pull every completed job older than five years where the work was a repair, a partial, or a roof that was already aging when you touched it. These are replacement candidates. A reasonable reactivation conversion here is higher than unsold estimates — call it 12-18% over a 12-month nurture — because you have a service relationship rather than only a quote.
Pile 3: Dead leads that never got an estimate
These are the inquiries that came in, got a call attempt or two, and evaporated. Web form, phone call, referral, a name your canvasser scribbled down. Nobody ever got on the roof. In most CRMs these outnumber actual estimates two or three to one, and they get written off as junk.
They're not all junk. A well-documented finding in sales research is that the difference between companies that win these and companies that lose them is almost entirely follow-up persistence, not lead quality. Most never got more than two contact attempts.
How to size it: Count leads with zero estimates attached and fewer than three logged contact attempts. The close rate here is lower — 3-6% — but the volume is large and the cost to work them is a phone call.
Pile 4: Referral and warranty edges
Smaller piles, but high quality. Every happy customer knows three to five neighbors with the same-age roof on the same-age subdivision. Every workmanship warranty you issued is a reason to legitimately call and check in. These aren't "hiding jobs" so much as hiding doors, but they belong in the count because the same outreach system surfaces them.
Put a real number on it
Here's a worksheet you can fill in this afternoon. Use your own numbers; the multipliers below are conservative starting points you'll calibrate after one quarter.
| Pile | Count in CRM | Reactivation close rate | Avg job value | Hidden revenue |
|---|---|---|---|---|
| Unsold estimates (36 mo) | _____ | 8-12% | $______ | $______ |
| Past customers (5+ yr, aging roof) | _____ | 12-18% | $______ | $______ |
| Dead leads (no estimate) | _____ | 3-6% | $______ | $______ |
| Referral/warranty touches | _____ | varies | $______ | $______ |
When owners actually run this, the total almost always lands somewhere between a third and half of their current annual revenue — already in the building, already paid for once, just never worked. That is the answer to the headline. Now the work is making it real instead of theoretical.
A note on average job value and mix
When you run the worksheet, resist the urge to use one blended average for everything. A repair-to-replacement past customer and a never-estimated cold lead are not the same job. Break your average into at least two buckets: full replacements and repairs, and if you do steep, tile, metal, or commercial work, separate those too. A shop that mixes a $900 repair average into the same number as its $16,000 replacement average will badly mis-size the opportunity in both directions — overstating the repair pile and understating the replacement pile. Pull your last twelve months of closed jobs, sort by type, and use the median rather than the mean if a handful of big commercial jobs are skewing the number. The median is the honest middle; the mean lies when one $80,000 job sits in a list of $14,000 ones.
The number that will surprise you
Most owners, doing this for the first time, underestimate the unsold-estimate pile by half. The reason is psychological: the brain remembers the jobs you won and quietly forgets the bids that went nowhere, because nobody enjoys reliving a lost sale. The CRM doesn't forget, though. When the export comes back and the lost-and-open count is two or three times what the owner guessed, that's not a data error — that's the gap between memory and reality, and it's exactly the gap that's been costing money. Trust the export over your gut.
Why these jobs went cold (and why that's good news)
Before you start dialing, understand why the pile exists. Almost none of it is because the prospect didn't want a roof. The reasons cluster into a short, predictable list, and every one of them has a shelf life that's now expired in your favor.
Timing. "We're going to wait until spring." "Let's get through the holidays." "My daughter's wedding is this fall." Roofers hear a soft no and file it as a hard no. But timing objections are date-stamped. The spring they were waiting for has come and gone two or three times. The wedding's over. That objection has dissolved on its own, and nobody called back to notice.
Money, not desire. They wanted the roof. They didn't have $14,000 that month. Financing options have changed, their situation has changed, and the roof has gotten worse. A money-stall from two years ago is a different conversation today.
The other spouse. One decision-maker was in, one was out, and you never got the second one on the phone. That household dynamic shifts constantly.
The estimator dropped it. The least flattering reason and the most common one. The roof was real, the prospect was warm, and the rep got slammed during the busy stretch and never followed up past the second call. Sales research across industries consistently finds the majority of leads receive only one or two follow-up attempts before being abandoned, while most sales require five or more touches. Roofing is no exception.
The roof actually got worse. This is the quiet engine under the whole thing. Every roof in your dead-lead pile is older today than the day you quoted it. Asphalt shingles don't pause. A roof you bid at 16 years is now 19. A storm may have rolled through since. The thing that made them hesitate — "it's not that bad yet" — is steadily becoming false on its own.
That last point is why a roofing CRM is a fundamentally different animal than, say, a software CRM. Your dead leads improve with age. The asset they own is degrading on a known curve, which means time is working for you, not against you. The trick is knowing which of those roofs has crossed the line from "not yet" to "now."
The five-list teardown: how to segment your CRM in an afternoon
A reactivation campaign that blasts the same message to everyone is just spam with your logo on it. The whole edge here is relevance, and relevance comes from segmentation. Spend one focused afternoon cutting your database into these five lists. Every modern roofing CRM — JobNimbus, AccuLynx, Roofr, JobProgress, even a clean spreadsheet export — can produce these with a filter and a sort.
List A: Stalled hot bids (last 6-18 months, lost/open)
The freshest unsold estimates. They still remember you. Pull every bid in this window that didn't close and isn't confirmed-built-by-someone-else. This is your highest-probability list and where you start.
List B: Aged bids (18-36 months, lost/open)
Older unsold estimates. Trust is faded but recoverable, and the roof is now meaningfully older than your original quote. These respond best to a "your roof has changed since we last looked" angle, which is true.
List C: Past customers with aging roofs (5+ years, repair or aging-at-install)
Your warmest list, full stop. Sort by the age the roof would be today. Anyone whose roof is now 18+ years old is a live replacement conversation. These get a relationship touch, not a sales blast.
List D: Never-estimated leads (no bid, under 3 touches)
The big, low-quality, high-volume pile. Work these in batches with a low-cost channel. Don't over-invest per contact, but don't ignore them — the volume makes the math work even at a 4% close.
List E: Do-not-contact and dead-dead
Explicitly mark the people who asked you to stop, the ones who built with a competitor and you can confirm it, the renters, the wrong numbers. Pruning this list is not wasted effort — it keeps your outreach clean, protects your sender reputation on email and text, and keeps your reps from wasting breath. Respect every opt-out. It's the law and it's good practice.
Once these five lists exist, you have a campaign structure. A, B, and C get real effort. D gets volume-efficient effort. E gets left alone.
Sequence the work: which list to mine first
Don't try to boil the whole database at once. Reactivation fails when an owner exports 4,000 contacts, feels overwhelmed, and quits by Thursday. Sequence it by probability and freshness.
- Week 1-2: List A (stalled hot bids). Highest close rate, freshest memory, fastest cash. This is your proof-of-concept. The wins here fund and motivate everything after.
- Week 3-4: List C (past customers, aging roofs). Warmest relationship, easiest calls, great for referrals even when they don't buy.
- Week 5-8: List B (aged bids). Now you've got a rhythm. These need a sharper hook because they're colder.
- Ongoing background: List D (never-estimated). Run these as a steady low-effort drip — text and email — underneath the focused phone work on A, B, and C.
The reason to lead with List A isn't just math. It's belief. The first time a rep calls a "dead" bid from eleven months ago and books a re-measure, the entire team stops treating the CRM like a graveyard and starts treating it like a backlog. That mindset shift is worth more than any single job.
The reactivation playbook, channel by channel
Now the actual outreach. The goal of every first touch is not to sell a roof. It's to earn a re-inspection — to get back on that roof or back on the phone with a real reason. Lead with that and your numbers climb.
Phone: still the highest-yield channel for warm lists
For Lists A, B, and C, the phone beats everything. A two-year-old relationship deserves a voice, not a mass text. Here's a call frame that works without sounding like a telemarketer.
Opener (stalled bid, List A/B):
"Hey Mr. Daniels, this is Tony with Summit Roofing — we came out and looked at your roof back in [month/year] on Crestview Drive. I'm doing a round of follow-ups on roofs we measured a while back, because honestly a lot has changed since then. Is that roof still on your radar, or did you end up getting it handled?"
That opener does three things: it reminds them exactly who you are and where, it gives a non-pushy reason for the call ("a lot has changed"), and it asks an open question that surfaces the real status. If they say they got it done elsewhere — great, mark List E, ask for a referral, move on. If they hesitate, you've found a live one.
Past-customer opener (List C):
"Hi Mrs. Garrett, it's Tony from Summit — we fixed that leak by your chimney back in 2018. I was going through our older service jobs and yours came up. That roof was getting up there in age when we were out, so I wanted to check in: any new leaks, any spots, anything you've noticed up there?"
This is a service call, not a sales call, and it converts because of that. You're checking on work you did. The replacement conversation comes naturally when she mentions the stain on the ceiling.
The re-inspection close. However the call goes, aim for one outcome: "Tell you what — it's been [X] years since we looked. Let me have someone swing by, get back up there, and give you an honest read on where it stands now. No charge, no pressure. If it's got life left, I'll tell you that." That offer is easy to say yes to because it's true and it's free, and it gets you exactly what you need: eyes back on the roof.
Direct mail: the patient channel that ages well with the roof
Mail is underrated for reactivation because it matches the roofer's actual sales cycle, which is measured in seasons, not clicks. A postcard to a 19-year-old roof that you bid two years ago isn't an interruption — it's a reminder about a problem that's gotten worse.
Keep reactivation mail honest and specific. Reference that you've been out before if you have a real record of it. A line like "We measured your roof in 2022 — a lot can change in two years" outperforms generic blast mail because it's true and personal. Don't fabricate urgency, don't invent a deadline, don't promise a free roof or a waived deductible. Specificity and honesty are what make reactivation mail convert above cold mail.
Email and text: cheap, scalable, perfect for the big cold pile
For List D and as a support layer for everyone else, email and text are how you stay in front of hundreds of contacts for almost nothing. Rules that keep it working:
- Get consent and honor opt-outs. Texting prior customers and inquiries generally sits on firmer footing than cold-texting strangers, but you must include clear opt-out language and stop immediately when asked. Telemarketing and texting rules are real and enforced — follow the FTC's guidance and your state's rules, and when in doubt, get explicit consent. This protects your phone numbers and your reputation as much as your legal standing.
- Lead with value, not "checking in." A useful text: "Hi Mr. Daniels — Summit Roofing. We measured your roof in 2022. Roofs in your area from that era are hitting the age where issues start. Want a free 10-minute re-check? Reply YES or STOP to opt out."
- Keep it short and human. No graphics-heavy email templates for a warm list. A plain four-line note from a real person at your company outperforms a designed blast.
Door: when the data says a street is worth a walk
If your segmentation surfaces a cluster — say six aged bids and four past customers in the same three-subdivision pocket — that's not a mail drop, that's an afternoon of door knocks. Reactivation and canvassing aren't separate disciplines; your CRM tells you which streets have already-warm doors, and a rep walking those doors with a "we've worked your neighborhood, we were out at the Daniels' place down the street" opener is walking in pre-trusted.
Handling the objections that put them on ice the first time
The people on your reactivation list stalled for a reason, and that reason is usually still in the room when you call back. The difference is that time has changed the calculus, and your job is to surface that gently. Here are the four objections you'll hear most and how to work them honestly.
"We decided to wait." This is the timing stall, and on a reactivation call it's your easiest one, because the wait is over and they forgot to notice. Don't argue. Acknowledge it and pivot to the asset: "Totally understand, that's why I'm circling back — it's been a couple of years and roofs don't wait as well as we'd like them to. Worth me getting back up there to see where it actually stands now? If it's got runway left, I'll be the first to tell you to keep waiting." You've reframed the call from a sale to a health check, which is hard to say no to.
"We already had it done." Sometimes true, sometimes a brush-off. If it's true, you mark List E, congratulate them, and ask the referral question immediately: "Glad you got it handled. Quick favor — your neighborhood's full of roofs the same age as yours was. Anybody on your street you'd point me to?" That single question turns a dead call into a live door. If the "we had it done" is vague and they can't name who did it, it's often a soft deflection — a friendly "oh good, who'd you go with?" surfaces the truth without pressure.
"It's too expensive." The money stall is different now than it was two years ago. Their financial picture moved, financing options moved, and the roof got worse, which changes the cost of waiting. You're not going to win this on the phone, so don't try — win the re-inspection. "I hear you, and a roof's a real number. All I'm asking for is a fresh look so you know exactly what you're dealing with. Some of what we'd have recommended two years ago might be a smaller fix today, or it might be more urgent — either way you deserve to know before it's an emergency." Honest, no pressure, and it earns the visit.
"I need to talk to my spouse." The classic single-decision-maker stall. On the callback, get both people involved from the start: "Makes sense — when I come back out, is there a time that works for both of you to be there for ten minutes? I'd rather show you both what I'm seeing than have you play telephone with it." Getting both decision-makers on the roof, or at least both looking at the same photos, removes the objection before it's raised.
Notice the through-line: in every case the move is to lower the ask to a free re-inspection and let the aged roof do the persuading. You are never trying to close the roof on the reactivation call. You're trying to get back on it.
Cleaning the data as you work it
A reactivation effort and a data-cleanup effort are the same effort if you set it up right. Every call, every text reply, every bounced email is a chance to make the database a little more trustworthy. Don't run a separate "data cleaning project" that nobody finishes — bake the cleanup into the outreach. Here's the discipline:
- Every contact updates the record. Reached a real person? Log it and update the disposition. Wrong number? Mark it. Built with a competitor? Move to List E. Moved away? Note it. Within one quarter, a worked list becomes a clean list, and a clean list is one your reps will actually trust and work.
- Standardize dispositions before you start. Agree on a short, fixed set of outcomes — re-inspection booked, callback, not interested, already done, wrong number, do not contact — so the data stays sortable. A free-text "notes" field where everyone writes something different is how databases become unusable.
- De-duplicate as you find them. You'll discover the same homeowner entered three times from three sources. Merge them. Duplicate records are how the same person gets called by two of your reps in the same week, which is the fastest way to annoy a warm lead into a cold one.
- Capture roof age and storm exposure when you have it. If you've enriched the list, store the roof-age range and any storm history on the record so the next person who touches it knows the roof's status without re-pulling it. A CRM that holds roof age alongside contact history is dramatically more useful than one that only knows when you last called.
The payoff compounds. The cleaner the database gets, the faster every future reactivation cycle runs, because you're no longer wading through dead numbers and duplicates to find the live ones.
The follow-up cadence that actually closes
One touch reactivates almost nothing. The entire failure mode that created your dead pile in the first place — quitting after two attempts — is the thing you have to engineer out of the comeback. Here's a cadence for a List A/B stalled bid that respects the prospect and still gets the job.
| Day | Channel | Message intent |
|---|---|---|
| 1 | Phone call | The opener above; aim for re-inspection |
| 1 | Voicemail (if no answer) | Short, name the street, "a lot's changed, give me a call" |
| 2 | Text | "Tried you yesterday — Summit Roofing about your roof on Crestview. Worth a quick re-check?" |
| 5 | Value note: roof age in their area, offer free re-inspection | |
| 9 | Phone call | Second live attempt, different time of day |
| 14 | Direct mail | Postcard referencing prior visit |
| 21 | Phone call | Final live attempt, then move to long-term drip |
| Quarterly | Email/mail | Long-term nurture; the roof keeps aging in your favor |
The key insight: a "no" at day 21 is not a permanent no on a roofing prospect. It's a no for now. Move them to a quarterly nurture, because in twelve months that roof is a year older and the timing objection may have dissolved. Roofing is one of the few trades where the right answer to a soft no is genuine patience, because the asset degrades predictably and the need becomes undeniable on its own schedule.
What pros get wrong about CRM mining
Plenty of roofers "try" database reactivation, get weak results, and conclude the well is dry. Almost always it's an execution problem, not a database problem. The common mistakes:
Treating it as a one-time blast instead of a system. A single export-and-email in January isn't reactivation, it's a spasm. The shops that win run it as a permanent, scheduled function — a few hours every week, forever. Old leads age into hot leads continuously; you have to be there when they do.
No owner, no accountability. "We should call our old leads" assigned to everyone is assigned to no one. One person owns the reactivation list, with a weekly number, or it doesn't happen. During the busy season it's the first thing that gets dropped, which is exactly backwards — your dead pile grows fastest in your busiest months.
Dirty data nobody trusts. Half the CRM is duplicates, wrong numbers, and missing dispositions, so reps don't trust it and won't work it. You don't need perfect data to start, but you do need to clean as you go — every call updates the record. Within a quarter a worked list becomes a trusted list.
Selling the roof instead of selling the re-inspection. The first touch that tries to close a roof over the phone fails. The first touch that offers a free, honest re-look succeeds. Lower the ask. Get back on the roof. The roof sells itself once you're standing on it with photos.
Ignoring roof age entirely. This is the big one and it deserves its own section. Most reactivation campaigns treat every old contact the same. They don't. A dead lead on an 8-year-old roof is a poor use of a phone call. A dead lead on a 21-year-old roof is a near-certain replacement waiting for a reason. If you can't tell those two apart, you're spraying effort across the whole list instead of concentrating it where the roof is actually due.
Putting roof age and storm history back into your CRM
Here's the limitation of pure reactivation: your CRM knows when you last talked to someone, but it usually doesn't know the one thing that matters most — how old that roof is right now, and what weather it has taken since you bid it. You quoted the roof at 16. Is it 18 now or 23? Did a hail core roll through that subdivision last spring? Your notes don't say, and the homeowner doesn't know either.
This is the gap where a tool like RoofPredict fits, and it's worth being precise about what it does and doesn't do. RoofPredict reads aerial imagery and weather data to estimate a roof's age as a range — not an exact install date, a tight range — and models the storms each individual roof has actually taken, house by house, scoring impact rather than just showing you where a storm passed on a map. You can run it against your own database. Hand it your list of old estimates and past customers, and it enriches each address with a roof-age range, recent storm exposure, and a risk score.
What that does to a reactivation campaign is simple but significant: it lets you sort your dead pile by which roofs are actually due. Instead of working List B oldest-to-newest by bid date, you work it by which of those roofs is now 20+ years old or got hit by hail last June. The 23-year-old roofs and the storm-worn roofs go to the top of the call list; the 9-year-old roofs that aren't ready yet drop to a long-term nurture where they belong. Same database, same reps, same hours — but the effort lands on the roofs most likely to close.
It's enrichment, not magic. A few honest limits worth stating plainly: roof age comes back as a range, not a guaranteed date, and a re-roof you can't see from the air can throw it off, which is exactly why the play is still to get back on the roof and confirm. Storm modeling gives you odds that a roof took meaningful impact — it's a prioritization signal, not proof of damage, and it never replaces an actual inspection. It's not a lead service; it doesn't hand you new strangers. It sharpens the list you already own so the reactivation work you were going to do anyway hits the right doors first. For an owner staring at 600 unsold bids wondering where to start, knowing which 80 of them sit on roofs that are genuinely past their service life is the difference between a productive quarter and a frustrating one.
The storm angle: documenting damage the legal way
A lot of reactivation, especially in hail and wind country, runs straight into insurance. A past customer calls back after a storm; a stalled bid suddenly has hail bruising on it. This is real, recurring work, and it's also where roofers get themselves in legal trouble. So let's be exact about what you can and can't do, because getting this wrong can cost you your license to operate.
What you absolutely can do, and should do well:
- Inspect the roof and document conditions thoroughly — date-stamped, geotagged photos of every slope, close-ups of impact marks, test squares, flashing, vents, and accessories.
- Write an accurate, detailed repair estimate for your own scope of work, aligned to standard estimating practices so it speaks the same language the carrier's software does.
- State facts about your scope and your findings.
- Hand the homeowner a clean, thorough documentation package and a written estimate they can use.
What you must not do — the do-not-say list:
- Don't negotiate, adjust, or "handle" the claim for the homeowner for a fee. That's public adjusting and it requires a license you almost certainly don't hold.
- Don't interpret their policy or tell them what is or isn't covered.
- Don't promise a specific payout, an approval, or that the claim "will go through."
- Don't tell them the deductible is waived, absorbed, eaten, or gone. Offering to cover or rebate a deductible to induce a claim is illegal in many states and is insurance fraud.
- Don't advertise a "free roof."
- Don't represent the homeowner against their insurer.
The clean framework: you document thoroughly and write an accurate estimate. The homeowner files the claim. The insurer decides coverage. You repair your scope. Stay on the documentation-and-estimate side of that line and you're doing legitimate, valuable work that genuinely helps the homeowner. Cross it and you're practicing public adjusting without a license. When you train your reactivation reps, teach them that do-not-say list explicitly — a well-meaning rep promising "we'll get your deductible covered" on a callback can create real liability for your company.
Where roof-age and storm data fits this honestly: it tells you which of your old contacts sit on roofs that likely took storm impact, so you know whose door to knock to offer a thorough, free inspection and documentation. It points you at the roof. What happens after the inspection — the filing, the coverage decision — stays where it legally belongs, with the homeowner and the carrier.
Building a documentation package that does its job
If you're going to inspect storm-touched roofs off your reactivation list, the quality of your documentation is what separates a professional who helps the homeowner from someone fumbling on a ladder with a phone. A strong package is consistent, dated, and complete. Train every rep to capture the same set every time:
- Wide shots of all four elevations from the ground, so the package establishes the whole structure before zooming in.
- Each roof slope from on the roof, showing the overall field of shingles.
- Close-ups of impact marks with a reference for scale — a chalk circle and a tape measure or a coin in frame — so the size of hail bruising or wind creasing is documented rather than merely claimed.
- Test squares where appropriate, marked and photographed, following recognized inspection conventions.
- Accessories and penetrations: vents, pipe boots, ridge, valleys, flashing, gutters, and any soft metals where hail leaves clear, datable dents.
- Collateral damage that helps establish a storm event — dented gutters, screens, AC fins, downspouts — photographed because they corroborate the timeline.
Keep every photo dated and, where your tools allow, geotagged to the address. A package that's organized slope-by-slope with clear, scaled close-ups is one a homeowner can hand to their carrier with confidence, and it reflects well on your company whether or not the claim ever goes through.
Writing an estimate that speaks the carrier's language
Your repair estimate is a statement of your scope and your price to do the work correctly, written so it lines up with how the rest of the industry prices roofing. Itemize it: tear-off, decking inspection and replacement where needed, underlayment, ice-and-water where code requires, drip edge, starter, field shingles, ridge, flashing, vents, accessories, cleanup, and disposal. Note code-driven requirements plainly — many jurisdictions require ice-and-water shield, drip edge, or specific deck attachment, and a roof done to current code may legitimately differ from what was last installed. You are documenting what it costs to put a correct roof back on, nothing more and nothing less. You are not telling the homeowner what their policy will or won't pay for that scope. That distinction is the whole game: state your scope and your price as facts; let the carrier decide coverage.
A clean, itemized, code-aware estimate handed to a homeowner is one of the most valuable things you produce, and it's entirely on the right side of the line. It's also a quiet differentiator — most of the roofers your reactivated prospect talked to two years ago handed over a one-line number on a torn page. Yours looks like a professional document, because it is one.
A worked example: one shop, one quarter
Numbers make this concrete, so here's a composite that reflects what a disciplined first quarter tends to produce. Treat it as a model for your own math, not a promise.
A residential shop in a mixed storm-and-retail market exports its CRM. The four piles come back like this:
- Unsold estimates, last 36 months: 312 (after removing 90 confirmed built by competitors)
- Past customers, 5+ years, aging roofs: 140
- Never-estimated leads, under three touches: 610
- Do-not-contact, pruned out: 95
They assign one person — a sales coordinator working the list about ten hours a week — and run the 90-day plan. They enrich Lists A, B, and C with roof-age and storm data and re-sort each so the roofs that are now past 20 years old, and the ones in a hail swath from the prior spring, rise to the top.
Here's roughly how the quarter shakes out:
| List | Worked | Re-inspections booked | Jobs signed | Avg value | Revenue |
|---|---|---|---|---|---|
| A — stalled hot bids | 312 | 41 | 19 | $14,500 | $275,500 |
| C — past customers | 140 | 28 | 16 | $13,000 | $208,000 |
| B — aged bids | 312 (overlap w/ A pool) | included above | — | — | — |
| D — cold leads (drip) | 610 | 12 | 5 | $13,500 | $67,500 |
That's 40 signed jobs and roughly $551,000 in reactivation revenue from a database the shop already owned, produced by one part-time person in ninety days. The cost was their time, a postcard drop, and the enrichment run — a rounding error against the revenue. The shop's real reactivation close rates came in a touch above the conservative estimates from the worksheet, which is common, because warm contacts on roofs that are genuinely due close better than cold prospects on roofs that aren't.
Just as important as the revenue: the coordinator also banked 31 referrals from past-customer calls and cleaned roughly 200 stale records along the way. The pipeline that built doesn't expire at the quarter's end — the leftover re-inspections and the long-term nurture roll into the next ninety days, and the cleaned, enriched database makes the next cycle faster. That's the difference between a one-time stunt and a system.
A 90-day reactivation plan you can run
Enough theory. Here's a concrete quarter, week by week, that a one-person reactivation effort can execute alongside normal operations.
Days 1-7: Count and clean
- Export your full database. Run the four-pile worksheet from the top and put a real dollar figure on what's hidden.
- Build the five lists (A through E). Mark and quarantine List E (do-not-contact).
- If you have access to roof-age and storm enrichment, run it on Lists A, B, and C now, and re-sort each by which roofs are most due.
Days 8-21: Work List A (stalled hot bids)
- Start the day-1-through-21 cadence on your freshest unsold bids.
- Log every outcome. Update dispositions ruthlessly — every call makes the database cleaner.
- Goal: book re-inspections, not roofs. Track re-inspections booked as your leading indicator.
Days 22-35: Work List C (past customers)
- Service-first calls to past customers with aging roofs.
- Ask every satisfied past customer for a referral, even when they don't buy. Their same-age-subdivision neighbors are your next List.
Days 36-63: Work List B (aged bids)
- Sharper hook: "your roof has aged X years since we looked." If you've got roof-age data, lead with the roofs now past 20.
- Layer in a postcard to the whole list to support the calls.
Ongoing: List D drip
- Run a low-effort text-and-email drip on the never-estimated pile in the background the whole quarter.
Days 64-90: Measure and systematize
- Tally it up: re-inspections booked, jobs signed, revenue from reactivation, and your real reactivation close rate per list. Now you have your own multipliers, not my conservative estimates.
- Decide who owns this permanently and what their weekly number is. Reactivation only works as a forever-function, not a quarterly stunt.
The scorecard that keeps it honest
Track these five numbers weekly. They're the difference between a real system and good intentions.
- Contacts attempted — are you actually working the list?
- Conversations had — reached a real person.
- Re-inspections booked — the true leading indicator of revenue.
- Jobs signed — the outcome.
- Reactivation revenue — the number that makes the owner keep funding it.
The compounding effect nobody talks about
Here's what happens after a quarter of disciplined reactivation, and it's the real reason to start. Your CRM stops being a place where leads go to die and becomes a renewable resource. Every estimate you write today and don't close enters a list that gets worked, not forgotten. Every repair becomes a future replacement on a known clock. Every "no for now" gets a date and a comeback.
The shops that get this stop living storm-to-storm and ad-spend-to-ad-spend. They build a base of work they own — their own past customers, their own old bids, their own streets — that produces jobs whether or not a storm comes and whether or not the lead portals raise their prices again. That's a fundamentally more stable business than one that has to buy every job fresh.
The jobs are already in there. You paid to acquire them once. The only question is whether you've built the system to dig them out before the roof gets so bad the homeowner calls somebody else — or before that prospect's neighbor's roofer knocks first.
Start with the count. Run the four-pile worksheet this week and put a dollar figure on what's hiding in your database. Then work List A on Monday. The first re-inspection you book off an eleven-month-old dead bid will change how your whole team sees that pile of names — and it'll be the cheapest job you sell all year.
If you want to know which of those buried roofs are actually due — sorted by age range and the storms each one has taken — that's exactly what RoofPredict was built to tell you. Hand it your own list. Let it point you at the roofs worth calling first.
FAQ
How many jobs are actually hiding in a typical roofing CRM?
When owners run the numbers honestly, the hidden work usually lands between a third and half of current annual revenue. The four sources are unsold estimates (the biggest pile, since most bids never close and rarely get a serious second touch), past repair customers whose roofs are now aging out, never-estimated dead leads, and referral or warranty touches. Multiply each pile's count by a conservative reactivation close rate and your average job value to get your own figure.
What close rate should I expect from reactivating old roofing leads?
It varies by list. Stalled unsold estimates from the last few years tend to reactivate around 8-12%. Past customers with aging roofs convert higher, roughly 12-18%, because the trust is already built. Cold never-estimated leads close lower, around 3-6%, but the volume is large and the cost per contact is just a phone call. Run your own quarter and replace these starting estimates with your real numbers.
Which list should I work first?
Start with your freshest unsold estimates from the last 6-18 months. They have the highest close rate and the freshest memory of you, so they produce fast wins that fund and motivate the rest of the effort. Then move to past customers with aging roofs, then older unsold bids, while running a low-effort text-and-email drip on the big cold pile in the background.
How do I segment my database without expensive software?
Any roofing CRM or even a clean spreadsheet export can do it. Cut the database into five lists: stalled hot bids (6-18 months, unsold), aged bids (18-36 months, unsold), past customers with aging roofs (5+ years), never-estimated leads (no bid, under three touches), and a do-not-contact list. Filter by date and disposition, sort, and you have a campaign structure in an afternoon.
What should the first contact actually say?
The goal of the first touch is to earn a free re-inspection, not to sell a roof over the phone. Remind them exactly who you are and where you came out, give a non-pushy reason for the call such as how much has changed since you last looked, and offer a free, honest re-check of the roof's current condition. Lower the ask and get back on the roof; the roof sells itself once you're standing on it with photos.
How does roof age change which old leads I should call?
Enormously. A dead lead on an 8-year-old roof is a poor use of a call, while a dead lead on a 21-year-old roof is a near-certain replacement waiting for a reason. Most campaigns treat every old contact the same. Sorting your dead pile by which roofs are actually due, by age and recent storm exposure, concentrates your reps' hours on the roofs most likely to close instead of spraying effort across the whole list.
Can a tool tell me which roofs in my CRM are due?
Yes. RoofPredict reads aerial imagery and weather data to estimate each roof's age as a tight range and models the storms each individual roof has taken, then scores it. You can run it against your own database to enrich every address with a roof-age range, recent storm exposure, and a risk score, so you sort your reactivation list by which roofs are most due. It's enrichment of a list you already own, not a lead service, and age comes back as a range, not a guaranteed date, so the play is still to confirm on the roof.
How many follow-up attempts does reactivation really take?
More than most roofers make. Sales research consistently finds the majority of leads get only one or two follow-up attempts before being abandoned, while most sales require five or more touches across multiple channels. Run a cadence that mixes calls, voicemail, text, email, and mail over about three weeks, and move a soft no into a quarterly nurture rather than the trash, because a roofing prospect's roof is a year older and closer to due every twelve months.
Is it legal to text and call my old roofing customers and leads?
Contacting your own prior customers and past inquiries generally stands on firmer ground than cold-contacting strangers, but telemarketing and texting rules are real and enforced. Always include clear opt-out language, stop immediately when someone asks, honor do-not-call requests, and when in doubt get explicit consent. Follow the FTC's telemarketing guidance and your state's rules. Clean opt-out handling protects your phone numbers and reputation as much as your legal standing.
A past customer calls back after a hail storm — what can I legally do?
You can inspect the roof, document conditions thoroughly with dated photos, write an accurate repair estimate for your own scope of work, and hand the homeowner a clean documentation package. You cannot negotiate or handle the claim for them, interpret their policy or coverage, promise a payout or approval, tell them the deductible is waived or covered, or advertise a free roof. Document and estimate; the homeowner files and the insurer decides coverage. Crossing that line is unlicensed public adjusting, and offering to cover a deductible to induce a claim is illegal in many states.
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
- National Roofing Contractors Association — nrca.net
- Asphalt Roofing Manufacturers Association — Shingle Service Life — asphaltroofing.org
- Insurance Institute for Business & Home Safety (IBHS) — ibhs.org
- NOAA National Weather Service — Storm Prediction Center — spc.noaa.gov
- NOAA National Centers for Environmental Information — Storm Events Database — ncdc.noaa.gov
- Federal Trade Commission — Telemarketing Sales Rule — ftc.gov
- FTC — National Do Not Call Registry (Business Guidance) — ftc.gov
- Texas Department of Insurance — Public Insurance Adjusters — tdi.texas.gov
- National Association of Insurance Commissioners — Public Adjusters — naic.org
- International Code Council — International Residential Code (IRC) — iccsafe.org
- U.S. Bureau of Labor Statistics — Roofers Occupational Outlook — bls.gov
- U.S. Census Bureau — American Housing Survey — census.gov
- Occupational Safety and Health Administration — Fall Protection in Roofing — osha.gov
- RoofPredict — roofpredict.com
Related Articles
How to Present a Roof Inspection Report That Closes the Job
The inspection didn't lose the job. The presentation did. Here's how top roofers turn a roof report into a signed contract at the kitchen table.
How to Build Homeowner Trust Fast on a Roofing Sales Call
Trust is the whole sale. Here is how top roofing reps earn it in the first five minutes at the door and carry it through the close.
How to Prequalify a Roof Before Driving Out: A Field-Tested System for Roofing Crews
Every truck roll you make on a roof that wasn't ready is margin you set on fire. Here's the desk work that tells you which addresses to drive to and which to skip.