Skip to main content

The Best Mailing List for Roofing Contractors Is the One You Build From Roof Age and Storm Data

Emily Crawford, Home Maintenance Editor··30 min readRoofing Lead Generation
On this page

Ask ten roofing contractors what they bought the last time they ran direct mail, and most of them will describe the same thing: a spreadsheet of addresses in a few ZIP codes, filtered by home value and maybe owner age, sold to them as a "roofing list." They mailed 10,000 postcards, booked four inspections, closed one job, and quietly decided that direct mail "doesn't work anymore."

Direct mail works fine. The list was the problem. A roofing mailing list is not a roofing mailing list because someone labeled it that way. The home value, the lot size, the homeowner's age — none of that tells you the single thing that decides whether a postcard turns into a signed contract: is that roof actually near the end of its life, and did a storm just accelerate it?

The best mailing list for a roofing contractor is not a product you buy off a shelf. It is a list you build, around two signals that you can actually source today — how old the roof is and how hard the weather has hit it — wrapped around the property and owner data everyone already sells. Below is the full build, from where the raw addresses come from, to how to layer roof-age and storm data on top, to how to mail it so it pays. This runs long on purpose, because the difference between a list that loses money and one that prints jobs is in the filtering details that vendors gloss over.

Why "roofing lists" sold as products are usually mediocre

Walk into the data-broker world and you will find dozens of vendors who will sell you a "roofer mailing list" or "homeowner list for roofing." Strip away the marketing and almost every one of them is built from the same handful of public and compiled sources:

  • County assessor and recorder records — the property's address, owner of record, assessed value, year the house was built, square footage, lot size, and sometimes the deed/sale history. This is the backbone of nearly every property list in the country.
  • USPS-derived occupancy and deliverability data — whether an address is a deliverable, occupied residence, vacant, or a business. This is what lets a list be CASS-certified and NCOA-processed (more on that later).
  • Compiled consumer data — modeled estimates of household income, homeowner age, length of residence, presence of children, and lifestyle flags, stitched together from credit-header data, warranty cards, surveys, magazine subscriptions, and purchase history.

That is a fine foundation for knowing who lives where and roughly what they can afford. It tells you nothing about the roof. "Year built 1998" is the closest thing most lists have to a roof signal, and it is a bad proxy: a 1998 house may be on its original roof, its second roof, or a roof replaced two years ago after a hail event you never heard about. A 1972 house may have a five-year-old architectural shingle roof. The thing you are selling — a new roof — has its own clock that runs independently of the house's clock.

So the contractors who treat "buy a roofing list" as a finished step are mailing to a population where the actual share of due-for-replacement roofs is maybe 6 to 12 percent in a normal year. They are paying full freight to put a postcard in front of nine homeowners with a perfectly good roof for every one who might be in-market. That is the math that makes direct mail feel broken.

The fix is not a better vendor. It is a better filter. You start from the same broad property universe everyone uses, then you cut it down using two signals most contractors never layer in.

The two signals that turn a property list into a roofing list

Signal 1: Roof age (as a range, never a date)

The most valuable filter you can apply is an estimate of how old the existing roof is. A roof that is 3 years old is not a prospect. A roof that is 18 to 22 years old on a 3-tab asphalt shingle is a serious prospect — it is at or past the typical service life and the homeowner is statistically close to a replacement decision whether they know it yet or not.

Asphalt shingles, which cover the overwhelming majority of U.S. homes, run roughly 15 to 30 years depending on the product, the climate, the ventilation, and how brutal the local weather is. A 3-tab economy shingle in a hot, high-UV climate might be cooked at 15. A premium architectural shingle in a mild climate can push past 25. The point is that there is a window — a range of years — where a given roof becomes a live replacement candidate, and you want your mail landing on homes inside that window.

Here is the honest part vendors won't tell you: nobody can hand you the exact install date of a residential roof at scale. There is no national roof-permit database, permits are spotty and inconsistently digitized at the county level, and a re-roof often doesn't pull a permit at all. So anyone who claims a precise "this roof was installed on March 2007" for every address is selling you false precision.

What you can get, and what is genuinely useful, is a roof-age range estimated from aerial and satellite imagery analyzed over time, plus modeling. Imagery shows granule loss, color fade, streaking, patching, tarps, and surface texture changes; comparing imagery across years can show when a roof visibly changed (a re-roof event). From that you get a defensible estimate like "this roof is approximately 16 to 22 years old" — a band, not a date. A band is exactly what you need. You are not trying to know the install date; you are trying to know whether this address belongs in your "due now" bucket or your "watch in three years" bucket.

