Skip to main content

How to Win Back Lost Roofing Bids: A Field Playbook for Resurrecting Dead Estimates

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

Every roofing company is sitting on a pile of money it already paid to find. It's in the CRM under labels like "no answer," "thinking about it," "went with someone else," and "call back in spring." Those aren't dead. Most of them are just unattended. The homeowner who got three bids in April and froze is the same homeowner whose roof is one more wind event away from a forced decision. The crew that quoted a $14,000 tear-off and never heard back didn't lose on craftsmanship. They lost because nobody followed up past the second voicemail.

Winning back a lost bid is cheaper than generating a new one, and it closes faster, because the relationship and the measurement already exist. You're not starting cold. You're restarting warm. The trouble is that almost nobody in roofing has a system for it. Reps chase the shiny new lead because it feels like progress, and the old estimate rots in a spreadsheet. Below is the full playbook: why bids actually die, how to diagnose which ones are revivable, the exact cadences and scripts to use, how to re-quote without looking desperate, how to mine your own old proposals for a season of work, and how to keep the next batch from going cold in the first place.

A note before we start: the numbers in here are illustrative examples to show the math, not claims about your specific market. Plug in your own close rate, ticket size, and cost-per-lead and the logic holds.

Why roofing bids actually go cold

If you ask ten roofers why they lose bids, nine will say "price." They're mostly wrong, and believing it is expensive, because if the problem is always price you only have one lever: get cheaper. The real reasons a bid dies are more varied and most of them are recoverable.

The homeowner never made a decision at all. This is the big one. A lost bid implies the customer chose a competitor. In reality, a large share of "lost" residential roofing bids were never lost to anyone. The homeowner got overwhelmed by three quotes that don't compare cleanly, couldn't tell the difference, got busy, and the project stalled. No one won. The job is still sitting there. If you walk away the moment they go quiet, you're conceding a job that nobody else closed either.

You out-priced a competitor who under-scoped. Roofing bids are notoriously hard for homeowners to compare because two contractors can quote the "same" roof and mean completely different work. One includes ice-and-water shield to code, drip edge, full ridge vent, and a permit; the other is a nail-over with felt. The homeowner sees $14,000 versus $9,500 and assumes you're expensive. You're not expensive, you're complete. That's a re-quote problem, not a price problem, and it's winnable if you teach them what they're actually comparing.

The timing was wrong. They got the quote, then the kid needed braces, the transmission went, or they decided to wait until the leak got worse. Timing objections aren't "no." They're "not now," and "not now" has an expiration date you can track.

Your follow-up died before theirs did. Sales data across trades is consistent and brutal on this point: most reps stop following up after one or two attempts, while most sales that eventually close require five or more touches. If your cadence is "left a voicemail, sent the proposal, called once more, gave up," you are statistically quitting right before the point where deals start to close. The homeowner didn't reject you. You vanished.

The proposal was confusing or slow. A bid that arrives four days later as a one-line number in a text message loses to a clear, itemized, same-day proposal even at a higher price. If your win-back diagnosis turns up a pattern of "we were slow" or "our quote was a mystery," that's a process fix that also revives the specific deal.

Genuine loss to a competitor. Yes, sometimes they signed with someone else. Even here, a meaningful share of those jobs aren't permanently gone, because some signed contracts never get built, the other contractor ghosts, the work disappoints, or the scope balloons. A polite check-in months later catches the ones that fell apart.

The takeaway: "lost" is a status you assigned, not a fact the homeowner confirmed. Treat it as a hypothesis to test, not a verdict.

The five buckets every dead estimate falls into

Before you can win anything back, sort your graveyard. Pull every estimate from the last 18 to 24 months that didn't close and tag each one into a bucket. This takes an afternoon and tells you where the money is.

Bucket What it means Revival difficulty First move
No-decision Got the bid, never chose anyone Low Reopen with a reason to act now
Price-objection Said you were too high Medium Re-quote in good/better/best, expose scope gaps
Timing "Not now," wanted to wait Low-Medium Date-triggered follow-up
Lost-to-competitor Signed with someone else High Long-game check-in; catch failed jobs
Ghosted Went silent, reason unknown Medium Pattern-interrupt outreach, then a hard close-the-loop

The two buckets where roofers leave the most money are no-decision and ghosted, precisely because they feel like rejection and aren't. We'll spend the most time there.

