How to Keep Roofing Sales Reps Busy Without Buying Leads
On this page
A roofing rep who runs out of doors by 11 a.m. is the most expensive person on your payroll. You are paying a salary, a phone, a truck allowance, and a commission draw to someone who is sitting in a parking lot scrolling their phone because nobody told them where to go next. The instinct, when this happens, is to call a lead vendor and buy the rep something to do. That instinct is how a lot of roofing companies end up spending forty to three hundred dollars per lead to keep a person busy who was already on payroll, chasing homeowners who got the same call from four other crews eleven minutes earlier.
There is a different way to think about it. The job is not to buy more leads. The job is to make sure a rep always has a high-quality list of doors to work, generated from things you already own or can get cheaply: your own past customers, your own service area, public records, and the physical condition of the roofs themselves. Done right, a rep's day is full because the pipeline of who to talk to next never empties. That pipeline is something you build once and refill on a schedule, not something you rent by the click.
This is a field manual for keeping reps productive every working hour without a lead invoice. It covers the daily mechanics (how many doors, how to route, how to score a roof from the curb), the database work most owners ignore (your old estimates are a season of jobs), the canvassing systems that stop green reps from quitting, and the data sources that tell you which roofs are actually due so a rep is not knocking eighty new roofs to find the four old ones. It also covers the storm and insurance side honestly, including the lines a rep must never cross, because that is where reps get a company sued.
Why "buy a lead to keep them busy" is the wrong reflex
Start with the unit economics, because the whole argument lives there.
When you buy a shared lead, you are buying a homeowner's contact information that the vendor also sold to three or four other contractors. The U.S. Federal Trade Commission has written extensively about how the lead-generation business actually works: aggregators collect a consumer's information and route it to multiple buyers, and the consumer rarely understands how many companies will contact them. So your rep is not the only call. They are the fourth call. The homeowner is annoyed by the time your rep dials, and the close rate reflects it.
Now layer in the math of a busy day. Say a rep works eight productive hours. If you fill those hours with purchased leads at even a modest blended cost, the cost-per-appointment climbs fast because most of those leads never convert to a real conversation. If instead you fill those same eight hours with self-generated doors, your marginal cost per door is gas, time, and a printed door hanger. The rep is busy either way. The difference is whether each unit of "busy" costs you a few cents or a few hundred dollars.
There is a second, quieter cost. A rep who is fed nothing but bought leads never learns to generate their own work. The day the lead budget gets cut, or the vendor's quality drops, that rep has no skill to fall back on. A rep who learns to read a street, work a list, and reactivate an old customer is an asset that keeps producing in a drought. You are doing more than saving the lead fee. You are building a salesperson.
Run the real cost-per-job math, not the cost-per-lead math
Lead vendors quote you a cost per lead because it is the friendliest number they have. The number that runs your business is cost per signed job. Walk it through with conservative figures.
Say you buy shared leads at $90 each. In a busy storm market, a typical shared lead closes somewhere in the single digits to low teens as a percent, because you are racing other contractors to the same homeowner. Take 8%. That means roughly 12 to 13 leads per signed job, or about $1,100 to $1,200 in lead cost per job before you pay the rep, the gas, or the materials. Exclusive leads cost more per lead but close higher; the cost-per-job often lands in a similar band once you account for the premium.
Now run the self-generated side. A rep working pre-filtered old-roof streets knocks 60 to 90 doors a day, has 8 to 12 real conversations, and books a handful of inspections. The hard cost is gas, a stack of door hangers, and the rep's time, which you pay regardless. The cost that is additional to having the rep on payroll is a few dollars a day in printing and fuel. The job gets harder to attribute to a single dollar figure, which is exactly why owners under-count it — but the marginal acquisition cost is a fraction of the bought-lead number.
| Channel | Hard cost per unit | Rough close path to one job | Marginal cost per job |
|---|---|---|---|
| Shared purchased lead | ~$90 / lead | ~12–13 leads at ~8% | ~$1,100–$1,200 |
| Exclusive purchased lead | $150–$300+ / lead | fewer leads, higher close | often a similar band |
| Filtered door-knock | pennies / door | a day of filtered doors per booked job | gas + hangers |
| Old-estimate reactivation | a phone call | warm list, higher reconversion | effectively the call time |
| Targeted mail + knock | postage + print | warm streets, coordinated touch | postage + print |
The table is not a promise of exact numbers — your market and close rates set those. The point is structural: the self-generated channels move the cost from "a few hundred dollars per unit that you pay to a reseller" to "a few cents per unit that you pay to a gas station and a printer." Across a season, that gap funds another truck.
The three things a rep actually needs to stay busy
Strip it down and a productive rep needs exactly three inputs, refilled continuously:
- A list of addresses worth visiting today — not the whole street, the right doors.
- A reason to be at each door — a specific, honest, per-home talking point.
- A route — so they spend the day talking, not driving in circles.
Every system in this manual exists to keep one of those three buckets full. When a rep stalls out at 11 a.m., one of the three ran dry. Diagnose which one and you fix the real problem instead of papering over it with a lead invoice.
Source one: your own customer book is a season of jobs
The cheapest list you will ever work is the one already sitting in your CRM, your QuickBooks, and that shoebox of old estimates. Most roofing companies treat past customers as finished business. They are not. They are the warmest doors in your entire market, and almost nobody works them systematically.
Think about who is in that database:
- Homeowners you gave an estimate to and never closed. They had a roof problem two years ago. The problem did not go away. Either they patched it, did nothing, or hired someone who did it badly. All three are openings.
- Repair customers who never bought the full replacement. You fixed a leak; the roof is still old. When that roof crosses into replacement territory, you want to be the name they already trust.
- Full-replacement customers from 8, 10, 15 years ago whose other roof components (gutters, skylights, ventilation) are aging, and who know people. The referral ask is a door.
- Storm-route customers in a neighborhood that just took weather again.
Here is a workflow a sales manager can run in an afternoon and hand to reps as a full day of calls and doors.
The 90-minute database mine
Step 1 — Pull every estimate older than 18 months that never closed. Export from your CRM or estimating tool. You are looking for name, address, the roof issue noted, and the estimate date.
Step 2 — Filter by roof age. A leak estimate on a roof that was already 18 years old is now a roof that is past 20. That is a replacement conversation, not a repair conversation. If you do not know the roof's age, this is exactly where an address-level roof-age range (covered later) earns its keep.
Step 3 — Segment into three call lists:
| Segment | Who | The opening line (honest) |
|---|---|---|
| Unclosed old estimates | Quoted 18+ months ago, no sale | "We looked at your roof back in [year]. Wanted to see how it's holding up." |
| Repair-only customers | Bought a repair, never the roof | "We patched that valley a couple years back. Roofs that age tend to start asking for more. Worth a free look?" |
| Aging full-replace customers | Replaced 8+ years ago | "You're one of our customers. We're in the neighborhood checking on roofs we've done. Anything we can look at for you?" |
Step 4 — Hand reps a mixed daily sheet: 15 phone numbers to dial in the morning, 15 addresses to drive in the afternoon, all from the same database pull. A rep is never idle because the list is already built.
A real example of the math: a company with 1,200 past estimates and a 30% close rate on its original quotes has, conservatively, several hundred unclosed estimates sitting cold. If even 3% of those convert on a re-approach, and an average residential re-roof is several thousand dollars in revenue, the database mine is worth more than most lead budgets — at zero acquisition cost. The only spend is the rep's time, which you are paying for regardless.
Make reactivation a standing motion, not a one-time blitz
The mistake is treating the database as a one-time gold rush. Mine it once, close a few, forget it. Instead, build a recurring cadence:
- Monthly: every estimate that crosses the 18-month-unclosed line drops onto a call list automatically.
- Quarterly: every past customer whose roof crosses an age threshold (say, 15 years for a 3-tab asphalt roof) drops onto a "check-in" list.
- After every qualifying storm: every past customer inside the affected area drops onto a documentation-and-inspection list (handled carefully — see the claims section).
When those three triggers run on a calendar, a chunk of every rep's week is pre-filled before they walk in the door.
Turn every past customer into a referral door
Past customers are not only a re-roof list; they are an introduction engine. A homeowner who liked your work knows neighbors with the same-age roof on the same street that took the same weather. Most roofers ask for referrals badly — a vague "send us anyone you know" that produces nothing. Make it specific and easy:
- Ask at the moment of satisfaction. The day the crew cleans up and the customer is happy is the highest-yield moment. Train the crew lead or rep to ask then, not six months later.
- Ask for a name, not a concept. "Is there a neighbor whose roof looks as rough as yours did?" beats "know anyone who needs a roof?" People answer concrete questions.
- Give them a reason to refer. A simple referral incentive (a gift card, a discount on a future repair) turns a happy customer into an active one. Keep it honest and disclosed.
- Close the loop. When a referral becomes a job, tell the referrer. It triggers the next referral.
A rep with a referral list from this week's completed jobs has warm doors to knock that came from your own crew's work — zero acquisition cost, and a conversation that opens with "your neighbor [name] suggested I stop by."
Source two: work the street you're already standing on
Door-knocking gets dismissed as a numbers game where you knock everything and hope. That is how green reps burn out and quit. The pros treat a street as a list to be filtered, not a wall to be brute-forced. The filter is the roof itself.
Read the roof from the curb
A rep does not need to climb a ladder to triage a street. There are visible signals that separate "this roof might be due" from "skip it." Train every rep on these so they spend their knocks on roofs that can actually buy:
- Granule loss and color fade. Asphalt shingles shed protective granules as they age. A roof that has gone from charcoal to a patchy grey, with shiny asphalt showing through, is well into the back half of its life.
- Cupping and curling at the edges. Shingle tabs that lift, curl, or cup are a late-life signal. Visible from the ground on a sunny day.
- Sagging or uneven planes. A roof deck that dips between rafters can mean moisture and long-term wear.
- Patch jobs and mismatched shingles. A square of newer shingles on an old roof means somebody already paid to keep it alive — a homeowner who has accepted the roof is a problem.
- A brand-new roof. The most important read is the negative one: a crisp, uniform, full-granule roof is a skip. Knocking it wastes the slot.
The National Roofing Contractors Association publishes guidance on roof system inspection and the visible signs of weathering and deterioration; train reps to the same vocabulary a real inspector uses so they sound like professionals at the door, not salespeople guessing.
The skip-the-new-roof discipline
Here is the single highest-leverage habit you can drill into a canvassing rep: walk past the new roofs. A rep who knocks every door on a 60-house street spends most of the day at homes that physically cannot buy a roof for a decade. A rep who knocks only the 18 roofs that show age signals has the same conversation count by lunch and a far higher hit rate.
This is also where address-level roof-age data changes the day. If a rep walks up to a street already knowing which 18 of those 60 roofs fall into an old-enough age range, the curb-read becomes a confirmation step instead of a guessing game. More on that below.
A door-knocking day that actually fills eight hours
| Time block | Activity | Target output |
|---|---|---|
| 8:30–9:00 | Route review: 40 pre-filtered addresses, mapped | Tight loop, no backtracking |
| 9:00–12:00 | Knock filtered doors, curb-read each | 60–90 doors, 8–12 conversations |
| 12:00–12:30 | Lunch + log every contact in CRM | Nothing falls through |
| 12:30–4:00 | Knock + run any same-day inspections booked | 4–6 roof looks |
| 4:00–5:30 | Door hangers on no-answers, evening re-knocks | Coverage of the no-answers |
| 5:30–6:00 | Log, set follow-ups, plan tomorrow's route | Tomorrow is pre-loaded |
The point of the table is not the exact hours. It is that the day is engineered to be full. A rep with 40 pre-filtered addresses and a route never hits the parking-lot-scroll dead zone, because the next door is always defined.
Route density is the hidden productivity lever
A rep who drives between scattered addresses can lose two of eight hours behind the wheel. The fix is density: cluster the filtered doors so the rep walks, not drives. The math is simple — if your filtered old-roof addresses are spread one per block across a wide area, the rep spends the day commuting. If you pull the targeting list and cut routes by tight geography first, then by roof age within each cluster, the rep parks once and works on foot.
Two rules that recover hours:
- Never hand a rep a list sorted by score alone. Sort by geography first, then by roof age inside each cluster. The "best" door three miles away is worse than four good doors on the same street.
- Aim for a walkable loop, not an out-and-back. Map the day so the rep ends near where they started, with the no-answer re-knocks falling on the way back.
When you pre-filter on roof age and cluster on geography, a rep can realistically work 80 to 100 filtered doors in a day instead of 40, because the windshield time collapses. That is the difference between a half-busy rep and a fully busy one, and it costs nothing but better list-building.
The door scripts and objection handling that keep a rep moving
A rep stalls not only when the list runs dry but when they freeze at the door. Give them a small, honest script library so every interaction has a next line. None of these promise anything the company cannot deliver.
The opener (filtered street, no mailer): "Hi, I'm [name] with [company]. We're checking roofs on [street] that are getting up there in age — yours looks like it might be in that range. Mind if I take a quick look from the ground and let you know what I see?"
The opener (after a mailer): "Hi, I'm [name] with [company] — we mailed you about your roof last week. We're on the street today. Want me to take a look while I'm here?"
The opener (past customer): "Hi [name], it's [company] — we did your roof back in [year]. We're in the neighborhood checking on the roofs we've installed. Anything you want us to look at?"
Common objections and honest responses:
| Objection | What's really going on | Honest response |
|---|---|---|
| "I'm not interested." | Reflex, no information yet | "Totally fair. Most folks don't think about the roof until it leaks. A two-minute look now just tells you where you stand — no charge, no obligation." |
| "I just had it looked at." | Maybe true, maybe a brush-off | "Good — who'd you have out? I'm happy to give you a second set of eyes for free so you can compare notes." |
| "Is this about a free roof / insurance?" | Skeptical of storm-chasers | "No promises like that from me — I can't tell you what your insurer will cover. What I can do is document exactly what's on your roof so you have the facts." |
| "How much is a roof?" | Buying signal | "Depends on size and what it needs — that's why the free look matters. Let me get up there, then I'll give you a real number, not a guess." |
| "I need to talk to my spouse." | Real, common | "Of course. Let's set a time when you're both home so I can walk you both through what I find — when works?" |
Drill these until they are reflexes. A rep who always has a next line stays at the door longer, and a rep who stays at the door longer books more inspections from the same number of knocks.
Source three: targeted mail and door hangers you control
Mail is not dead for roofers; untargeted mail is dead. Blanketing a ZIP code with the same postcard is the EDDM (Every Door Direct Mail) approach, and it is cheap per piece but expensive per response because most of the doors do not need you. The alternative is targeting mail to homes by roof age and condition so a rep follows up warm pieces instead of cold ones.
The U.S. Census American Housing Survey and local property records give you a rough handle on housing stock and age of structure, but year-built is not roof age — a 1995 house may have a 2019 roof. That gap is exactly why mailing on "house built before 2005" alone wastes a chunk of every drop. Pairing the mailing list with roof-age and storm signals is what tightens response.
A practical mail-plus-knock loop:
- Drop a targeted piece to the old-roof addresses in a chosen set of streets.
- Wait 5–7 days so the piece lands and registers.
- Send a rep to those exact streets with a door hanger that references the mailer ("We mailed you about your roof last week").
- Log every contact so the same homes get a coordinated touch instead of random ones.
The rep's day is busy and warm because they are knocking streets that already received a piece. The cost is postage and printing, both of which you control, neither of which resells the homeowner to a competitor.
Source four: which roofs are actually due — the data that fills the list
Everything above gets dramatically more efficient when you stop guessing which roofs are old. This is the bottleneck in every self-generated system: a rep can only filter a street as well as their eyesight and a county year-built field allow, and both are blunt.
This is the specific problem RoofPredict was built for. It reads aerial imagery to estimate a roof-age range per address (not an exact install date — nobody can give you that from the air, and anyone who claims an exact date is selling you a number they made up), and it models storm physics per roof: how hail and wind actually loaded that roof, house by house, rather than just whether a storm passed through the ZIP. The output is a ranked list of the addresses on a street, or across a service area, most likely to be due — old enough to replace, or worn by the weather they actually took.
What that does to a rep's day:
- The curb-read becomes confirmation, not search. A rep walks streets already sorted oldest-first, so the first knocks are the most likely buyers.
- The skip discipline gets enforced automatically. New roofs fall to the bottom of the list; the rep never wastes the slot.
- Your own list gets richer. Append a roof-age range and recent storm signal to the addresses already in your CRM or mailing list, and the database mine and mail loop both get sharper.
Honest limits, because a tight trade compares notes and overselling this would be a lie: a roof-age range is a range, not a birth certificate — a roof might read 18 to 22 years and be exactly 20, or be a careful re-roof that beats its age. A storm model is odds, not proof that a specific shingle is cracked; the rep still has to get on the roof and document what is actually there. It tells you which doors are worth the knock. It does not close the job, climb the ladder, or write the estimate. What it does is make sure that when a rep runs out of doors at 11 a.m., the problem is solved at the source: the list of who is actually due never runs dry, and it costs you nothing per click because it is built on imagery and your own data, not a reseller's auction.
Used this way, the data is not a lead service. It is the targeting layer that makes every other free channel — old estimates, door-knocking, mail — hit a higher percentage. The rep is busy and the busy hours are aimed at roofs that can actually buy.
Source five: storm response done right (and the lines reps cannot cross)
After a hail or wind event, a service area fills with work and with out-of-town crews. This is the highest-opportunity and highest-risk channel for keeping reps busy, because it is also where reps say things that get a company fined or sued. So the rules come first.
What a roofer may and may not do on a storm claim
A roofing contractor may inspect a roof, document damage with photos and measurements, and prepare an accurate repair estimate for their own scope of work. They may state facts about that scope to the homeowner and, regarding their own work, to the carrier. That is legitimate, valuable work.
A roofer may not, for a fee, negotiate or "handle" the homeowner's insurance claim, interpret the policy or what is covered, promise a specific payout or that a claim will be approved, say anything about waiving, absorbing, or "taking care of" the deductible, advertise a "free roof," or represent the homeowner against the insurer. In many states that crosses into unlicensed public adjusting. Texas, for example, has treated even calling yourself an insurance or claims "specialist" as a violation. Several state Departments of Insurance, including the Texas Department of Insurance, publish guidance for homeowners after storms that makes the division of roles plain: the contractor repairs; the homeowner files; the insurer decides coverage.
So the safe and genuinely useful frame for a rep is: document thoroughly, write an accurate estimate, hand it to the homeowner, and let the homeowner file and the insurer decide. The contractor's role is the documentation and the repair, never the claim.
The do-not-say list — drill it into every rep
Print this and tape it inside every truck. A rep who says any of these can create real legal exposure:
| Never say | Why it's a problem | Say instead |
|---|---|---|
| "We'll get your claim approved." | Promising an outcome you don't control; adjusting | "We document the damage thoroughly. Your insurer decides coverage." |
| "We'll handle / negotiate your claim." | Unlicensed public adjusting in many states | "We give you a clear estimate to file with. The claim stays between you and your carrier." |
| "We'll cover / waive / eat your deductible." | Insurance fraud in many states | "The deductible is set by your policy. We can't change it." |
| "Free roof — insurance pays for everything." | Deceptive; assumes coverage | "If it qualifies, your policy may cover the work. We'll document what we find." |
| "This is definitely storm damage, you're covered." | Interpreting coverage | "Here's what we found. The adjuster determines whether it's covered." |
The legitimate storm documentation workflow
Here is what reps should do, and it is plenty to keep them busy and add real value:
- Inspect and document. Photograph hail bruising, wind-lifted or creased shingles, granule loss in gutters, soft metals (vents, flashing, gutters) for impact marks, and the test square if you build one. Date and address-stamp every photo.
- Measure accurately. Pull real measurements for the estimate so the scope is defensible.
- Write an accurate, Xactimate-aligned repair estimate. Itemize the scope to fix the actual damage and bring the roof back to code. Document code-required upgrades as line items with the code citation, because the International Residential Code and locally adopted amendments govern what a compliant re-roof requires.
- Hand the homeowner a clean package — photos, measurements, estimate — that they can file with their carrier if they choose.
- Stay in your lane on the call with the adjuster: be present, point to what you documented and your scope, and let the adjuster and homeowner sort coverage.
This workflow keeps reps fully occupied after a storm, builds a reputation for thoroughness, and keeps the company clean. Target it with per-roof storm signals so reps document the homes a storm actually loaded, not every roof in the ZIP — but the documentation discipline above is what protects the company regardless of how you target.
A safety note that is also a productivity note: OSHA requires fall protection for residential roofing work, and reps doing inspections should follow safe-access practices. A rep who gets hurt is the most idle rep of all. Build ladder and roof-access safety into the inspection routine.
Build the rep-enablement system so green hires close and stay
The fastest way to need bought leads is rep churn. You hire four canvassers, three quit inside two months because they knocked cold streets, got rejected all day, and never made money — so you have empty seats and a half-built pipeline, and you panic-buy leads to feed the one rep left. Fix the churn and the lead problem shrinks on its own.
Reps quit for predictable reasons: they don't know where to go, they don't have anything to say at the door, and they don't make money fast enough to believe in the job. Each is a system you can build.
Give a green rep a veteran's talking point at every door
A new hire who can't read a roof yet is helpless on a cold street. Hand them a per-home reason to knock and they sound like they know what they're doing on day one. That reason can be the curb-read training above, a targeted mail piece the home already received, or an address-level roof-age signal that lets the rep say something specific and true: "Roofs on this street are coming up on the age where they start to fail — wanted to offer a free look." Specific beats generic every time, and specific is what keeps a rep from sounding desperate.
A simple branded homeowner report or QR code in the rep's hand does the same thing: it turns the conversation from "are you the homeowner, do you need a roof" into "here's what we noticed about roofs in your area." The rep looks like a professional, not a peddler.
The first-30-days ramp that prevents quitting
| Days | What the rep does | Why it prevents churn |
|---|---|---|
| 1–3 | Ride along with a closer; learn the curb-read | Sees money get made before doing the hard part |
| 4–10 | Knock pre-filtered, old-roof streets only with a mentor | Early conversations are with people who might actually buy |
| 11–20 | Solo on warm streets (mailed/targeted), book inspections | First wins land; commission starts |
| 21–30 | Full route, own the follow-up cadence | Builds the self-generating habit, not lead dependence |
The thread through every row: early doors are pre-filtered so the green rep talks to plausible buyers and makes money before discouragement sets in. A green rep on a cold, unfiltered street fails by design. A green rep on a list of old roofs has a fighting chance.
Pay, track, and coach the activity, not only the close
Reps stay busy and stay employed when the leading indicators are visible and rewarded:
- Track doors knocked, conversations had, inspections booked, estimates written — not only signed jobs. A rep can control activity; the close lags. Coaching activity keeps a rep moving even in a slow week.
- Set a daily door floor (e.g., 50 filtered doors) so "busy" is measured, not assumed.
- Log everything in the CRM the same day. A contact that isn't logged is a follow-up that won't happen, which is a job that walks.
The U.S. Bureau of Labor Statistics tracks roofer employment and the realities of the trade; turnover in field roles is real, and the cheapest hire to keep busy is the one you already trained and retained.
The weekly rep scoreboard
Put numbers on a wall (or a shared dashboard) so every rep sees where they stand and so "busy" is a measured fact, not a vibe. A workable per-rep weekly scoreboard:
| Metric | Why it's on the board | A reasonable weekly target* |
|---|---|---|
| Filtered doors knocked | The top of the funnel; controllable | 250–400 |
| Real conversations | Quality of the knock | 40–60 |
| Inspections booked | The first commitment | 10–15 |
| Roofs inspected | Work actually performed | 8–12 |
| Estimates written | Bottom-of-funnel activity | 6–10 |
| Jobs signed | The outcome | follows the activity |
| CRM logging compliance | Whether follow-ups survive | 100% |
*Targets vary by market, density, and whether the rep is ramping or seasoned. Set yours from your own baseline, then ratchet.
The reason the close sits near the bottom and is the only line without a hard target: it lags everything above it. If a rep hits the activity numbers and the closes do not follow, the problem is coaching or pricing, not effort — and you only know that because the activity is on the board. A close-only scoreboard hides which of those it is.
Use a back-pocket homeowner report to make green reps credible
A green rep's biggest disadvantage is that they cannot yet read a roof like a 10-year veteran. You can close that gap with a leave-behind. A simple, branded one-page homeowner report — the address, a roof-age range, a note on recent storms the roof took, and a clear "here's what we'd want to check" — lets a new hire hand the homeowner something real and say, "this is what we noticed about roofs in your area." It reframes the rep from a stranger guessing to a company that did its homework. Pair it with a QR code to your reviews or booking page and the rep walks away having advanced the conversation even on a no-answer, by leaving the report in the door.
Plan the year so the slow months are pre-loaded
Roofing has a rhythm: storms and the warm season pull demand up, deep winter and dry spells pull it down. The companies that keep reps busy year-round do not react to the slow months — they pre-load them from the channels that do not depend on weather.
- Peak/storm season: lean into the documentation motion and fresh canvassing of affected areas, but capture every contact into the CRM so the slow season has fuel. The discipline that separates feast-or-famine companies from steady ones is logging the people you can't get to during the rush.
- Shoulder season: work targeted mail and door-knocking on age-filtered streets. Demand is normal; targeting decides whether reps are efficient.
- Slow season: this is when the database mine and referral engine earn their keep. Every unclosed estimate, every aging past customer, every referral you logged during the rush becomes a call list. A rep in January working a well-maintained database is busier than a rep in January waiting for the phone to ring.
The mistake is treating the slow season as a time to cut heads or buy leads. If you fed the database all year, the slow season is when you harvest it. The roofs that aged out do not care what month it is, and a homeowner with a 22-year-old roof is a conversation in February as much as in June.
A planning note on age data: because roof-age ranges and storm history are computed from imagery and records rather than current demand, you can build next quarter's target lists during this quarter's downtime. That lets you walk into a slow stretch with the streets already ranked, so reps open every day with a list instead of a question.
A weekly operating rhythm that keeps every rep full
Pull it together into a cadence a sales manager runs every week, so no rep ever opens a day without a list.
Monday — Load the week.
- Run the database triggers: unclosed estimates past 18 months, customers crossing an age threshold.
- Pull the targeting list for the week's streets (old-roof addresses, ranked).
- Build routes; assign each rep 40–60 pre-filtered doors per field day plus a call list.
Tuesday–Thursday — Work the field.
- Reps knock filtered streets, run inspections, write estimates.
- Mid-week mail drop to next week's streets so the warm-up is always one cycle ahead.
- Daily CRM logging is non-negotiable.
Friday — Reactivate and follow up.
- Phone day: every no-answer and warm contact from the week gets a call.
- Past-customer check-ins and referral asks.
- Set next week's targeting and routes so Monday is already half-loaded.
After any qualifying storm — Insert the documentation motion.
- Pull affected past customers and old-roof addresses inside the event footprint.
- Reps document thoroughly and hand homeowners clean packages, staying strictly on the documentation side of the line.
Run that rhythm and the question shifts from "what do I give the reps to do?" to "do I have enough reps to work the list I built?" That is the position you want to be in. It is also the position where, if you ever do buy a lead, it's a supplement to a full pipeline instead of the only thing standing between your reps and a parking-lot scroll.
What the pros get wrong
A few patterns separate companies that stay lead-dependent from companies that own their pipeline:
- They mine the database once, then stop. The gold rush mentality. The win is the recurring trigger, not the one-time blitz.
- They knock every door. Skipping new roofs feels like leaving money on the table; it's the opposite. Unfiltered knocking is what burns reps out.
- They confuse year-built with roof age. A 1990 house with a 2018 roof is a skip, and county records won't tell you that. This is the single most common targeting error.
- They let reps freelance the storm pitch. One rep promising a "free roof" or a waived deductible can expose the whole company. The do-not-say list is not optional.
- They measure closes, not activity. A rep in a slow week looks like a failure on a close-only scoreboard and a producer on an activity scoreboard. Coach what the rep controls.
- They treat targeting data as a lead service. It isn't, and pitching it that way internally sets the wrong expectation. It's a filter that makes free channels hit higher. The rep still does the work.
Bottom line
Keeping reps busy without buying leads is not a trick or a single channel. It is a system with four free or cheap inputs — your past customers, the streets you already serve, targeted mail you control, and the physical condition of the roofs — organized so that the list of who to talk to next never empties. Sharpen all four with address-level roof-age ranges and per-roof storm signals, and a rep walks every street already knowing which doors are worth the knock and which to skip.
That is the whole game: own your next job instead of renting it. A lead site resells the same homeowner to five competitors and your rep races to lose. A storm comes when it comes. But your own customer book, your own service area, and the roofs that are quietly aging out in it are yours to work whenever a rep clocks in. Build the system once, refill it on a schedule, and the most expensive person on your payroll becomes the most productive one.
If you want the targeting layer that tells you which roofs on a street are actually due — a roof-age range per address plus the storms each roof really took — RoofPredict scores your area and enriches your own list so your reps spend their hours on the doors that can buy, not the ones that can't. Hand us a roof you already know the age of and see if we call it right; the honest pitch is that we make your free channels sharper, not that we hand you customers.
FAQ
How do I keep roofing sales reps busy without buying leads?
Build a pipeline from inputs you already own: unclosed old estimates and past customers in your CRM, your own service-area streets filtered by roof condition, targeted mail you control, and address-level roof-age data so reps knock the old roofs and skip the new ones. Load each rep a pre-filtered list of 40 to 60 doors plus a call list every field day, run a weekly cadence that refills those lists on a schedule, and reps never hit the parking-lot dead zone. The cost per door is gas and a door hanger, not a lead fee.
Are my old estimates really worth working again?
Yes, and most companies ignore them. A roof problem you quoted 18 months ago did not fix itself. Pull every estimate older than 18 months that never closed, filter by roof age, and you typically find hundreds of warm doors at zero acquisition cost. Even a 3 percent reconversion rate on a few hundred old estimates, at several thousand dollars per re-roof, beats most lead budgets. Make it a monthly trigger, not a one-time blitz.
How does a rep tell which roofs to knock without climbing a ladder?
Train the curb-read: granule loss and color fade, cupping and curling shingle tabs, sagging planes, patch jobs and mismatched shingles all signal an aging roof, while a crisp uniform full-granule roof is a skip. The highest-leverage habit is walking past the new roofs so the rep spends knocks on homes that can actually buy. Address-level roof-age data turns the curb-read from a guess into a confirmation step.
Why not simply buy leads to fill the schedule?
A shared lead is sold to several contractors at once, so your rep is the fourth call to an already-annoyed homeowner, which is why close rates are low. You also pay 40 to 300 dollars per lead to keep a rep busy who is already on payroll. Self-generated doors cost a few cents in gas and printing. And a rep fed only bought leads never learns to generate their own work, so they collapse the day the lead budget gets cut.
Is targeted direct mail still worth it for roofers?
Untargeted mail is dead; targeted mail is not. Blanketing a ZIP with one postcard wastes most pieces on homes that do not need you. Instead, mail old-roof addresses, wait 5 to 7 days, then send a rep to those exact streets with a door hanger referencing the mailer. The rep knocks warm streets, and you control postage and printing, neither of which resells the homeowner to a competitor.
What is the difference between roof age and the year a house was built?
Year-built comes from county records and tells you when the house went up, not when the roof was last replaced. A 1990 house can have a 2018 roof, and re-roofs are invisible to property records. Targeting on year-built alone wastes a chunk of every campaign on homes with newer roofs. Address-level roof-age estimates read the actual roof from aerial imagery and give a tight age range, which is the signal that matters for who is due.
How does RoofPredict help keep reps busy?
It scores the roofs in your area by an age range per address plus the storms each roof actually took, and ranks which addresses are most likely due. That makes your free channels sharper: reps walk streets sorted oldest-first, your CRM list and mail list get enriched with roof-age and storm signals, and green reps get a specific, honest talking point at every door. Honest limits: an age range is a range not an exact date, a storm model is odds not proof, and it does not close the job or climb the ladder. It tells you which doors are worth the knock.
What can a roofing rep say about insurance after a storm, and what is off limits?
A rep may inspect, document damage with dated photos and measurements, and prepare an accurate repair estimate for their own scope, then hand the homeowner a clean package to file. A rep may not negotiate or handle the claim, interpret coverage, promise approval or a specific payout, say anything about waiving or covering the deductible, or advertise a free roof. In many states those cross into unlicensed public adjusting. The contractor documents and repairs; the homeowner files; the insurer decides coverage.
How do I stop green canvassers from quitting?
Reps quit because they do not know where to go, have nothing to say, and do not make money fast enough. Fix all three: give them pre-filtered old-roof streets so early conversations are with plausible buyers, hand them a specific per-home talking point or a branded homeowner report so they sound like a veteran on day one, and ramp them over 30 days starting with ride-alongs and warm streets so first commissions land before discouragement does. Reducing churn shrinks your need for bought leads on its own.
Should reps be measured on closes or on activity?
Measure and coach the activity reps control: doors knocked, conversations had, inspections booked, estimates written, all logged in the CRM the same day. Closes lag activity, so a close-only scoreboard makes a producing rep look like a failure in a slow week. Set a daily filtered-door floor so busy is measured, not assumed, and the leading indicators keep reps moving and employable through droughts.
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
- FTC: Consumer Lead Generation — ftc.gov
- FTC: Complying with the Telemarketing Sales Rule — ftc.gov
- National Roofing Contractors Association — nrca.net
- Insurance Institute for Business & Home Safety: Roofing — ibhs.org
- NOAA Storm Prediction Center — spc.noaa.gov
- National Weather Service: Thunderstorm & Hail Safety — weather.gov
- U.S. Census American Housing Survey — census.gov
- ICC: International Residential Code, Chapter 9 Roof Assemblies — codes.iccsafe.org
- BLS Occupational Outlook Handbook: Roofers — bls.gov
- Texas Department of Insurance: Storms & Roof Claims Tips — tdi.texas.gov
- OSHA: Residential Fall Protection — osha.gov
- FTC's Endorsement Guides: What People Are Asking — ftc.gov
- U.S. Census: Building Permits Survey — census.gov
- RoofPredict — roofpredict.com
Related Articles
Which Suburbs Have the Oldest Housing Stock for Roofing (And How to Find Them)
How to find the suburbs and subdivisions where the most roofs are aging out, using free public data, build-out windows, and a repeatable ranking method, without buying a list you can't verify.
How to Update Old Roofing Leads With Current Roof Condition Data
Your old lead list is sitting on signed-roof money. Here is the practical workflow for re-scoring dead leads with current roof age and storm data, then working the ones worth calling.
How to Measure Roofing Direct Mail Campaign Results (Without Fooling Yourself)
Most roofers track the wrong number on their mailers. Here is how to measure response rate, cost per job, and true ROI on a roofing direct mail campaign the way a sharp operator does.