Treat roof age as a range in everything you do. It is the difference between an honest, durable targeting strategy and a claim you'll get burned on the first time a homeowner says "my roof is six years old, why did you send me this?"

Signal 2: Storm exposure, modeled per roof

The second signal is weather, and specifically hail and high wind, because those are what physically wear out and damage roofs in the U.S. The big restoration money in roofing follows storms — but the way most contractors chase storms is crude. They watch the news, they see a hail report, they flood a whole county or a whole ZIP code with door knockers and mail, and they treat every address in the swath identically.

The problem is that a storm does not hit a ZIP code uniformly. Hail falls in narrow, irregular paths. Within a single neighborhood, one street can get 1.75-inch hail driven at a 30-degree angle into north-facing slopes while the street one block over got pea-sized hail and shrugged it off. Wind is similar — gusts channel and accelerate around terrain and structures. A storm "hit" at the county level is almost meaningless for targeting; what matters is the modeled exposure at the individual roof.

Good storm data answers questions like:

  • What is the maximum estimated hail size that fell on this address in the last 12, 24, or 36 months?
  • What were the peak wind gusts?
  • How many qualifying hail or wind events has this roof taken since it was (estimated to be) installed?
  • What direction did the storm move, so you know which slopes took the brunt?

This is forecast-and-model territory, which means it is odds, not proof. Storm modeling tells you a roof was probably exposed to damaging hail; it does not prove damage exists. Only an inspection proves damage. Keep that distinction clean — it matters for both your honesty and your legal footing, which we'll get to.

When you combine the two signals, you get the targeting that actually works:

A roof in the back half of its service-life range that also took a recent qualifying storm is your single highest-value mail target. It is old enough that replacement is plausible on its own, and it just got the physical event that turns "someday" into "let's get it looked at."

That combined segment might be 2 to 5 percent of a county's homes. Mailing only to that segment, instead of the whole "roofing list," is how you take a 0.5 percent response rate and turn it into something that funds itself.

Where the raw addresses actually come from

Before you can filter, you need a universe to filter from. Here are the real sources, what each gives you, and the gotchas.

Option A: County assessor / public records (cheapest, most work)

Many counties publish assessor and parcel data, sometimes free, sometimes for a per-record or bulk fee through the assessor or a GIS portal. You get owner name, situs (property) address, mailing address (which may differ — important, because absentee owners get mailed elsewhere), year built, square footage, and assessed/market value.

  • Pros: Cheap or free. Authoritative for ownership and property characteristics. No middleman markup.
  • Cons: Format and availability vary wildly by county. You'll be wrangling CSVs, fixed-width files, or shapefiles. No deliverability processing, no consumer overlays, no roof or storm data. You're doing all the cleanup yourself.
  • Best for: Contractors who work a tight geography and have someone comfortable with spreadsheets or a GIS tool.

Option B: List brokers and data compilers (turnkey, marked up)

National data compilers and the brokers who resell them will hand you a clean, deliverable, CASS/NCOA-processed file filtered to your spec — geography, home value, owner age, income, length of residence, etc. Pricing is typically per-record, often with minimums, and frequently sold as a one-time use or a multi-use license. Read the license carefully: "one-time use" lists are seeded with decoy addresses to catch reuse.

  • Pros: Fast, clean, deliverable on day one. Rich consumer overlays. You can specify filters precisely.
  • Cons: Marked up. The "roofing" framing is cosmetic — you're getting a property+consumer list, not a roof-condition list. Multi-use licensing costs more. Quality varies; ask about the data source and recency.
  • Best for: Contractors who want volume and clean deliverability and will layer roof/storm data on top themselves.

Option C: Roof-age and storm-data platforms (the targeting layer)

This is the newer category and the one that changes the economics: services that score the property universe by estimated roof age and modeled storm exposure, so you can pull "homes with roofs estimated 17+ years old that took 1.5"+ hail in the last 18 months" directly, then attach mailing addresses. This is where RoofPredict sits, and we'll cover how to use it without the hype below.

  • Pros: Filters on the signals that actually predict a roofing job. Massively raises the in-market density of your list.
  • Cons: Roof age is a range, storm exposure is odds — you must work with probabilistic data, not certainties. Coverage and image freshness vary by area.
  • Best for: Anyone serious about direct mail ROI, retail or storm.