The economics: why a win-back beats a new lead

Reps chase new leads because new feels productive. The math says otherwise. Work a simple example with round numbers you can replace with your own.

Say a residential re-roof averages $12,000 and your gross margin is 30 percent, so $3,600 of gross profit per job. Say a typical paid lead or marketing-sourced opportunity costs you somewhere in the low hundreds of dollars by the time you account for ad spend, lead fees, and the appointments that never show. Now look at a stale estimate. You already paid that acquisition cost months ago. The measurement is done, the photos are taken, the homeowner knows your name. Your remaining cost to revive it is a few phone calls and maybe an updated proposal: call it the rep's time for an hour.

If you have 200 dead estimates in your CRM and you revive even 8 percent of them, that's 16 jobs you already paid to find. At $3,600 gross profit each, that's $57,600 in gross profit out of work you'd written off, for the cost of a structured month of follow-up. You will not hit those numbers on every list, and a cold, two-year-old graveyard converts lower than a 90-day pipeline. But the per-deal economics are simply better than net-new, because the expensive part, getting in front of a qualified homeowner with a real roof problem, is already done.

Two practical implications:

  1. Win-back work should be scheduled, not optional. Put it on the calendar like any other lead source. A half-day a week of disciplined revival outperforms most cold canvassing hour-for-hour.
  2. Your CRM is a lead source you've been ignoring. The pipeline you already built is usually larger than the one you're buying. Treat it that way.

Step 1: Triage your graveyard before you dial

Don't start randomly calling old names. You'll burn the best opportunities with a flat, generic pitch and convince yourself win-backs don't work. Triage first.

Sort by recency. Estimates from the last 90 days are warm and should be worked first and hardest. Three-to-twelve months is a real win-back motion. Twelve-to-twenty-four months is a long shot per name but valuable in bulk. Beyond two years, the roof condition and the homeowner's situation may have changed enough that you're nearly cold-calling, though their roof is now two years older, which can work in your favor.

Sort by ticket size and margin. A revived $30,000 full-system job is worth ten phone calls. A $1,800 repair is worth two. Spend your best energy where the gross profit is.

Sort by the original loss reason. Pull your notes. "Said price was high" gets a re-quote approach. "Wanted to wait until next year" and that year has arrived gets a timing trigger. "No answer, gave up" gets fresh outreach. If your old notes are garbage, that itself is the finding, and the fix is in the prevention section below.

Flag the roofs most likely to be due now. This is where age and weather matter. A homeowner who passed on a quote two years ago on a roof you estimated at 16 to 18 years old is now sitting on a roof pushing 20. If a significant wind or hail event has rolled through their neighborhood since you last talked, the homeowner's whole risk calculus has changed even if they don't know it yet. The estimates worth calling first are the ones where the roof has aged into the failure window or taken weather since you quoted it. (More on how to find those at scale shortly.)

Here's a triage scoring rubric you can run in a spreadsheet in an hour. Score each dead estimate 0 to 2 on each line, then call the highest totals first.

Signal 0 points 1 point 2 points
Recency 18+ months 3-18 months Under 90 days
Ticket / margin Small repair Mid re-roof Full system / high margin
Loss reason Hard no, signed elsewhere Ghosted / unknown No-decision or timing
Roof age now Newer roof Mid-life In or near replacement window
Weather since quote Quiet Minor Notable hail/wind event
Contactable Bad number, no email One channel Phone + email + address

Anything scoring 8 or higher is a hot win-back. Work those this week.

Step 2: The win-back cadence that actually closes

Most roofers don't have a follow-up problem because they're lazy. They have one because they have no system, so follow-up depends on whoever remembers, which is nobody. Replace memory with a cadence. Here is a proven multi-touch sequence built for revival, not for a fresh lead. It mixes channels because homeowners answer different ones, and it runs over weeks, not days, because you're rebuilding attention.

The 21-day revival cadence

Day 1 — Phone call, with a reason. Never open with "just checking in." That phrase trains the homeowner to dismiss you. Open with a specific, legitimate reason to be calling now: a roof that's aged into its replacement window, recent weather in their area, a material price change, or a scheduling opening. If no answer, leave a short voicemail that states the reason and promises a text. Then text immediately, because the missed-call-plus-text combination dramatically lifts callbacks.

