How to Build a Roofing Lead Qualification Scorecard (With a Worked Example)
On this page
Most roofing companies do not have a lead problem. They have a triage problem. The calls come in, the door-knock lists get printed, the storm hits and the phone lights up, and every one of those records gets treated like it carries the same weight. A homeowner who pinged your website at 11pm because a shingle blew into the yard sits in the same queue as a referral from a previous customer whose 22-year-old roof just took 1.5-inch hail. A rep drives 40 minutes to a maybe and skips the sure thing two streets over because it was lower on the list.
A lead qualification scorecard fixes that. It is a simple, written, weighted system that turns the messy judgment your best closer carries around in their head into a repeatable number every record can be ranked by. Done right, it does three things: it tells your reps which doors to hit first, it stops you from burning windshield time and ad spend on people who were never going to buy, and it gives you a common language so a 90-day-old hire and a 12-year veteran qualify the same lead the same way.
What follows is the actual build. Not theory. We will define what a lead score is, pick the dimensions that predict a roofing close, weight them honestly, build the math, run a real address through it end to end, wire it into your CRM, and then talk about the part nobody tells you: how to keep the thing calibrated so it does not rot. There is a worked example with numbers, a copy-and-adapt rubric, and a section on where outside roof-age and storm data fits, because two of the strongest predictors are things you usually cannot see from a phone call.
What a Lead Qualification Scorecard Actually Is
Strip away the jargon and a scorecard is a scoring rule. You pick a handful of attributes that, in your experience, separate leads that close from leads that waste a half day. You assign each attribute a point value. You add the points up. You sort.
The output is one number per lead, usually on a 0 to 100 scale, plus a tier label so a salesperson does not have to interpret raw points in the field. A typical tiering:
- Hot (A) 75 to 100 — call or knock today, send your best closer.
- Warm (B) 50 to 74 — work this week, standard rep, standard follow-up cadence.
- Cool (C) 25 to 49 — long-nurture, drip email/text, low-cost touches only.
- Cold/Disqualify (D) 0 to 24 — do not spend windshield time; archive or recycle into a nurture list.
That is the whole idea. The art is in choosing the right attributes and weighting them so the number actually correlates with money. A scorecard that scores everything 60 is useless. A scorecard that ranks a roof you cannot legally or physically help above a slam dunk is worse than useless because it has the authority of a number behind a bad call.
Two distinctions matter before you build:
Fit versus intent. Fit is whether this lead is a good match for what you sell: right roof age, right damage profile, right property type, inside your service area, can afford the job. Intent is whether they are ready to act: they reached out, they have a deadline, a neighbor just got a new roof, an adjuster is already involved. The strongest leads score high on both. A high-fit, low-intent lead is a nurture play. A low-fit, high-intent lead (someone desperate to act on a roof that does not need replacement) is where reps waste the most time and where you risk overselling.
Inbound versus outbound. An inbound lead (they called you) starts with intent points baked in. An outbound target (a house on a canvassing route you generated from data) starts with zero intent and has to earn its rank on fit alone until a human makes contact. You can run one scorecard for both as long as the intent attributes can score zero gracefully. We will build it that way.
Why "Score Everything 50" Is Not Good Enough
The instinct to skip this and "just work the leads" comes from a real place: scoring feels like overhead. But look at what an unscored pipeline costs.
Say a two-crew restoration company generates 400 storm leads in the three weeks after a hail event. A rep can realistically run six to eight quality appointments a day. With four reps over the working window, you have maybe 600 to 700 appointment slots, which sounds like enough until you account for no-shows, re-runs, and the fact that the best leads and the worst leads are randomly interleaved on the list. Without ranking, your reps spend the first, freshest, highest-energy week of the cycle hitting leads in arrival order, which has zero correlation with quality. By the time they reach the genuinely strong, storm-aged roofs near the bottom of the stack, a competitor has already signed them.
The scorecard does not create leads. It reorders the ones you have so the freshest selling hours land on the highest-probability roofs. On the same 400 leads, the same crews, that reordering alone is usually the single cheapest lift in close rate a roofing company can make, because it costs nothing but a spreadsheet and discipline.
Step 1: Define What "Qualified" Means for Your Business
Before you assign a single point, write one sentence describing the lead you most want to sign. Be specific to your company, not generic.
A retail re-roof company in a non-storm market might write: "Owner-occupied single-family home, roof 18+ years old, inside our 30-mile radius, planning to act within 90 days, can fund a $14,000 to $30,000 job."
A storm-restoration company might write: "Owner-occupied home in a verified recent hail/wind swath, roof old enough that storm damage is plausible and documentable, homeowner intends to file with their carrier, no prior recent replacement."
Those two sentences produce different scorecards. The retail company weights age and ability-to-pay heavily. The storm company weights storm exposure and roof condition heavily and cares less about a high deductible because the homeowner, not the contractor, decides whether to file.
Write your sentence. Every attribute you score should map back to a clause in it. If an attribute does not help predict whether the lead matches that sentence, it does not belong on the card.
Step 2: Choose Your Scoring Dimensions
Good roofing scorecards converge on five families of attributes. You will not use every sub-attribute; pick the four to eight that actually move close rate in your market.
Dimension A: Roof Condition and Age
This is the single most predictive fit attribute in roofing and the one reps most often have to guess at over the phone. A 7-year-old architectural shingle roof and a 24-year-old three-tab roof are completely different sales. The older roof is closer to the end of its service life, more likely to show real damage, and more likely to need full replacement rather than a repair you will lose money on.
The practical problem: homeowners rarely know their roof's age. "It was here when we bought the house" is the most common answer. So you score what you can establish:
- Confirmed roof age (permit records, prior invoice, seller disclosure).
- Estimated roof-age range from aerial-imagery analysis when you do not have a confirmed date.
- Visible condition signals the homeowner reports: granule loss, curling, missing shingles, active leak, daylight in the attic, sagging.
- Number of layers (a second layer is near end-of-life and often must be torn off).
Treat roof age as a range, not a precise date, unless you have a permit or invoice in hand. "Likely 18 to 22 years" is an honest input. "This roof is 20 years old" stated as fact, when you only inferred it, is the kind of overclaim that comes back to bite you. Score the range conservatively.
Dimension B: Storm and Weather Exposure
In storm markets this rivals roof age for predictive power. A roof's odds of having insurable, documentable damage depend on whether real storm forces actually reached that specific address. Two homes a mile apart can sit inside and outside the same hail core.
Attributes worth scoring:
- Verified hail of a damaging size (commonly 1 inch and up for asphalt shingles, though smaller stones can mark soft metals and age-weakened roofs) at or very near the address.
- Verified damaging wind (severe-criteria gusts).
- Recency of the event (a fresh event within the typical claim window scores higher than one two years old).
- Date of the event relative to the roof's age (an old roof hit by recent hail is the strongest combination).
The honest framing here matters. Storm data tells you the odds that a roof was affected, not proof that a given roof is damaged. The proof comes from a physical inspection. Score the exposure as a probability signal that earns the appointment, then let the inspection confirm.
Dimension C: Property and Owner Fit
These attributes establish whether the deal is even doable and worth your structure:
- Owner-occupied versus renter-occupied versus absentee landlord (owner-occupants decide faster; renters cannot authorize work).
- Single-family versus multi-family versus commercial (match to what your crews actually do well).
- Inside your profitable service radius (a job 55 minutes out has to be bigger to justify the drive).
- Roof complexity/size that fits your crew capacity and margin model.
- Reasonable ability to fund the job, whether by financing, savings, or an insurance pathway. For insurance work, the homeowner's willingness to engage their own carrier matters more than their cash on hand.
Dimension D: Intent and Urgency
This is where inbound leads earn most of their early points and where outbound targets score zero until contact:
- They reached out to you (highest intent).
- They have an active leak or visible damage they are worried about.
- A deadline exists (closing on a home sale, a contingency, an HOA notice).
- A neighbor recently got a new roof (social proof and same storm exposure).
- They have already started a claim or had an adjuster out.
- They explicitly asked for a quote/inspection versus "just wondering."
Dimension E: Engagement and Source Quality
Where the lead came from predicts close rate, and you have the data to prove it from your own history:
- Referral from a past customer (usually your highest-converting source).
- Repeat or past customer.
- Inbound web form / phone call.
- Door-knock / canvassing response.
- Paid lead aggregator / shared lead (usually lowest, because it is sold to several contractors at once).
- Responsiveness: did they answer, reply to a text, confirm an appointment?
You do not need all five dimensions. A non-storm retail company might drop Dimension B entirely. A pure-canvassing storm company might lean almost entirely on A and B with light D and E. Pick what predicts revenue in your numbers.
Step 3: Weight the Dimensions Honestly
This is the step everyone rushes and the one that determines whether the scorecard is smart or just busy. Weighting means deciding how many of your 100 points each dimension can contribute. If every dimension is equal, you are implicitly claiming that lead source predicts close rate as strongly as roof age, which is almost never true.
Start from your own close data if you have it. Pull your last 100 to 200 closed-or-lost leads, tag each one with the attributes above, and look at which attributes actually separated wins from losses. If you do not have clean historical data yet, start from a sensible prior and recalibrate after 60 days of live use. Here is a defensible starting weight set for each business type.
Starting Weights: Storm-Restoration Company
| Dimension | Max points | Rationale |
|---|---|---|
| Storm exposure (B) | 30 | The whole premise is documentable storm damage; no storm, no claim path. |
| Roof condition & age (A) | 25 | Old roof + storm is the money combination; age gates damage plausibility. |
| Intent & urgency (D) | 20 | A homeowner ready to file and inspect closes far faster. |
| Property & owner fit (C) | 15 | Owner-occupied and in-radius are deal-doable gates. |
| Source & engagement (E) | 10 | Referrals and responsive leads convert better, but matter less than the storm. |
| Total | 100 |
Starting Weights: Retail Re-Roof Company (Non-Storm)
| Dimension | Max points | Rationale |
|---|---|---|
| Roof condition & age (A) | 35 | Without a storm to force the timeline, age and condition drive replacement. |
| Intent & urgency (D) | 25 | Retail buyers act on their own schedule; urgency is the trigger. |
| Property & owner fit (C) | 20 | Ability to fund a cash/financed job carries real weight here. |
| Source & engagement (E) | 15 | Referrals dominate retail close rates. |
| Storm exposure (B) | 5 | Minor; an isolated wind event can still nudge timing. |
| Total | 100 |
Notice these are different on purpose. The number-one mistake is copying someone else's weights without asking whether their business is yours. A storm company that weights ability-to-pay like a retail company will down-rank perfectly good insurance leads. A retail company that weights storm exposure heavily will chase ghosts.
Step 4: Build the Point Rubric
Now convert each dimension's max points into specific, unambiguous rules a rep can apply without judgment calls. Ambiguity is the enemy; if two reps can score the same lead differently, the scorecard is broken. Use plain thresholds.
Below is a full worked rubric for the storm-restoration weights (30/25/20/15/10). Adapt the thresholds to your market.
Dimension B: Storm Exposure — 30 points max
| Condition | Points |
|---|---|
| Verified hail 1.75"+ at/near address within last 6 months | 30 |
| Verified hail 1.0" to 1.75" within last 6 months | 22 |
| Verified severe wind (damaging gusts) within last 6 months | 18 |
| Storm event 6 to 12 months ago (still inside typical claim window) | 12 |
| Storm event 12+ months ago, or marginal size | 5 |
| No verified qualifying storm at this address | 0 |
Dimension A: Roof Condition & Age — 25 points max
| Condition | Points |
|---|---|
| Confirmed or estimated roof age 20+ years | 25 |
| Estimated roof age 15 to 19 years | 18 |
| Estimated roof age 10 to 14 years | 10 |
| Visible damage reported (missing shingles, leak, granule loss) regardless of age | +5 (cap dimension at 25) |
| Estimated roof age under 10 years and no reported damage | 2 |
| Recently replaced (under 5 years, no damage) | 0 |
Dimension D: Intent & Urgency — 20 points max
| Condition | Points |
|---|---|
| Active leak or homeowner explicitly worried about damage | 8 |
| Requested an inspection/estimate (rather than just info) | 6 |
| Neighbor recently re-roofed / claim filed nearby | 3 |
| Has a hard deadline (sale, HOA notice) | 3 |
| Outbound target, no contact yet | 0 |
Dimension C: Property & Owner Fit — 15 points max
| Condition | Points |
|---|---|
| Owner-occupied single-family | 8 |
| Inside profitable service radius (under your mileage cap) | 4 |
| Roof size/complexity fits crew and margin model | 3 |
| Renter-occupied or cannot authorize work | -10 (can drive dimension negative) |
Dimension E: Source & Engagement — 10 points max
| Condition | Points |
|---|---|
| Referral from past customer | 6 |
| Responsive (answered/confirmed within 24h) | 2 |
| Inbound web/phone | 2 |
| Shared/aggregator lead | 0 |
| Unresponsive after 3 attempts | -3 |
A few design rules that keep rubrics honest:
- Cap each dimension at its max. Bonus points (the +5 for visible damage) should never let one dimension blow past its weight; clamp it.
- Allow negatives where a single fact should sink the lead. A renter who cannot authorize work, or a roof replaced last year, should be able to pull a lead down hard. Negatives are how you encode disqualifiers without a separate kill-switch list.
- Keep thresholds discrete and testable. "20+ years" is testable. "Old roof" is not.
- Score what you can verify, mark what you assumed. If roof age is an estimate from imagery, note it as an estimate in the CRM so the rep knows to confirm on-site.
Step 5: A Full Worked Example
Let us run two real-feeling addresses through the storm rubric end to end so you can see how the math behaves.
Lead 1: 4218 Cedar Hollow Dr
What we know: Inbound web form. Owner-occupied single-family, 12 minutes from the shop. Homeowner says "a few shingles came off in the last storm and I think I see a stain on the ceiling." Aerial-imagery age estimate puts the roof at roughly 19 to 23 years (single layer, heavy weathering signature). Storm history shows verified 2.0-inch hail crossing the neighborhood 7 weeks ago. Homeowner answered the confirmation text within the hour and asked us to come look.
Scoring:
| Dimension | Applied rule | Points |
|---|---|---|
| Storm exposure (B) | Verified hail 1.75"+ within 6 months | 30 |
| Roof age & condition (A) | Estimated 20+ years (range tops at 23) = 25, +5 visible damage, capped | 25 |
| Intent & urgency (D) | Active leak/worry (8) + requested inspection (6) | 14 |
| Property & owner fit (C) | Owner-occupied SF (8) + in radius (4) + fits crew (3) | 15 |
| Source & engagement (E) | Inbound web (2) + responsive (2) | 4 |
| Total | 88 — Hot (A) |
This is a send-your-best-closer-today lead. Old roof, fresh verified hail, an engaged owner asking you to come out, ten minutes from the shop. Every dimension lines up.
Lead 2: 905 Marsh Wren Ct
What we know: Shared aggregator lead. Renter answered the phone and said the landlord lives out of state. Property is 48 minutes out. No storm of qualifying size shows at the address in the last two years. Aerial estimate puts the roof at 8 to 11 years. Caller "just wanted a ballpark." Took three attempts to reach.
Scoring:
| Dimension | Applied rule | Points |
|---|---|---|
| Storm exposure (B) | No verified qualifying storm | 0 |
| Roof age & condition (A) | Estimated 10 to 14 years, no reported damage | 10 |
| Intent & urgency (D) | Outbound-style "just info," no real urgency | 0 |
| Property & owner fit (C) | Renter cannot authorize (-10); out of radius (0) | -10 |
| Source & engagement (E) | Aggregator (0); took 3 attempts (-3) | -3 |
| Total | -3, floored to 0 — Cold/Disqualify (D) |
This lead would have looked identical to Lead 1 in an arrival-order queue. The scorecard correctly buries it: relatively young roof, no storm, a renter who cannot sign, nearly an hour away, lukewarm interest, shared four ways with competitors. Drop it into a low-cost nurture list, do not send a rep, and reclaim the half day.
The gap between 88 and 0 is the entire point. The scorecard found it in 30 seconds of data lookup instead of after a wasted appointment.
Step 6: Where Roof-Age and Storm Data Come From
The worked example leaned on two inputs reps cannot get from a phone call: an estimated roof-age range and verified storm exposure at the specific address. This is the hardest part of any roofing scorecard, because the two most predictive fit attributes are precisely the ones a homeowner usually cannot tell you and a salesperson cannot see from the curb.
You have a few ways to source them:
- Public storm records. NOAA's Storm Events Database and the Storm Prediction Center's storm reports give you historical hail and wind by date and rough location. These are authoritative and free, but they are point reports and coarse; you often have to interpolate whether a specific street was inside a core, which introduces error.
- Permit and assessor records. County permit data sometimes shows a prior re-roof permit, which gives you a real age anchor. Coverage is spotty and varies wildly by jurisdiction.
- Manual aerial inspection. A trained eye on satellite or drone imagery can estimate roof condition and rough age from weathering, but doing it one address at a time does not scale to a 400-lead storm list.
- A data service that does both at the address level. This is where a tool like RoofPredict fits a scorecard cleanly. It estimates a roof-age range per address from aerial imagery and models storm physics per roof, so you get a per-property age band plus a storm-exposure signal you can drop straight into Dimensions A and B. The honest framing matches the rubric: the age is a range, not a confirmed date, and the storm signal is the odds a roof was affected, not proof of damage. You still inspect to confirm. What it changes is the front end: instead of your reps blindly working a list in arrival order, you can enrich your own canvassing list or CRM with age and storm signals first, score it, and send crews to the roofs the storm most likely wore out and the roofs aging out of service life. It ranks the doors; it does not file claims, promise approvals, or replace the physical inspection.
Whatever source you use, the discipline is the same: bring the data in as a range or probability, score it conservatively, and treat the on-site inspection as the thing that converts a probability into a documented fact. A scorecard that pretends an estimate is a certainty will eventually rank a bad lead with false confidence, and a rep will drive to it.
Step 7: Wire the Scorecard Into Your CRM and Workflow
A scorecard that lives in a one-off spreadsheet dies in a week. To make it stick it has to run where the leads already live and produce a field your reps can sort by.
The minimum viable build
You can start in a spreadsheet today. One row per lead, one column per attribute, a formula column that sums weighted points, a column that converts the total to a tier (A/B/C/D), and a sort. That is enough to prove the model on a real list before you invest in automation.
The CRM build
Once the model earns its keep, move it into your CRM (most roofing CRMs and general platforms like the common field-service and pipeline tools support custom fields and simple scoring rules):
- Create custom fields for each scored attribute (roof_age_estimate, storm_exposure, owner_type, intent_flag, source, responsiveness).
- Create a calculated
lead_scorefield that applies your weighted rubric. - Create a
lead_tierfield that maps the score to A/B/C/D. - Build pipeline views or smart lists filtered by tier so a rep opens their morning to an A-list already sorted.
- Set automations off the tier: A-tier triggers an immediate task and a fast text/call cadence; C-tier drops into a long nurture sequence; D-tier archives.
Route by tier, not by arrival
The behavioral change is the whole return on the build. Your dispatch rule becomes: work the highest-scored open leads first, every day, regardless of when they came in. A B-tier lead from this morning waits behind an A-tier lead from three days ago. Reps stop free-styling the order. Map your appointment slots to the top of the sorted list and let the bottom self-select into nurture or attrition.
Standardize intake so the inputs exist
The scorecard is only as good as the data feeding it. If your intake form or phone script does not capture owner-occupancy, urgency, and reported damage, the rep cannot score those dimensions. Add the questions to the script. Make the CRM fields required at intake. A 90-second qualifying script that captures the inputs is the difference between a scored pipeline and a guessed one.
Here is a tight intake script that captures every scoreable input without sounding like an interrogation. Each question maps to a rubric field:
- "Are you the homeowner, or are you renting?" (owner_type, Dimension C)
- "And is this the home you live in, or a property you own elsewhere?" (owner-occupied flag)
- "What's the address?" (drives radius scoring and the data lookup for age and storm)
- "What's going on with the roof, what made you reach out today?" (intent and reported damage, Dimension D and A)
- "Any idea how old the roof is, or has it ever been replaced since you owned the home?" (age anchor, Dimension A)
- "Have you noticed any leaks, stains on the ceiling, or shingles in the yard?" (visible damage, Dimension A)
- "Is there a timeline you're working with, or are you just gathering information for now?" (urgency, Dimension D)
- "How'd you hear about us?" (source, Dimension E)
That is eight questions, under two minutes, and it fills every field the rubric needs except the data-sourced ones (precise age range and storm verification), which you append from your data source after the call. Train every rep and every front-desk person on the same script so leads come in pre-scored to the same standard regardless of who answered the phone.
Step 8: Calibrate So the Scorecard Does Not Rot
The first version of your scorecard is a hypothesis. It encodes what you think predicts a close. The only way to know is to compare scores against outcomes and adjust. Skip this and the model slowly drifts away from reality until reps quietly stop trusting it.
Run a calibration loop every 60 to 90 days:
- Pull closed-won and closed-lost leads from the period. You want at least 50 to 100 outcomes for the signal to mean anything.
- Compare close rate by tier. Your A-tier should close at a meaningfully higher rate than B, B higher than C. If A and B close at the same rate, your weights are not separating leads and need adjusting. If C-tier is closing surprisingly well, you are disqualifying good leads and a weight is too punitive.
- Find the attributes that misfired. Did a high-scoring attribute show up on a lot of losses? Its weight is too high. Did a low-weighted attribute appear on a lot of wins? Raise it.
- Check the tier thresholds. If 70% of leads land in A-tier, your bar is too low and the tiers are meaningless. Tighten thresholds until tiers map to roughly how you want reps to spend their hours.
- Re-run the worked examples. Re-score a few known wins and losses from memory and sanity-check that the model ranks them the way your gut does. When the math and an experienced gut disagree, one of them is wrong; figure out which.
Track one north-star metric: close rate within each tier. When A-tier close rate climbs and your reps are spending more hours on A and B leads, the scorecard is working. When reps start overriding the tiers constantly, the model has drifted and it is time to recalibrate, not to abandon it.
Scoring by Lead Source: Why a Referral and an Aggregator Lead Are Not Equal
Lead source belongs in Dimension E, but it deserves its own discussion because contractors consistently misjudge how much source predicts close rate, and because your own CRM already holds the answer.
Pull your last six months of leads, group them by source, and calculate close rate for each group. Almost every roofing company that runs this finds the same rough ordering, even though the exact spreads vary:
- Past-customer referrals close at the highest rate by a wide margin. The trust is pre-built, the source vouched for you, and price resistance is lower. These should earn the top of your Dimension E points and often justify jumping a rep's queue regardless of other attributes.
- Repeat customers close nearly as well; they already bought from you once.
- Inbound web and phone sit in the middle. The homeowner found you and chose to reach out, so intent is real, but there is no pre-built trust and they are often shopping two or three contractors.
- Door-knock and canvassing responses vary widely by how the list was built. A canvassing route built from roof-age and storm data converts far better than a random neighborhood walk, which is exactly why list quality, rather than raw door count, drives canvassing ROI.
- Shared aggregator leads close at the lowest rate of any paid source for most contractors, because the same lead is sold to several companies at once and you are racing three competitors to the phone. They can still be worth working at volume, but they should score low and never jump the queue ahead of a referral.
The lesson is not "stop buying aggregator leads." It is to let the score reflect the real, measured close-rate gap so a referral that came in this afternoon outranks an aggregator lead from yesterday. Your reps' freshest hours are a scarce resource; the source weighting is how you protect them from the lowest-converting channel.
One refinement worth adding once you have the data: score source by your measured close rate, not by conventional wisdom. If your market's aggregator leads happen to convert better than your cold canvassing, your weights should say so. The scorecard is a model of your business, not the industry's.
Edge Cases the Rubric Has to Handle
A clean rubric handles the obvious leads. The test of a good one is the awkward middle. Here are the cases that break naive scorecards and how to encode them.
The new roof with real storm damage. A 4-year-old roof normally scores near zero on age. But if verified 2-inch hail hit it last month, the storm dimension can still carry it into B-tier, and rightly so: even a young roof can sustain documentable hail bruising. This is why storm and age are separate dimensions, not one combined score. Keep them independent so one strong signal is not erased by a weak one.
The old roof with no storm and no urgency. A 23-year-old roof in a non-storm month, owner "just curious," scores high on age but low on intent. This is the textbook nurture lead: real fit, no trigger. Do not send a rep today, but do not disqualify it either. A drip sequence that checks in seasonally, or a follow-up the next time a storm crosses that address, converts these over months. Tier C exists precisely for this lead.
The high-intent, low-fit lead. Someone with an active leak on a 6-year-old roof that almost certainly needs a targeted repair, not a replacement. Intent is high; fit for a profitable re-roof is low. The honest move is to score it for what it is, a repair, route it to whoever handles repairs profitably, and not let a closer try to manufacture a replacement that is not warranted. Overselling here is how companies generate complaints and chargebacks. The scorecard should make the small job visible as a small job.
The absentee landlord with a good roof candidate. The roof may be old and storm-exposed, but the decision-maker is not on-site and the occupant cannot authorize. Score the property fit on its merits but flag that the contact path runs through the owner, not the door. These can be excellent leads; they just need a different contact workflow, so do not let the renter-on-site fact alone disqualify a genuinely good roof. Capture the owner's contact and re-score once you reach them.
The repeat storm-chaser address. In active hail markets you will occasionally find a roof that was "replaced" recently under a prior claim and now shows up again. A roof replaced within the last few years should floor hard on age. If your data flags a recent replacement, trust it over a homeowner's vague memory and keep the score low; chasing a roof that was just done wastes an appointment and risks an awkward conversation.
Encode these as rules where you can (the recent-replacement floor, the separate-dimension design) and as routing flags where you cannot (the repair lane, the landlord contact path). The point is that the rubric should degrade gracefully on weird leads instead of producing a confidently wrong number.
Residential Versus Commercial Scoring
If you run both residential and commercial work, do not force them through one scorecard. The buying behavior is too different.
Residential qualification leans on the dimensions above: owner emotion and urgency, roof age, storm exposure, single decision-maker. The cycle is short and the deal is driven by a homeowner's felt need.
Commercial qualification is a different animal. Decisions run through facility managers, property-management firms, or building owners with budgets and approval chains. The attributes that predict a commercial close look more like: building age and roof system type, whether a capital budget exists for the year, who actually signs, square footage that fits your crew's capability, and whether you are bidding against a spec or selling a problem. Urgency is usually a leak, a failed inspection, or a budget-cycle deadline rather than a recent storm.
If commercial is a meaningful share of your work, build a second scorecard with its own dimensions and weights. Trying to score a 40,000-square-foot TPO re-roof with a residential rubric tuned for hail and homeowner urgency will mis-rank it every time.
Common Mistakes Pros Make
Scoring on data you do not actually have. A beautiful rubric that requires roof age, storm verification, and ability-to-pay on every lead falls apart if your intake captures none of those. Build the scorecard around inputs you can realistically collect or source, then expand.
Equal weights. Giving lead source the same weight as roof age and storm exposure is the most common error. Your highest-predictive attributes should dominate the point total. If you are unsure of weights, lean them toward roof age and storm exposure in storm markets and toward age and intent in retail markets, then calibrate.
No disqualifiers. Without negative scores or hard floors, a renter-occupied, out-of-radius, recently-replaced roof can still accumulate enough soft points to look workable. Encode the deal-killers so they actually sink the score.
Treating an estimate as a fact. Roof age inferred from imagery is a range. Storm exposure is a probability. Reps who are told "this roof is 21 years old" instead of "likely 19 to 23" will overpromise on the doorstep. Carry the uncertainty through to the rep.
Set-and-forget. A scorecard built once and never calibrated drifts. Markets change, your crews change, storm cycles change. The 90-day loop is not optional; it is what keeps the number trustworthy.
Letting reps override silently. If a rep ignores the tiers, either they have information the model lacks (capture it and fold it in) or they are reverting to gut. Make overrides visible and use them as calibration input, not as a reason to scrap the system.
The Compliance Line on Insurance and Storm Leads
If your scorecard feeds storm-restoration work, keep the qualification strictly on the documentation-and-estimate side of the line. Score a lead on whether the roof is likely to qualify (old enough, real verified storm exposure, visible damage to inspect and document) and on the homeowner's willingness to engage their own carrier. That is fair game and it is where the real predictive signal lives.
What the scorecard and your reps must not do, because it crosses into unlicensed public adjusting in most states: do not score or sell on a promised payout or approval, do not score a lead higher because you intend to "get the deductible waived," do not advertise or imply a "free roof," and do not represent the homeowner against the insurer or interpret their policy or coverage for a fee. Your lane is to inspect thoroughly, document the damage with photos and measurements, write an accurate, Xactimate-aligned repair estimate for your own scope, and hand it to the homeowner. The homeowner files. The insurer decides coverage. Build your qualifying questions and your rubric so they capture intent and damage plausibility without ever promising a financial outcome, and teach your reps the do-not-say list as part of training. A scorecard that ranks leads on a promised approval is more than bad practice; it can put your license at risk.
Copy-and-Adapt: Your Starter Checklist
Use this to build version one this week:
- Write the one-sentence definition of your ideal qualified lead.
- Pick four to eight scoring attributes across the five dimensions that map to that sentence.
- Set dimension weights summing to 100, leaning toward roof age and storm exposure (storm market) or age and intent (retail).
- Write a discrete, testable point rule for each attribute, with caps and at least one negative disqualifier.
- Identify where each input comes from (intake script, CRM field, public storm data, roof-age/storm data service).
- Update your intake script and make the CRM fields required so the inputs actually get captured.
- Build the calculation in a spreadsheet, score your last 50 leads, and check that the ranking matches your gut.
- Move it into the CRM as a lead_score and lead_tier field once it proves out.
- Set routing: work highest-scored open leads first, every day, regardless of arrival order.
- Put a 60-to-90-day calibration loop on the calendar and compare close rate by tier.
The first version will not be perfect. It does not need to be. It needs to be better than arrival order and better than gut alone, which is a low bar to clear and a high-value one to clear. Build it, run it on a real list, and let the close-rate-by-tier numbers tell you where to sharpen it.
If the part that keeps stalling you is the data, getting a reliable roof-age range and a per-address storm signal onto every lead before you score it, that is exactly the gap RoofPredict was built to fill: enrich your own list or CRM with which roofs are due by age and which roofs the storm most likely wore out, score the enriched list, and point your crews at the doors that rank highest. It ranks the roofs; your inspection and your estimate do the rest.
FAQ
How many attributes should a roofing lead scorecard have?
Four to eight is the sweet spot. Fewer than four and you are barely improving on gut feel; more than eight and reps cannot apply it consistently in the field and many attributes start overlapping. Pick the handful that actually separate your wins from your losses in your own close data, weight them, and add more only after the first version proves out in calibration.
What is the single most predictive attribute for roofing leads?
In storm markets it is the combination of an aging roof and verified recent storm exposure at the specific address. In non-storm retail markets it is roof age and condition. Both come down to service life: a roof near or past its expected lifespan is far more likely to need replacement than a repair you lose money on. Weight these dimensions the heaviest.
How do I score roof age when the homeowner does not know it?
Establish a range rather than a date. Permit records or a prior re-roof invoice give a confirmed anchor when available. When they are not, an aerial-imagery age estimate gives a band, such as 18 to 22 years. Score the range conservatively, mark it in the CRM as an estimate, and confirm the actual condition during the physical inspection. Never present an inferred estimate to a homeowner as a confirmed fact.
How should I weight the dimensions on the scorecard?
Base weights on your own close data if you have it: tag your last 100 to 200 won-and-lost leads with each attribute and see which ones actually separated outcomes. Without that history, start from a sensible prior, weighting roof age and storm exposure most heavily in storm markets and roof age and buyer intent most heavily in retail markets, then recalibrate after 60 days of live results.
Can I run one scorecard for both inbound and outbound leads?
Yes, as long as the intent and engagement attributes can score zero gracefully. An inbound lead earns intent points immediately because they reached out. An outbound canvassing target scores zero on intent until a rep makes contact and competes on fit alone, mostly roof age and storm exposure. One model handles both if you design the intent rules to allow a clean zero.
Where does storm and roof-age data come from?
Public sources include NOAA's Storm Events Database and the Storm Prediction Center for historical hail and wind, plus county permit and assessor records for roof age anchors. These are free but coarse and labor-intensive at scale. Address-level data services, including RoofPredict, estimate a roof-age range and model storm exposure per property so you can enrich a whole list before scoring it, while the on-site inspection still confirms actual damage.
How often should I recalibrate the scorecard?
Every 60 to 90 days, with at least 50 to 100 closed outcomes per cycle. Compare close rate by tier: A-tier should close at a meaningfully higher rate than B, B higher than C. If tiers close at similar rates, your weights are not separating leads. If reps start overriding the tiers constantly, the model has drifted and needs adjusting, not abandoning.
What tier thresholds should I use?
A common split on a 0-to-100 scale is Hot/A at 75 and up, Warm/B at 50 to 74, Cool/C at 25 to 49, and Cold/Disqualify/D below 25. Adjust the cutoffs so the tiers reflect how you want reps to spend their hours. If most leads pile into A-tier, the bar is too low and the tiers stop meaning anything; tighten until each tier maps to a distinct action.
How do I keep storm-lead scoring compliant?
Score on whether a roof is likely to qualify, meaning old enough, real verified storm exposure, and visible damage to inspect and document, plus the homeowner's willingness to engage their own carrier. Never score or sell on a promised payout, a waived deductible, a free roof, or representing the homeowner against the insurer; in most states that crosses into unlicensed public adjusting. Your lane is to document damage and write an accurate repair estimate; the homeowner files and the insurer decides coverage.
Do I need expensive software to build a lead scorecard?
No. Version one can run in a spreadsheet: one row per lead, one column per attribute, a weighted-sum formula, and a tier column you sort by. Prove the model on a real list of 50 or so leads first. Once it earns its keep, move it into your CRM as a calculated lead-score and tier field so it runs automatically and routes leads by tier. Software helps with scale and data enrichment, not with whether the model works.
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
- Storm Events Database — ncdc.noaa.gov
- NWS Storm Prediction Center Storm Reports — spc.noaa.gov
- National Weather Service Hail Information — weather.gov
- IBHS FORTIFIED Roof Standard — ibhs.org
- NRCA - National Roofing Contractors Association — nrca.net
- International Residential Code (ICC) — codes.iccsafe.org
- OSHA Fall Protection in Construction — osha.gov
- U.S. Census Bureau American Housing Survey — census.gov
- BLS - Roofers Occupational Outlook — bls.gov
- FTC Business Guidance: Truth in Advertising — ftc.gov
- Texas Department of Insurance - Public Insurance Adjusters — tdi.texas.gov
- NAIC - Filing a Property Insurance Claim — naic.org
- Asphalt Roofing Manufacturers Association (ARMA) — asphaltroofing.org
- RoofPredict — roofpredict.com
Related Articles
How to Win Roofing Maintenance Contracts With Facility Managers
Maintenance contracts are the steadiest money in commercial roofing. Here is how to find the right facility managers, build a program they will sign, and keep it for years.
How Much Revenue Roofing Contractors Leave on the Table Per Claim (and Where It Leaks)
The money you lose on a storm job rarely shows up as a missed sale. It hides inside scope you forgot to document, supplements you never wrote, and roofs you should have been on instead.
How Much Should a Roofing Company Spend on Marketing? A Numbers-First Budget Playbook
A practitioner's breakdown of roofing marketing budgets: the percentage-of-revenue ranges that actually fit your stage, how to split that money across channels, and the math that tells you when you are overspending or starving growth.