Option D: Your own CRM and past-customer data (the most underrated)

The best list you own is the one you already have and ignore. Every roof you've ever touched has a known install date — you installed it. Every estimate you wrote and lost, every inspection that wasn't ready yet, every "call me in a couple years" — that is a list where you know the roof age exactly because you saw it. We'll build a whole strategy around this, because it's the cheapest, highest-converting mail you can send.

Building the list, step by step

Here is the actual workflow, in order. Adjust the thresholds to your shingle climate and your crew capacity.

Step 1: Define your geography honestly

Draw your real service radius, not your dream radius. If your crews start losing money past 35 minutes of drive time, your list should not include the ZIP an hour away just because it's wealthy. Map the ZIPs or, better, the carrier routes you can profitably serve. Carrier routes (the USPS delivery-route level, roughly 400–600 addresses) are the right unit for saturation mail because you can use simplified-addressing EDDM-style economics on dense, well-targeted routes.

Step 2: Pull the property universe

From your chosen source (B or C above, usually), pull all owner-occupied single-family homes in those routes. Filter out:

  • Renters / non-owner-occupied, unless you specifically want absentee owners (some retail roofers do well with landlords — separate campaign, separate message).
  • Condos and multifamily where the owner doesn't control the roof (HOA-governed roofs are a different sale entirely).
  • Homes below a minimum value where a full retail roof replacement is unlikely to be affordable, if you're a retail shop. Storm/insurance work changes this calculus — a modest home with an approved insurance claim is a great job.
  • New construction. A house built in the last 8–10 years is almost certainly on its original roof and not a prospect (unless it took a severe storm).

Step 3: Layer in roof age (range)

This is the filter that does the heavy lifting. Score every remaining address by estimated roof-age range and keep the homes whose roofs fall in your replacement window. For typical asphalt-shingle markets, the live window is roughly 15+ years estimated, with the sweet spot being 18–25 years where replacement is most imminent. Push the threshold up or down based on your local shingle longevity:

Climate / roof type Typical asphalt service life Suggested "mail now" roof-age floor
Hot, high-UV (Southwest, South-central) 15–20 yrs 13+ yrs
Hail/wind-prone (Plains, Front Range, Texas) 12–20 yrs (storms shorten it) 12+ yrs (or any age with recent storm)
Mild / temperate (Pacific NW, parts of Mid-Atlantic) 22–30 yrs 18+ yrs
Cold / freeze-thaw / snow (Upper Midwest, Northeast) 18–25 yrs 16+ yrs

These are starting points, not gospel. Your own job data is the real calibration: look at the roofs you've actually replaced in the last two years and note their age range at replacement. That distribution is your market's replacement window.

Step 4: Layer in storm exposure (odds)