Day 1 — Text (right after the voicemail). Short, human, no wall of text. Reference the specific roof and the specific reason. We'll script these below.

Day 3 — Email with the refreshed value. Not a nag. Deliver something: an updated proposal, a good/better/best breakdown, a one-page "what's actually on your roof and why it matters" with the photos you already took. Give them a reason to re-open the file.

Day 6 — Phone call, second attempt, different time of day. If your first call was midday, try early evening. Reach a different slice of the household. Voicemail plus text again if no answer.

Day 9 — Value text or a short personal video. A 20-second phone video of you, or the photos of their roof's worn spots, beats another "following up" message. Show, don't ask.

Day 14 — Email: the soft close-the-loop. "I don't want to keep bugging you. Are you still planning to address the roof this year, or should I close out the file for now?" This permission-to-let-go email is one of the highest-response messages in all of sales. People who went quiet out of guilt or busyness reply to it because it removes the pressure.

Day 21 — Final call + breakup message. One last call, and if no answer, a friendly breakup text: "Going to stop reaching out so I'm not a pest. If the roof starts giving you trouble, you've got my number. Take care." A real percentage of dead deals reanimate on the breakup message specifically, because it signals you're not desperate, which paradoxically makes them re-engage.

Then the contact moves to long-term nurture: a touch every 60 to 90 days, mostly value (storm-season prep, a note after a local weather event, a seasonal maintenance reminder), until they're ready or the roof forces the issue.