Now attach modeled hail and wind history per address. Create two buckets:

  • Storm-priority: Any roof — even a younger one — that took a recent qualifying event (e.g., 1.25"+ hail or 60+ mph gusts in the last 12–24 months). These get a storm-specific message and the fastest mail cadence, because storm-driven replacement decisions happen on a short clock.
  • Age-priority: Roofs in your age window that have not had a recent major storm. These are your steady retail base — a slower cadence, an aging-roof message, no storm urgency claimed.

The overlap of the two — old roof and recent storm — is your top tier. Mail it first, mail it best.

Step 5: Clean and validate the addresses

None of this matters if the mail doesn't deliver. Before you print anything:

  • CASS certification: Standardize and validate addresses against USPS data so they're in the correct, mailable format. Required for automation/presort discounts and to avoid wasting postage on undeliverable junk.
  • NCOALink (move update): Run the list against USPS's National Change of Address so you're not mailing people who moved 14 months ago. USPS requires move-update processing within 95 days of mailing for automation rates, and it's just good hygiene.
  • Dedupe by household: One mail piece per roof. Two records for the same address (common after compiling from multiple sources) is wasted spend and looks sloppy.
  • Suppress your DNC / opt-outs / current customers (unless current customers are the campaign).

Step 6: Append a phone/email where you can (for follow-up, carefully)

Direct mail converts far better when it's part of a sequence. Appending phone numbers and emails to your highest-tier addresses lets you follow a postcard with a call or an email. Two cautions: phone append for outbound calling runs straight into telemarketing rules — scrub against the National Do Not Call Registry and follow the FTC's Telemarketing Sales Rule and your state's rules before you dial. Email append for cold outreach has its own CAN-SPAM obligations. Mail itself is the least regulated channel here, which is part of why it's still the workhorse for roofing.

How RoofPredict fits into this build

Everything above describes the ideal list. The hard parts are Steps 3 and 4 — getting a defensible roof-age range and a per-roof storm history across thousands of addresses. That's the specific gap RoofPredict is built to fill.

RoofPredict scores addresses by an estimated roof-age range derived from aerial imagery analyzed over time, and by storm physics modeled per roof — hail size and wind exposure mapped to the individual property rather than the ZIP. Instead of buying a generic property list and guessing, you can rank a geography by which roofs are due — the ones a storm wore out plus the ones simply aging out — and pull the addresses that belong in your "mail now" segment. It can also enrich a list you already own: feed in your purchased property file or your CRM, and get roof-age and storm signals attached to each record, so the same direct-mail budget lands on the roofs most likely to be in-market.

The honest limits, because they matter:

  • Roof age is a range, not an install date. RoofPredict gives you a band (e.g., 16–22 years), because that's what imagery and modeling can support. Anyone promising exact dates at scale is overselling. The range is what you need for bucketing.
  • Storm exposure is odds, not proof of damage. A modeled hit means a roof was likely exposed to damaging weather. It does not mean there's a claimable defect. Only your inspection determines that. RoofPredict prioritizes where to look; it does not diagnose damage from the sky.
  • Image freshness and coverage vary. Areas with stale imagery or unusual roof types will have wider, less certain ranges. Treat low-confidence scores accordingly.

Used correctly, it's a targeting and enrichment layer, not a lead vendor — you still own the relationship, the mail, and the inspection. It just stops you from mailing the nine good roofs to reach the one due one.

What to mail: the piece is half the battle

A perfectly targeted list with a bad postcard still loses. Match the message to the segment.

For the storm-priority segment

The message is timing and documentation, not promises. You're telling a homeowner whose roof likely took a recent storm that it's worth getting a professional inspection on the record before small issues become big ones. What you offer is a thorough, documented inspection and an accurate written estimate to repair any damage you find. What you do not do on a postcard:

  • Do not promise the insurance company will pay, approve a claim, or cover the roof.
  • Do not advertise a "free roof" or "no out-of-pocket" or "we'll get your deductible waived." Waiving or absorbing deductibles to induce a claim is illegal in many states and is a fast way to lose your license and your reputation.
  • Do not claim you'll "handle the claim" or "negotiate with the adjuster" for the homeowner. That's public adjusting, and it's license-required in most states. Your lane is documenting your scope and writing an accurate estimate; the homeowner files, and the insurer decides coverage.

A clean, legal storm message sounds like: "Recent storms moved through your area. If your roof took hail or high winds, damage isn't always visible from the ground. We'll inspect it, photograph and document exactly what we find, and give you a written, line-itemed estimate to repair it — so you have an accurate record for whatever comes next." That captures the storm urgency and the insurance-adjacent intent without crossing into claims handling.

For the age-priority segment

No storm to reference, so the hook is the roof's age and what it means: end of service life, rising risk of leaks and interior damage, and the value of replacing on your schedule instead of during an emergency. This is a longer-nurture, lower-urgency message. A useful angle is the planned replacement frame — "your roof is in the range where most homes in this neighborhood get replaced; here's what to budget and watch for" — positioning you as the advisor, not the salesperson.

Format and economics

  • Oversized postcards (e.g., 6x9 or 6x11) consistently outpull standard 4x6 because they stand out in the mailbox and survive the walk from the curb. They cost more per piece but usually win on cost-per-response.
  • Saturation / EDDM-style mail makes sense only when your targeted density on a carrier route is high enough that mailing the whole route is cheaper than the per-record cost of a targeted list. With tight roof-age+storm filtering, you'll often be better off mailing a targeted subset than saturating, because your true target is a minority of the route. Run the math both ways per route.
  • Sequence, don't blast. A single postcard to a great list underperforms a 2–3 touch sequence to the same list. Plan 3 mailings spaced ~2–3 weeks apart for storm segments (short clock) and ~4–6 weeks for age segments.

A worked example: 5,000 doors, two ways

Let's put real numbers on why the filter matters. Assume:

  • Cost per piece, all-in (print + postage + list), oversized postcard: ~$0.85
  • Your average residential job profit (gross margin you keep): $3,500
  • A realistic inspection-booked rate, and an inspection-to-close rate of 35%.

Way 1 — generic "roofing list," minimal filtering. You mail 5,000 homes filtered only on value and owner age. In-market density is low; say 0.4% book an inspection. That's 20 inspections, ~7 closes.

  • Cost: 5,000 × $0.85 = $4,250
  • Revenue (profit): 7 × $3,500 = $24,500
  • Net: ~$20,250. Fine, but you mailed a lot of good roofs.

Way 2 — roof-age + storm filtered list, same budget. Same ~$4,250 budget, but now you mail only ~2,300 homes that are in your roof-age window and/or took a recent storm — and you spend the savings on an oversized piece and a 2-touch sequence to the storm tier. In-market density is far higher; say 1.6% book an inspection across the filtered set. That's ~37 inspections, ~13 closes.

  • Cost: similar ~$4,250 (fewer pieces, but two touches + upgraded format)
  • Revenue (profit): 13 × $3,500 = $45,500
  • Net: ~$41,250 on the same spend.

The numbers are illustrative, not a promise — your rates depend on your market, your piece, and your sales process. But the shape is the point: same dollars, roughly double the return, purely from mailing the right roofs instead of more roofs. That delta is the entire argument for building the list around roof age and storm exposure instead of buying it on home value.

The list you already own: your CRM is the best mailing list

The single highest-converting mailing list a roofing company can build costs almost nothing, because you already have it. Three buckets:

1. Past customers (known roof age, known relationship)

Every roof you installed has an exact install date in your records. That means you can mail your own past customers at precise life-cycle moments:

  • Warranty / inspection touch at year 1, 3, and 5 — keeps you in front of them, generates referrals and repair tickets.
  • Aging-roof advisory as their roof approaches the back of its service window — except now you're not guessing the age, you know it, and you have an existing relationship. These are your best repeat and referral jobs.
  • Storm check-ins after any qualifying event hits a past customer's address — "we installed your roof in 2014, your area just took hail, want us to come verify it held up?" That's a service touch that builds loyalty and catches real damage.

2. Lost estimates and not-yet-ready prospects

Every inspection where the roof wasn't quite ready, every estimate you lost on price, every "call me in two years" — those are addresses where you personally saw the roof. Tag them by the condition you observed and mail them on a schedule. A roof you assessed as "3–5 years left" two years ago is now squarely in your window, and you already have the inspection notes.

3. Neighbors of every job (the radius mailing)

When you complete a job, mail the surrounding 50–100 homes: "We just completed a roof on your street." Social proof plus proximity is one of the oldest and most reliable roofing plays. Layer roof-age data on top and you mail only the neighbors whose own roofs are also in the window — even tighter targeting on an already-warm list.

Enriching these owned lists with roof-age and storm signals (Signal 1 and 2) is where a tool like RoofPredict earns its keep on the retention side as much as the acquisition side: it tells you which past customers and old prospects just crossed into the danger zone or just took a storm, so your service mail goes out at exactly the right moment.

Compliance and clean-data hygiene you can't skip

A few rules that keep your mail legal, deliverable, and effective:

  • USPS move update (NCOALink): Process within 95 days of mailing for automation rates. Keeps you off the addresses of people who moved.
  • CASS certification: Standardizes and validates addresses; required for presort discounts and basic deliverability.
  • Telemarketing rules if you append phones: The FTC's Telemarketing Sales Rule and the National Do Not Call Registry govern outbound calls. Scrub before you dial; respect state-level rules too.
  • CAN-SPAM if you append emails: Honor opt-outs, no deceptive subject lines, include a physical address.
  • State contractor and advertising rules: Many states regulate what roofers can advertise around insurance — especially deductible language. Know your state's rules (often via the Department of Insurance and the contractor licensing board) before you write storm copy.
  • The insurance line, again, because it's the one that ends careers: You may inspect, document damage, and write an accurate estimate to repair the work. You may state facts about your own scope to a carrier. You may not, for a fee, negotiate or adjust the claim, interpret the homeowner's policy or coverage, promise a payout or approval, promise the deductible disappears, or advertise a free roof. The homeowner files; the insurer decides. Build that into your copy from the first draft.

Sourcing absentee owners, rentals, and the segments most roofers ignore

The default list everyone pulls is owner-occupied single-family, and that's correct for retail. But there are profitable segments hiding in the records that most contractors filter out by reflex.

Absentee owners and small landlords. When the mailing address on a property record differs from the situs address, the owner doesn't live there — they're a landlord or an investor. A landlord's decision criteria are different from a homeowner's: less emotion, more math, faster decisions when the roof is leaking and threatening their tenant or their asset. Pull these into a separate campaign with a different message — "protect your investment property, avoid an emergency call from your tenant, replace on your schedule" — and mail to the owner's mailing address, not the property. A small landlord with a portfolio of aging-roof rentals can become a repeat commercial-style account, not a one-off.

Recently sold homes. A home that changed hands in the last 6–18 months is interesting for two reasons. First, a new owner who got an inspection report flagging an aging roof is primed and often has a punch list. Second, sale records sometimes surface roofs that the buyer now knows are near end-of-life. Cross-reference recent sales with your roof-age window and you have a warm, motivated micro-segment. Mail these with an advisory tone: new homeowners are still figuring out their house and welcome a credible local expert.

High-equity, long-tenure owners. Length-of-residence data (how long the current owner has held the property) is a useful proxy for two things: a roof that's likely aged with the owner, and an owner with the equity and stability to fund a replacement. A homeowner of 20 years in a home built 22 years ago is very likely on an original or first-replacement roof that's now due. These convert well on the planned-replacement message.

HOA and association neighborhoods. Be careful here. In many planned communities the HOA controls or restricts roof color, material, and contractor approval — and sometimes the HOA owns the roof entirely on attached units. Either suppress these or handle them as a distinct, relationship-driven sale (get on the HOA's approved-vendor list; one approval can open the door to dozens of homes). Mailing individual HOA homeowners a generic retail piece usually wastes postage.

How to read and license a list so you don't overpay or get caught

The contract terms on a mailing list matter as much as the data. A few specifics that separate the pros from the people who get burned:

  • Single-use vs. multi-use vs. unlimited annual. A single-use license means you may mail the list one time. Brokers protect this with seed addresses — decoy records that report back if you mail them a second time — and a reuse violation can void the license and trigger fees. If your plan is a 2–3 touch sequence, you need at least a multi-use license for that campaign window, or an annual license if you'll mail the same universe repeatedly. Buying single-use and then running a sequence is a common, expensive mistake.
  • Ownership vs. rental of the data. Most compiled lists are rented, not sold — you license the right to mail, you don't own the records. Your own CRM data, by contrast, you own outright. This is another reason to convert every responder and inspection into a permanent CRM record: a name you captured is yours forever; a name you rented expires.
  • Data recency and source. Ask the vendor how old the underlying property data is and how often it's refreshed. Assessor data can lag a year or more; consumer overlays vary in freshness. Stale data means more returns and wasted postage. A good vendor will tell you the refresh cadence; a bad one will dodge the question.
  • Match rates on append. If you're appending phone, email, or roof/storm data to an existing file, ask for the expected match rate and whether you pay for non-matches. A 60% match on a phone append still leaves 40% of your list unreachable by phone — plan the sequence accordingly and don't pay full price for records that didn't match.
  • Suppression and net-down. A reputable broker will net out your suppression file (current customers, DNC, prior responders) before billing, so you're not paying to mail people you've excluded. Confirm this is included, not an add-on.

Measuring what actually happened: the only numbers that matter

Most roofers can't tell you the cost-per-acquired-job of their last mailing, which means they can't improve it. Set up measurement before you mail, not after.

Use a distinct tracking mechanism per segment. A unique call-tracking phone number per segment (storm vs. age vs. CRM) and a unique landing-page URL or QR code lets you attribute every inbound call and form fill to the exact list and message that produced it. Without this, you're guessing which segment paid off.

Track the full funnel, per segment:

Metric What it tells you
Pieces mailed Your denominator and cost base
Calls / form fills Raw response — is the list+message getting attention?
Inspections booked Real intent — did response turn into a foot in the door?
Inspections that found qualifying condition List quality — are you reaching genuinely due/damaged roofs?
Contracts signed Sales execution on top of list quality
Revenue and retained margin The number that decides whether to scale

The diagnostic power is in comparing these across segments. If the storm segment books inspections at 1.8% and the age segment at 0.6%, you know where to weight next quarter's budget. If a segment books plenty of inspections but few of them find a qualifying roof condition, your roof-age or storm filter is too loose — tighten the threshold. If inspections are high but closes are low, the problem isn't the list, it's your sales process, and no list change will fix it.

Give it 60–90 days before judging. Direct mail has a tail; calls come in for weeks after a drop, especially on the aging-roof segment where there's no storm urgency. Judging a campaign at two weeks throws away real responders and leads you to kill lists that were actually working.

Compute cost-per-acquired-job, then compare to your other channels. Total campaign cost divided by jobs closed gives you a number you can rank against paid search, door knocking, and referrals. A well-built roof-age+storm mailing frequently beats blasted geographic mail by a wide margin on this number — but only your own tracking proves it for your market.

Common mistakes that quietly kill ROI

  1. Mailing geography instead of roofs. "Everyone in these three ZIPs" wastes most of your budget on roofs that aren't due. Filter to the roof, not the region.
  2. Treating a county-level storm report as a target. Hail is a narrow path. Mail the modeled exposure per roof, not the whole county the news mentioned.
  3. One-and-done mailings. A single touch to a great list underperforms a sequence to the same list. Budget for 2–3 touches.
  4. Cheap, small postcards. Saving $0.10 a piece on a 4x6 that gets ignored is the most expensive savings in marketing. Oversized usually wins on cost-per-response.
  5. Ignoring deliverability. Skipping CASS/NCOA means paying postage to mail dead addresses. Process the list every time.
  6. Overselling certainty. Promising exact roof ages or guaranteed storm damage erodes trust and invites complaints. Roof age is a range; storm exposure is odds. Say so, and you'll be the honest one in a mailbox full of hype.
  7. Letting the CRM rot. Your past customers and old estimates are the highest-converting list you'll ever have. Mail them on a cadence or you're leaving the easiest money on the table.
  8. Buying a multi-use list as single-use, or vice versa. Read the license. Single-use lists are seeded; reuse gets caught. If you'll mail repeatedly, license accordingly.

A 30-day plan to stand up your first real targeted mailing

Week 1 — Define and pull. Map your profitable carrier routes. Pull the owner-occupied single-family universe in those routes from a compiler or a roof-data platform. Export your CRM (past customers, lost estimates) and dedupe against the purchased file.

Week 2 — Filter and enrich. Attach roof-age ranges and storm history to every address. Build your three segments: storm-priority (old roof + recent storm), age-priority (in-window, no storm), and owned (CRM). Set your roof-age floor to your climate's window, calibrated against your own recent jobs.

Week 3 — Clean and design. Run CASS + NCOALink on the final list. Design two oversized pieces: one storm message (timing + documentation, legally clean), one aging-roof message (planned replacement, advisory tone). Set up call tracking so you can measure response per segment.

Week 4 — Mail and measure. Drop touch one to all segments. Schedule touch two (~2–3 weeks out for storm, ~4–6 weeks for age). Track by segment: pieces mailed, calls, inspections booked, closes, revenue. After 60–90 days you'll have your own response rates — and those numbers, not any vendor's, tell you exactly which segment and message to scale.

The bottom line

The best mailing list for roofing contractors isn't a SKU. It's a build: start from the same property universe everyone uses, then filter it down to the roofs that are actually near the end of their life and the roofs a recent storm just wore out — roof age as a range, storm exposure as odds — and wrap it in clean, deliverable addresses and a message matched to each segment. Add your own CRM, which is the highest-converting list you'll ever own, and enrich all of it with roof-age and storm signals so every dollar of postage lands on a roof that might actually be in-market.

Do that, and direct mail stops being the channel that "doesn't work anymore" and goes back to being what it has always been for the roofers who do it right: a predictable way to put your truck in front of the homeowners whose roofs are due. RoofPredict exists to do the hard part — telling you which roofs those are — but the discipline of building the list around the roof, not the region, is yours to keep no matter what tools you use.

FAQ

What is the best mailing list for roofing contractors?

There is no off-the-shelf "best" list. The best-performing roofing mailing list is one you build by taking a standard property/homeowner universe and filtering it down to roofs that are near the end of their service life (estimated roof age as a range) and roofs recently exposed to qualifying hail or wind (storm modeling). Overlay your own CRM of past customers and lost estimates, and you have a list that converts far better than any generic property file.

Why do most purchased roofing lists underperform?

Because they're built from county assessor records and compiled consumer data — home value, owner age, year built, income. None of that tells you the condition or age of the actual roof. "Year built" is a poor proxy because re-roofs reset the clock invisibly. Without a roof-age and storm filter, you're paying to mail many homes with good roofs to reach the few that are due.

Can I get the exact install date of a roof for every address?

No, and anyone claiming to sell that at scale is overselling. There's no national roof-permit database, and many re-roofs pull no permit at all. What you can get is a defensible roof-age range estimated from aerial imagery analyzed over time plus modeling. A range (e.g., 16–22 years) is exactly what you need to bucket addresses into "mail now" versus "watch later."

How does storm data improve a roofing mailing list?

Hail and high wind physically wear out and damage roofs, and they fall in narrow, irregular paths — not uniformly across a ZIP or county. Per-roof storm modeling tells you the estimated max hail size and peak wind gusts at an individual address, so you mail the homes actually likely exposed instead of an entire region. A roof that is both aging and recently storm-hit is your single highest-value target.

What roof age should I target for direct mail?

It depends on your climate and roof type. For asphalt shingles, a common live window starts around 15+ years, with the sweet spot at 18–25 years. In hot, high-UV or hail-prone markets, drop the floor to 12–13 years. The best calibration is your own data: look at the age range of roofs you've actually replaced in the last two years — that distribution is your market's true replacement window.

Is my own CRM really better than a purchased list?

Usually yes. Past customers have a known exact roof age (you installed it), an existing relationship, and referral potential. Lost estimates and "not yet ready" prospects are addresses where you personally inspected the roof. And neighbors of completed jobs respond to proximity and social proof. Enrich these with roof-age and storm signals and you have the cheapest, highest-converting mail you can send.

How does RoofPredict help build a roofing mailing list?

RoofPredict scores addresses by estimated roof-age range (from aerial imagery over time) and storm exposure modeled per roof, so you can pull or rank the homes that are due — the ones aging out plus the ones a storm wore out. It can also enrich a list you already own, attaching roof-age and storm signals to each record. It's a targeting and enrichment layer, not a lead vendor: roof age is a range, storm exposure is odds, and image coverage varies, so it prioritizes where to look rather than diagnosing damage.

What can I legally say in storm-damage roofing mail?

You can offer a thorough, documented inspection and an accurate written estimate to repair any damage you find, and state facts about your own scope. You cannot promise the insurer will pay or approve a claim, advertise a "free roof" or waived deductible, or offer to negotiate or handle the claim for the homeowner — that's public adjusting and is license-required in most states. The homeowner files the claim; the insurer decides coverage. Document and estimate; don't adjust or interpret policy.

Do I need to clean a mailing list before sending?

Yes. Run CASS certification to standardize and validate addresses, and NCOALink move-update processing (within 95 days of mailing) so you're not mailing people who moved. Dedupe by household, suppress current customers and opt-outs as appropriate, and if you append phone numbers, scrub against the National Do Not Call Registry before calling. Skipping this wastes postage and risks compliance problems.

Should I use saturation (EDDM-style) or targeted mail?

It depends on density. Saturation mail is cheaper per piece but mails everyone on a route. With tight roof-age and storm filtering, your real targets are usually a minority of a route, so a targeted list often beats saturation on cost-per-response. Run the math both ways per carrier route: if your in-window roofs are dense enough on a route, saturate; if they're sparse, mail the targeted subset.

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. NRCA — National Roofing Contractors Associationnrca.net
  2. IBHS — Insurance Institute for Business & Home Safety (hail & wind research)ibhs.org
  3. NOAA National Weather Service — Storm Prediction Centerspc.noaa.gov
  4. NOAA NWS — Severe Weather (hail and wind)weather.gov
  5. USPS — CASS Certificationpostalpro.usps.com
  6. USPS — NCOALink Move Updatepostalpro.usps.com
  7. USPS — Every Door Direct Mail (EDDM)usps.com
  8. FTC — Telemarketing Sales Ruleftc.gov
  9. FTC — National Do Not Call Registry (for telemarketers)donotcall.gov
  10. FTC — CAN-SPAM Act Compliance Guideftc.gov
  11. NAIC — National Association of Insurance Commissioners (public adjusters)naic.org
  12. Texas Department of Insurance — Roof damage and claims guidancetdi.texas.gov
  13. U.S. Census Bureau — American Housing Surveycensus.gov
  14. RoofPredictroofpredict.com

Related Articles