Cadence rules that separate pros from pests

  • Every touch must carry value or a reason. If your message is "just following up," delete it and write a real one. Value can be information (their roof's age, recent weather), money (a good/better/best option), or service (a free re-look, a maintenance check).
  • Vary the channel. Call, text, email, and the occasional handwritten note or door visit for high-value deals. Some homeowners never answer the phone but reply to texts in 90 seconds.
  • Mind the legal line on texts and calls. If you're texting and calling consumers, honor opt-outs immediately, keep records of consent where you have it, respect calling-hour rules, and scrub against the National Do Not Call Registry for cold outreach. Past customers and people who requested a quote generally give you more latitude than cold prospects, but "they're in my CRM" is not the same as documented consent, so set up your system to log it and to stop on request. When in doubt, check the FTC's Telemarketing Sales Rule and your state's rules.
  • Stop means stop. The fastest way to torch your brand in a neighborhood is to keep hammering someone who asked you to quit. The breakup message is your graceful exit; use it and mean it.
  • Log every touch. If it's not in the CRM, it didn't happen, and the next person to touch the account will repeat your last message and look disorganized.

Step 3: The scripts (calls, texts, emails)

Scripts aren't about reading robotically. They're about never opening with the weak line that gets you dismissed. Adapt the words to your voice; keep the structure.

Phone opener — the no-decision bucket

"Hi Linda, it's Mike with Cedar Ridge Roofing. We put together a roof estimate for you back in the spring. I'm not calling to twist your arm. I was reviewing roofs in your area and yours is right at the age where small problems turn into expensive ones, so I wanted to check whether you ended up getting it handled or if it's still on your list."

Why it works: it names the specific past interaction, removes pressure immediately ("not calling to twist your arm"), gives a concrete reason for the call (the roof's age), and ends with an easy binary that lets them tell you the truth.

Phone opener — the price-objection bucket

"Hi Dave, Mike at Cedar Ridge. When we quoted your roof last year, I think the number caught you off guard, and honestly I'm not sure I did a good job explaining what was in it versus the cheaper bids you got. I've got a couple of ways we can structure it now that might fit better. Two minutes?"

Why it works: it owns the gap instead of blaming the homeowner, reframes the issue as scope/structure rather than raw price, and offers options.

Voicemail (keep it under 20 seconds)

"Hi Linda, Mike with Cedar Ridge Roofing, my number's 555-0148. Quick reason for the call about your roof, nothing urgent. I'll send you a text right now so you have it in writing. Talk soon."

Text — immediately after the voicemail

"Hi Linda, Mike w/ Cedar Ridge Roofing here. Just left you a voicemail. Your roof's right at the age where it's worth a fresh look, and I can update the quote we did in the spring. Want me to? Reply STOP and I'll leave you be."

The opt-out line isn't just courtesy; it's good practice for staying on the right side of texting rules.

Email — Day 3, the refreshed value

Subject: Updated numbers on your roof, Linda

Linda, when we looked at your roof in the spring I quoted a full tear-off and replacement. A few things have changed that are worth a minute of your time:

  • Your roof is another season older and showing more of the wear we flagged (photos attached).
  • I've put together three options so you can pick the scope that fits your budget instead of an all-or-nothing number.
  • If there's been any wind or hail in your area since we talked, it's worth documenting the roof's condition now while it's fresh, in case you ever need that record for your insurer.

Want me to walk you through the three options? Reply here or call/text 555-0148.

Email — Day 14, the close-the-loop

Subject: Should I close out your file?

Linda, I don't want to keep landing in your inbox. Are you still planning to deal with the roof this year, or should I set this aside for now? Either answer is completely fine, I just don't want to be a pest. Just let me know.

Breakup text — Day 21

"Linda, I'll stop reaching out so I'm not a nuisance. If the roof ever starts giving you trouble, you've got my number and your file's ready to go. Take care, Mike."

Across all of these, three patterns repeat: name the specific past interaction, give a real reason tied to now, and make it easy and pressure-free to respond. Generic "checking in" gets generic silence.

Handling the four objections you'll hear on a win-back call

When a homeowner picks up after months of silence, you'll hear the same four lines. Have a clean response ready so the call doesn't end on the objection.

"We already went with someone else." Don't argue, and don't assume the job got built. "That's great, glad you got it handled. Out of curiosity, did the work get done already, or is it still scheduled?" A real share of signed contracts never get built, the contractor ghosts, or the scope balloons. If it's done and they're happy, ask for a referral and a date to check back. If there's any hesitation, you've found a live deal.

"We decided to wait." This is a timing bucket, not a no. "Totally fair. When you pictured tackling it, were you thinking this year or next?" Pin a date, log it, and set the trigger. Then add the honest nudge: the roof is older now than when you quoted, and waiting on a roof that's already in its failure window usually means paying for interior damage on top of the roof.

"Money's tight right now." Don't discount, restructure. "I hear you, a full re-roof is a big number all at once. Let me show you the three ways we can scope it, plus whether financing makes sense, so you're not stuck choosing between the whole roof and nothing." Good/better/best plus a payment option reframes the decision from yes/no to which-and-how.

"Send me something and I'll look at it." The polite brush-off. Pin it down: "Happy to. I'll send the updated options today, then I'll give you a quick call Thursday at six to walk through them, does that work?" A scheduled next touch turns a brush-off into a real appointment instead of another dead file.

The numbers to track so you know it's working

Win-back work only compounds if you measure it. Track five things and review them weekly:

Metric What it tells you Healthy direction
Touches per dead estimate Whether reps are actually running the cadence At least 5-7 before nurture
Reach rate Share of contacts you reach a live person Rising as data hygiene improves
Revival rate by bucket Which buckets are worth your time No-decision/timing lead
Average days to close How fast revived deals move Faster than net-new
Gross profit revived The number ownership cares about The headline you report

The metric that changes behavior is gross profit revived from estimates you'd written off, because it makes win-back impossible to deprioritize next quarter.

Step 4: Re-quoting without looking desperate

Dropping your price the moment a homeowner hesitates teaches them that your first number was inflated and your next one might be too. It also wrecks the margin you need to do the job right. The goal of a re-quote isn't to get cheaper. It's to make the value legible and give the homeowner a way to say yes that fits their reality.

Lead with good/better/best

A single take-it-or-leave-it number gives the homeowner one decision: yes or no. Three tiers change the question from "do I buy?" to "which one do I buy?" Structure it honestly:

  • Good — the code-compliant, do-it-right baseline. This is your floor; never quote below code to win a bid, because you own the liability when it fails.
  • Better — the baseline plus the upgrades most homeowners are glad they bought: a better shingle line, upgraded underlayment, a stronger ridge vent, a longer workmanship warranty.
  • Best — the full system with the premium material, enhanced ventilation, and the manufacturer's top warranty tier.

Put all three on one page with what's included and excluded in plain language. The homeowner who froze on a single $14,000 number often signs the $12,500 "better" tier within a week, because now they feel like they're making a smart choice instead of just spending a lot.

Expose the apples-to-oranges gap

If you lost on price to a cheaper bid, the homeowner almost certainly compared two different scopes without knowing it. Don't trash the competitor. Educate. A simple side-by-side does the work for you:

Line item A complete re-roof A typical low bid
Tear-off to deck Yes, inspect decking Often a nail-over
Ice & water shield Per code at eaves/valleys Sometimes skipped
Underlayment Synthetic, full coverage 15 lb felt
Drip edge New, all edges Reuse or omit
Ventilation Balanced intake + exhaust As-is
Flashing New step/counter flashing Reuse old
Permit & inspection Pulled Sometimes skipped
Workmanship warranty Written, multi-year Verbal or none

Hand the homeowner that grid and the $4,500 difference explains itself. You're not more expensive; you're quoting a roof that lasts and won't leak in three years. Many re-quotes are won right here, with no price change at all.

Use honest, time-bound reasons to act, never fake scarcity

Real reasons to move now: material prices genuinely rising, a crew opening in their neighborhood that saves a mobilization trip, the roof's worsening condition, a window before the busy season. Use those. Do not invent fake deadlines or phantom discounts that vanish at midnight. Homeowners talk to each other, leave reviews, and remember being manipulated. Manufactured urgency wins one bid and costs you a neighborhood. The FTC also takes a dim view of fictitious "limited time" pressure. Honest urgency is plentiful in roofing; you don't need to fake it.

If you do move on price, get something back

Never give a discount for nothing. Trade it: a flexible install date that lets you fill a slow week, permission to put a sign in the yard and use the project in your marketing, a referral introduction to two neighbors, or a deposit that locks the schedule. A concession the homeowner earns feels like a deal; a concession you volunteer feels like proof you were overcharging.

Step 5: The storm and insurance angle, done legally

A huge share of stale roofing estimates sit on roofs that have since taken weather. This is one of the most powerful win-back triggers there is, and also the one where roofers get themselves in legal trouble. Get the value without crossing the line.

What you can legitimately do for a homeowner. You can inspect the roof. You can thoroughly document its condition with dated photos and measurements. You can write an accurate, itemized repair estimate for the work you would do, aligned with standard estimating practice. You can hand that documentation and estimate to the homeowner so they have a clear record of their roof's condition and a professional scope of repair. That documentation genuinely helps a homeowner who decides to file a storm-damage claim, because they walk into the process with facts instead of guesses.

What you must not do. You may not, for a fee, negotiate, adjust, or "handle" the homeowner's insurance claim. You may not interpret their policy or tell them what's covered. You may not promise a specific approval, payout, or settlement amount. You may not say a word about waiving, absorbing, or eliminating their deductible. You may not advertise a "free roof." And you may not represent the homeowner against their insurer. Doing any of that can amount to unlicensed public adjusting, which is illegal in most states and has been enforced against roofers, including for merely marketing yourself as a claims or insurance "specialist." The homeowner files. The insurer decides coverage. You document and estimate. That's the line, and it's a bright one.

So the safe, effective storm win-back script sounds like this:

"Hi Dave, Mike at Cedar Ridge. We quoted your roof last year. I noticed your area took some weather since then, and at the age your roof's at, it's worth getting it documented properly while everything's fresh, dated photos, a real condition report, and an itemized estimate to repair it. That way you've got an accurate record in hand. If you decide to talk to your insurer, that's between you and them, but you'll be walking in with facts instead of guesses. Want me to come take a look?"

Notice what that does and doesn't say. It offers documentation and an estimate (yours to give). It does not promise a claim outcome, mention the deductible, or offer to "handle" anything. That framing captures the homeowner's real interest, getting their roof addressed after a storm, while keeping you squarely on the contractor side of the line. Teach your reps the do-not-say list explicitly: no "we'll get it approved," no "we'll cover your deductible," no "free roof," no "we'll fight the adjuster for you." Those phrases feel like strong sales lines and are exactly the ones that get roofers fined.

Step 6: Mining old proposals at scale (the database goldmine)

Everything above works one homeowner at a time. The bigger win is running your whole graveyard as a list. This is where a dead-estimate pile turns into a planned season of work.

Build the master win-back list

Export every non-closed estimate from your CRM for the last 24 months. For each, you want: address, original quote date, ticket size, loss reason, your estimate of the roof's age at the time, and contact info. If your CRM is too messy to export cleanly, that's a sign to fix your data hygiene now, because a clean CRM is the engine of every future win-back.

Re-rank the list by who's most due now

A two-year-old estimate list isn't equally valuable across every address. The homeowners worth calling first are the ones whose roofs have aged into the replacement window or taken weather since you quoted. The problem: you quoted hundreds of these, and you can't manually re-drive every street or remember which neighborhoods got hail in the last 18 months. You need the roof age and storm history per address, refreshed to today, not to the day you originally quoted.

This is exactly the gap RoofPredict fills. Hand it your list of old estimate addresses and it enriches each one with two signals that decide which dead bids are worth reviving first: a roof-age range read from aerial imagery, and the storm exposure modeled on that specific roof, hail and wind scored house by house rather than "it hailed somewhere in this ZIP." A hail map tells you where a storm passed; modeling the physics on each roof tells you which roofs it likely wore out. Pair that with the age range and your dead-estimate list re-sorts itself: the homeowner you quoted three years ago on an 18-year-old roof that has since taken a significant hail event jumps to the top of today's call list, while the one whose roof was newer drops down. It turns "call 300 old names in random order" into "call the 40 whose roofs are most likely due right now, first."

Be clear-eyed about what those signals are and aren't. The roof age is a range, not a birth certificate, because aerial imagery can't see a permit. The storm score is the odds that a given roof took meaningful impact, not proof of damage, and only an on-roof inspection confirms condition. RoofPredict doesn't generate leads, file or touch insurance claims, or measure the roof for ordering material; it tells you which of your existing addresses are most likely due and most likely storm-worn, so your follow-up energy lands where the work actually is. Used that way, it makes the difference between working your graveyard alphabetically and working it by who's ready to buy.

Run it like a campaign

Once the list is ranked, treat it like any lead source with a defined start and end:

  1. Pick a window. A focused two-to-three-week win-back push beats a vague "we'll get to it."
  2. Assign owners. Each rep gets a slice of the ranked list and runs the 21-day cadence.
  3. Set a daily activity floor. For example, 20 win-back touches per rep per day. Activity is the only input you control; outcomes follow.
  4. Track conversion by bucket. You'll quickly learn that no-decision and timing buckets convert several times better than lost-to-competitor, and you'll weight future effort accordingly.
  5. Measure the dollars revived, rather than only appointments set. The headline number that gets buy-in from ownership is "$X in gross profit from estimates we'd written off."

Step 7: Re-engaging past customers and aging warranties

Your win-back list shouldn't stop at lost bids. Past customers, people who already trusted you with their money, are the warmest list you own and the most neglected. A homeowner you re-roofed a section of, or did a repair for years ago, is a re-roof or referral waiting to happen.

  • Repair customers from 5 to 10 years ago. You patched a leak; now the whole roof may be due. They already know you do good work.
  • Past full re-roofs nearing warranty milestones. A maintenance check near the end of the workmanship-warranty window is a service the homeowner appreciates and a natural touchpoint that surfaces new work.
  • Multi-property owners and landlords. If you did one of their roofs, ask about the others. One satisfied owner can be five roofs.
  • Referral re-asks. A happy past customer who's never been asked for a referral is money on the table. "We've got a crew working your neighborhood next month, is there anyone you'd want me to take care of?"

Run these on a calendar trigger: every job that closes gets future follow-up dates set automatically, a check-in at one year, a maintenance offer at the warranty milestone, a re-roof conversation as the roof ages into its window. The same age-and-weather signals that re-rank your lost bids apply here: a past customer whose roof has aged past the replacement window or taken a storm is your single warmest call.

Step 8: Stop creating dead bids in the first place

The best win-back system is the one you need less often. Most cold estimates were avoidable. Tighten the front of your process and your graveyard shrinks.

Quote on-site or same-day, every time. Speed-to-quote is one of the strongest predictors of winning a roofing bid. A clear proposal delivered while you're standing in the driveway, or in their inbox before dinner, beats a better-priced bid that shows up Thursday. Slow quotes become cold quotes.

Make the proposal legible. Itemized scope, good/better/best where it fits, photos of the actual problems, plain-language warranty terms, and a clear next step. Homeowners ghost confusing proposals because they can't tell what they're buying.

Set the next step before you leave. Never end a quote with "let me know." End it with a specific follow-up: "I'll check back Thursday at six, does that work?" A scheduled next touch is the single biggest difference between a pipeline and a graveyard.

Write usable CRM notes. "No" is useless. "Wants to wait until tax refund in March, husband's the decision-maker, roof is ~17 yrs" is a roadmap for the win-back you'll run in March. Your future revival campaign is only as good as today's notes.

Build follow-up into the system, not the rep's memory. Automate the cadence so a quote that goes quiet triggers Day 1, Day 3, Day 6 touches without anyone remembering. The reps who "forget to follow up" aren't bad reps; they're reps without a system.

Tag the loss reason honestly at close. If you don't know why you lost, you can't win it back. Make "reason lost" a required field, with real buckets, not "other."

A 30-day win-back plan you can start Monday

Putting it together, here's a concrete month that turns the theory into revived jobs.

Week 1 — Build the list. Export 18 to 24 months of non-closed estimates. Tag each into the five buckets. Score them on the triage rubric. If you can, enrich the addresses with current roof-age range and storm history so the list ranks by who's due now. End the week with a ranked call list and your top 50 hot win-backs identified.

Week 2 — Work the hot 50. Run the 21-day cadence on the highest-scoring estimates: no-decision, timing, and storm-worn roofs first. Phone plus immediate text on Day 1. Refreshed value email on Day 3. Log every touch. Re-quote in good/better/best wherever price was the stated issue.

Week 3 — Widen and re-quote. Pull in the next tranche of the list. For every price-objection bucket, send the side-by-side scope grid and the three-tier proposal. Start the past-customer re-engagement track in parallel, warranty milestones and old repair customers.

Week 4 — Close, measure, and systematize. Push the close-the-loop and breakup messages to everyone who's gone quiet through the cadence; you'll be surprised how many reanimate on the breakup. Tally the dollars revived. Then make it permanent: turn the cadence into an automated CRM sequence so the next quote that goes quiet never becomes a dead estimate by neglect again.

Do this once and you'll find money you'd written off. Do it as a standing monthly rhythm and your CRM stops being a graveyard and becomes a second pipeline, one you already paid for.

The bottom line

Lost roofing bids mostly aren't lost. They're abandoned, by you, one or two follow-ups too early, on roofs that keep getting older and keep taking weather whether anyone calls or not. The contractors who win them back aren't slicker or cheaper. They're systematic: they triage the graveyard, they run a real multi-touch cadence with reasons and value in every message, they re-quote to make their value legible instead of dropping price, they stay strictly on the documentation side of any storm or insurance conversation, and they let roof age and storm exposure tell them which dead estimates are most likely due right now. That last part is the difference between dialing 300 old names in random order and calling the 40 homeowners whose roofs the years and the weather have finally made ready to buy. The job's already in your CRM. Go get it.

FAQ

How long should I wait before following up on a roofing bid?

Start fast. The first follow-up should go out within 24 to 48 hours of delivering the quote, while you're still top of mind. Then run a multi-touch cadence over the next two to three weeks: a mix of calls, texts, and emails on roughly Day 1, 3, 6, 9, 14, and 21. Most sales that close require five or more touches, yet most reps quit after one or two, so the contractors who simply keep showing up with a reason win the bids everyone else abandoned.

How many times should I follow up before giving up on a lost bid?

Run at least five to seven structured touches before moving a deal to long-term nurture, and finish with a 'close-the-loop' message and a friendly breakup note. A meaningful share of dead deals reanimate on the breakup message specifically, because it removes pressure and signals you're not desperate. After the active cadence ends, don't delete the contact, shift them to a value touch every 60 to 90 days until the roof's age or a storm forces a decision.

What's the best way to win back a bid I lost on price?

Don't just drop your number, that teaches the homeowner your first price was padded. Instead, re-quote in good/better/best tiers so they choose a scope instead of facing one all-or-nothing figure, and show a plain side-by-side of what a complete re-roof includes versus a cheaper bid (tear-off vs. nail-over, synthetic underlayment vs. felt, new flashing vs. reused, permit vs. none). Most price 'losses' are really scope mismatches the homeowner never understood. Make the value legible and you often win without cutting the price at all.

Are old roofing estimates in my CRM worth chasing?

Yes, and they're usually your cheapest source of work. You already paid to find those homeowners, the measurement and relationship exist, and the roof is older now than when you quoted it. A revived job costs you a few phone calls instead of a fresh acquisition cost, so the per-deal economics beat net-new leads. Even an 8 to 10 percent revival rate on a few hundred dead estimates is a season of jobs you'd written off. The key is to work the list in priority order, not alphabetically.

Which old estimates should I call first?

Call the ones most likely to be due right now. Prioritize by recency (last 90 days first), ticket size and margin, loss reason (no-decision and timing buckets convert far better than 'signed with someone else'), and especially by the roof's current age and storm exposure. A homeowner you quoted on an 18-year-old roof three years ago is now sitting on a roof past 20, and if their area has taken hail or wind since, their whole decision has changed. Those storm-worn, age-due roofs go to the top of the list.

What should I say in a follow-up call so I don't sound like a pest?

Never open with 'just checking in.' Lead with a specific, legitimate reason to be calling now: the roof has aged into its replacement window, there's been recent weather in the neighborhood, material prices changed, or you have a crew opening nearby. Then remove pressure immediately ('I'm not calling to twist your arm') and end with an easy binary ('did you get it handled, or is it still on your list?'). Every touch should carry value or a real reason, otherwise it reads as nagging.

Can I help a homeowner with their storm insurance claim to win the job?

Only on the documentation side. You can inspect the roof, take dated photos, document the condition, and write an accurate itemized repair estimate, then hand all of that to the homeowner so they have a clear record. You cannot, for a fee, negotiate, adjust, or 'handle' the claim, interpret their policy or coverage, promise an approval or payout, say anything about waiving or absorbing their deductible, or advertise a 'free roof.' Those cross into unlicensed public adjusting, which is illegal in most states and has been enforced against roofers. The homeowner files; the insurer decides coverage; you document and estimate.

How do I re-engage past customers, beyond just lost bids?

Past customers are your warmest list and the most neglected. Set automatic future follow-up dates on every closed job: a check-in at one year, a maintenance offer near the workmanship-warranty milestone, and a re-roof conversation as the roof ages into its replacement window. Repair customers from five to ten years ago are prime re-roof candidates, multi-property owners may have other roofs, and happy customers who've never been asked are sitting referrals. The roof-age and storm signals that rank your lost bids work here too.

How can I tell which of my old estimates are on storm-damaged roofs?

You can't reliably do it from memory across hundreds of addresses, and you can't re-drive every street. Tools like RoofPredict enrich a list of your existing estimate addresses with a roof-age range from aerial imagery plus storm exposure modeled per roof, hail and wind scored house by house rather than 'it hailed somewhere in this ZIP.' That re-ranks your dead-estimate list by who's most likely due now. Keep the limits straight: the age is a range, not an exact date, and the storm score is the odds a roof took impact, not proof, so only an on-roof inspection confirms damage.

How do I keep bids from going cold in the first place?

Quote on-site or same-day (speed-to-quote strongly predicts winning), make the proposal legible with itemized scope and photos, and never leave without setting a specific next step ('I'll check back Thursday at six'). Write usable CRM notes that capture the real situation and decision timeline, tag an honest reason-lost on every dead bid, and automate the follow-up cadence so a quiet quote triggers touches without anyone relying on memory. The best win-back system is the one you need less often because fewer bids die.

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. FTC Telemarketing Sales Rule (Business Guidance)ftc.gov
  3. National Do Not Call Registrydonotcall.gov
  4. FTC: Avoiding Deceptive Pricing and Urgency Claimsftc.gov
  5. Insurance Institute for Business & Home Safety (IBHS)ibhs.org
  6. NOAA Storm Prediction Center (SPC)spc.noaa.gov
  7. National Weather Service Storm Events Database (NCEI)ncdc.noaa.gov
  8. OSHA Fall Protection in Constructionosha.gov
  9. International Residential Code (ICC) Roofing Provisionscodes.iccsafe.org
  10. Texas Department of Insurance: Public Adjusterstdi.texas.gov
  11. National Association of Insurance Commissioners (NAIC)naic.org
  12. U.S. Bureau of Labor Statistics: Roofers (Occupational Outlook)bls.gov
  13. U.S. Census Bureau American Housing Surveycensus.gov
  14. RoofPredictroofpredict.com

Related Articles