Roofing Postcard Response Rates: What's Real, What's Hype, and How to Beat the Average
On this page
Every roofing owner who has ever mailed a stack of postcards has asked the same question at the kitchen table after the campaign ran: did that work? The honest answer is usually buried under a pile of bad math, a vendor's cherry-picked case study, and a gut feeling that has no relationship to the actual numbers.
So let's fix the math first, then talk about the numbers you can realistically expect, and finally get into the parts most contractors skip: targeting, offer, list quality, timing, and tracking. Because the response rate is not a fixed property of postcards. It is the output of a system you control. Two roofers can mail the identical card, in the same ZIP, in the same month, and one gets a 0.4% response while the other gets 2.1%. The card isn't the variable. Everything around it is.
This is written for the owner or sales manager who is spending real money on mail and wants to know whether to keep doing it, kill it, or rebuild it. No fluff, no vendor spin. Real workflows, real numbers, and the edge cases that wreck campaigns.
What a roofing postcard response rate actually means (and how pros miscount it)
A response rate is dead simple in theory: responses divided by pieces mailed, times 100. Mail 5,000 cards, get 50 calls, that's a 1% response rate.
The problem is that almost nobody agrees on what counts as a "response," and that single ambiguity makes every benchmark you read online nearly useless. Before you can compare yourself to anything, you have to define your terms and hold them constant.
Here are the four distinct metrics people sloppily lump together as "response rate":
- Response rate — anyone who reaches out because of the mailer. A call, a form fill, a text, a scanned QR code, a vanity URL visit, a card brought to your truck. This is the top of the funnel.
- Lead rate — responses that are actually a qualified prospect: right service area, real roof, a need or interest, not a vendor or a wrong number.
- Appointment (set) rate — leads that convert to a booked inspection or sit.
- Sold rate (conversion) — appointments that become signed jobs.
When a mail vendor brags about a "4% response rate," they are almost always counting raw responses, including tire-kickers, robocalls to your tracking number, and the neighbor who called to complain about your truck blocking the driveway. When a roofer says "postcards don't work, I got nothing," they are often counting only signed jobs and calling that the response rate. Both are measuring real things. Neither is measuring the same thing.
The only sequence that lets you fix anything
Write these five numbers down for every campaign, in this order:
- Pieces mailed
- Responses (raw)
- Qualified leads
- Appointments set
- Jobs sold (and revenue)
Now you have four conversion rates between them, and each one points at a different broken thing:
| Step | Rate | If it's low, the problem is… |
|---|---|---|
| Mailed → Response | Response rate | List, offer, design, timing, or saturation |
| Response → Lead | Qualification rate | Targeting (wrong people are calling) |
| Lead → Appointment | Set rate | Phone handling and speed-to-lead |
| Appointment → Sold | Close rate | Sales process, pricing, the rep |
The contractor who only tracks "jobs from mail" can't tell whether the postcard failed or whether their office manager is letting voicemails pile up for six hours. The number that matters most for diagnosing the mail itself is the raw response rate. The number that matters most for your bank account is cost per acquired job. You need all five to manage the program. Tracking only the last one is the single most common mistake in roofing direct mail.
A response-tracking worksheet you can copy
If you do nothing else after reading this, build this little grid in a spreadsheet and fill one row per campaign. It takes five minutes per mailing and it will change how you spend money.
| Field | Example | Where it comes from |
|---|---|---|
| Campaign name / date | Spring age-out, Apr | You name it |
| List segment | 20+ yr roofs, 3 ZIPs | Your list build |
| Pieces mailed | 8,200 | Mail house invoice |
| All-in cost | $5,330 | Print + postage + list + design |
| Cost per piece | $0.65 | Cost ÷ pieces |
| Raw responses | 71 | Call tracking + URL + QR + code |
| Qualified leads | 44 | CRM tagging |
| Appointments set | 31 | CRM tagging |
| Jobs sold | 11 | CRM, closed-won |
| Revenue | $121,000 | Signed contracts |
| Response rate | 0.87% | Responses ÷ mailed |
| Cost per lead | $121 | Cost ÷ qualified leads |
| Cost per job | $485 | Cost ÷ jobs sold |
| Marketing ROI | ~4.9x | Gross profit ÷ cost |
After three or four campaigns you'll have a table that tells you exactly which list segments and offers earn their postage. That table is worth more than any benchmark article, because it's your numbers, not somebody's average.
The real numbers: what roofing postcard response rates actually run
Now the question you came for. What's normal?
The most-cited industry reference point is the Association of National Advertisers / Data & Marketing Association (DMA) Response Rate Report, which has historically pegged direct mail response rates to a house list in the low-to-mid single digits and to a prospect (cold) list well under one percent. Those are across all industries — retail, finance, nonprofit, everything — so treat them as a ceiling and a sanity check, not a roofing benchmark.
Roofing is its own animal for a few reasons: the purchase is infrequent and expensive, it's often non-discretionary (a leak doesn't wait), and a huge share of the demand is event-driven by weather. That changes the response math in ways the cross-industry averages don't capture.
Here is an honest, field-grounded range for roofing postcards. These are not guarantees — they are the bands most disciplined operators land in, and the variables that push you up or down inside them.
| List / context | Realistic raw response rate | Notes |
|---|---|---|
| Cold EDDM (every-door, untargeted) | 0.1% – 0.5% | Cheapest per piece, lowest response, lots of junk responses |
| Targeted prospect list (age/value filtered) | 0.5% – 1.5% | The workhorse for most contractors |
| Tight storm-affected target list, fast | 1.5% – 4%+ | Time-sensitive, decays weekly, highest variance |
| Past customers / referral list (house list) | 3% – 8%+ | Smallest list, highest response, best ROI |
Notice the spread. A storm campaign mailed to the right 800 homes the week after a verified hail event can outperform a 20,000-piece EDDM blast by an order of magnitude in response rate — and by even more in cost per job, because the cold blast also buries your crew in unqualified calls.
Why "the average" is a trap
Averaging across those rows produces a meaningless number, yet that's exactly what most "roofing direct mail benchmark" articles do. If someone tells you "the average roofing postcard response rate is X%," your first question should be: average of what list, in what conditions, counting what as a response? Without those three qualifiers the number is decoration.
The useful framing is not "am I above average" — it's "am I above breakeven, and is my response rate trending up campaign over campaign as I tighten the system." Those are the questions you can actually act on.
What pushes you to the top or bottom of each band
Inside any of those rows, the same list can swing two or three times in response depending on factors you control. Here's what separates the top of a band from the bottom:
- Recency of the list. A homeowner list cleaned and refreshed in the last 90 days beats a two-year-old list badly, because people move, homes re-roof, and undeliverables pile up. Stale lists quietly tank response and you blame the card.
- Match between offer and list. A storm-documentation offer to a storm-hit list lands; the same offer to a no-storm age-out list confuses people. The offer has to fit why that homeowner would care.
- Mailbox competition. Right after a storm, every roofer in the county mails the same swath. Your card competes with ten others. A quiet age-out neighborhood in the shoulder season has almost no competition, so a lower-urgency list can still respond well.
- Brand familiarity. If homeowners have seen your trucks, yard signs, and ads, your card converts a familiar name. A cold name from nowhere has to work harder. This is why mail layered on top of local presence outperforms mail alone.
- Speed of your response side. This doesn't change how many people reach out, but it changes how many of those reaches you capture and count, which is why two roofers mailing the same card report different "response rates."
None of these are the postcard's fault. They're the system's. Which is the whole point.
The math that decides everything: cost per job and breakeven response rate
Response rate is a vanity metric until you tie it to money. A 0.3% response rate can be wildly profitable and a 2% response rate can lose money. It depends entirely on cost per piece, conversion rates down the funnel, and your average job value and margin.
Let's build the model with a worked example, because seeing the arithmetic kills a lot of bad decisions.
Worked example: a targeted prospect campaign
Assume:
- Pieces mailed: 10,000
- All-in cost per piece (printing + postage + list + design amortized): $0.65
- Total campaign cost: $6,500
- Response rate: 0.8% → 80 responses
- Qualification rate: 60% → 48 qualified leads
- Set rate: 70% → ~34 appointments
- Close rate: 35% → ~12 sold jobs
- Average job value (full replacement): $11,000
- Gross margin: 30% → $3,300 gross profit per job
Now the numbers that matter:
- Revenue: 12 jobs × $11,000 = $132,000
- Cost per lead: $6,500 / 48 = ~$135
- Cost per acquired job: $6,500 / 12 = ~$542
- Gross profit generated: 12 × $3,300 = $39,600
- Marketing ROI: ($39,600 − $6,500) / $6,500 = ~5.1x on gross profit
That's a strong campaign, and notice it only took a 0.8% response rate to get there. The leverage came from job value and the downstream conversion, not from a heroic response rate.
Breakeven response rate
The more useful inversion: what's the lowest response rate that still pays for itself? Work backward from gross profit per job.
Breakeven jobs = Campaign cost / Gross profit per job
In the example: $6,500 / $3,300 = 1.97 jobs. You need to sell about 2 jobs to break even on a $6,500 mailing. Working back up the funnel at the same conversion rates:
- 2 jobs ÷ 0.35 close = ~5.7 appointments
- ÷ 0.70 set = ~8.2 leads
- ÷ 0.60 qualification = ~13.6 responses
- ÷ 10,000 mailed = 0.14% breakeven response rate
That is the number to tattoo on your forearm. In this scenario, anything above roughly 0.14% response is profit. Suddenly a "disappointing" 0.5% response looks like a great campaign, and the panic over not hitting 2% evaporates.
Run this calculation for your numbers before every campaign. Plug in your real cost per piece, your real close rate, and your real margin. The breakeven response rate is the single most clarifying number in your entire marketing budget, and most owners have never calculated it once.
A quick reference: breakeven response by margin and job value
Holding cost per piece at $0.65 and the same downstream funnel (qualify 60%, set 70%, close 35% → roughly 14.7% of responses become jobs), here's how breakeven response shifts with gross profit per job:
| Gross profit / job | Breakeven jobs per 10k | Breakeven response rate |
|---|---|---|
| $1,500 | ~4.3 | ~0.30% |
| $2,500 | ~2.6 | ~0.18% |
| $3,300 | ~2.0 | ~0.14% |
| $5,000 | ~1.3 | ~0.09% |
The takeaway: high-ticket, high-margin roofing work tolerates a shockingly low response rate. If you're a retail re-roof shop with strong margins, you don't need volume — you need the right doors. If you're running thin margins on insurance-restoration volume, your breakeven response rate is higher and your targeting has to be tighter to compensate.
Lifetime value changes the math again
The breakeven model above only counts the first job. That undercounts what a mail-acquired customer is actually worth. A homeowner you re-roof once will, over the next decade, refer neighbors, call you for repairs, and replace gutters or do other work. If your average customer is worth, say, 1.4 jobs across their relationship with you once you count referrals, then your effective gross profit per acquisition is higher than the single-job number, and your breakeven response rate is lower still.
You don't need a fancy model. A rough rule: take your single-job gross profit, multiply by a conservative referral/repeat factor (1.2 to 1.5 for most healthy roofing shops), and use that number in the breakeven calculation when you're deciding whether a channel is worth keeping. It frequently turns a campaign that looked marginal on first-job math into an obvious winner once the referral tail is counted. Just don't fool yourself — only count referral value you actually track and can attribute, or you'll rationalize bad campaigns.
The cost-per-piece levers
The other side of the breakeven equation is cost per piece, and small changes there move breakeven meaningfully. The big drivers:
- Postage class. First-class costs more than marketing mail but delivers faster and returns undeliverables. EDDM has its own reduced retail rate but forces every-door delivery. Pick the class for the job, not the lowest number.
- Size. A 4x6 mails at the lowest postcard rate; 6x9 and 6x11 jumbos cost more in both print and postage but lift response. Run the breakeven both ways — the jumbo usually wins on cost per job for high-ticket work even though it loses on cost per piece.
- Volume tiers. Print and list costs drop at higher volumes, but don't let a per-piece discount lure you into mailing worse addresses just to hit a tier. A cheaper piece to a worse list is a worse campaign.
- List cost. Better data costs more per record. The question is never "is this list more expensive" — it's "does the tighter list lower my cost per job." It almost always does, because postage saved on suppressed bad addresses dwarfs the data premium.
Why most roofing postcards underperform: the five levers
Response rate is determined by five things, roughly in order of impact. Spend your energy top-down. Most contractors obsess over the bottom of this list (the design) and ignore the top (the list).
- List / targeting — who gets the card. The single biggest lever, by far.
- Timing — when it lands relative to need (storms, season, roof age).
- Offer / message — the reason to respond now.
- Format & design — the card itself.
- Follow-up & tracking — what happens after they respond, and whether you can measure it.
Lever 1: List and targeting (the 70% of the result)
The oldest rule in direct mail is the 40/40/20 rule: 40% of your result comes from the list, 40% from the offer, 20% from everything else. In roofing I'd weight the list even heavier, because roofing demand is so concentrated. A roof is either aging out, storm-damaged, or fine. Mailing the "fine" houses is pure waste, and EDDM guarantees you mail a lot of fine houses.
The targeting hierarchy, worst to best:
- EDDM (Every Door Direct Mail). You pick carrier routes and the USPS delivers to every address on them. Cheapest postage, zero targeting beyond geography. Good for pure brand saturation in a tight neighborhood you're already working; bad for efficiency. You will pay to reach apartments, brand-new construction, and homes that re-roofed last year.
- Demographic / homeowner lists. Filter by owner-occupied, home value, age of home, length of residence, income. Now you're excluding renters and at least skewing toward homes old enough to need a roof. This is the baseline competent approach.
- Roof-age targeting. The whole game in roofing is roof age. A 22-year-old asphalt roof is a prospect; a 4-year-old roof is not, no matter how nice the homeowner's income looks. Most lists can't tell you roof age. The ones that can are worth a premium because they let you skip the houses that physically don't need you yet.
- Storm-affected targeting. After a verified hail or high-wind event, the homes inside the swath are the hottest list in roofing — for a short window. Mailing them fast, with documentation-focused messaging, is the highest-response play available. More on the storm side below.
The difference between EDDM and a tight roof-age-plus-storm list is not 20% better response. It can be 5x to 10x better, because you've removed the giant denominator of homes that were never going to respond.
Lever 2: Timing
Timing operates on three clocks at once:
- Seasonal clock. Most regions see roofing demand climb in late spring and peak through summer and early fall, then fall off in deep winter. Mailing in your busy season means more in-market homeowners — and more competitors in the mailbox. Mailing in the shoulder season can mean lower response but lower cost-per-lead because the box is quieter and your crews are hungry. Test both; don't assume.
- Storm clock. This one is brutal and unforgiving. After a hail event, homeowner urgency and the share of homes with real damage both decay week by week. The first reputable, documentation-minded contractor in the mailbox has a structural advantage. A card that lands three weeks late competes with a dozen others and a homeowner who's already had three knocks on the door. Speed is a feature.
- Roof-age clock. A roof doesn't fail on a birthday, but the probability of needing replacement climbs with age and with cumulative weather exposure. Mailing a neighborhood built in a tight window (say, a subdivision developed 2001–2004) as those roofs cross 20+ years is a slow, reliable play that has nothing to do with storms.
The contractors who win on timing treat it as a trigger, not a calendar. They mail because something happened to a roof, not because it's the first of the month.
A note on day-of-week and delivery windows. Mail tends to read best when it lands midweek, when the box isn't stuffed with weekend catalogs and the homeowner has a moment to look. Plan your drop date backward from in-home delivery, not from when it leaves your shop — marketing mail can take a week or more in transit, while first-class is faster and more predictable. For storm work, that transit difference alone can be the gap between being the first card in the box and the eighth.
The roof-age clock in practice
The age-out play deserves more detail because it's the most reliable, least competitive, and most overlooked. Asphalt shingles — the roof on the vast majority of homes — have a service life that depends on product grade, install quality, ventilation, and climate, but the probability of replacement climbs steadily as a roof moves past the 15-year mark and accelerates past 20. That's not a guarantee any single roof fails on schedule; it's a population-level probability you can mail against.
The practical move: find neighborhoods built in a tight window and mail them as that cohort crosses the threshold. A subdivision built out over 2001–2004 will have a wave of original roofs hitting 20+ years at the same time. If you can identify those tracts and confirm the roofs haven't already been replaced, you have a list of homes with elevated odds of needing you, none of whom were prompted by a storm and most of whom no competitor is mailing. This is where roof-age data earns its keep, because the public homeowner data tells you the home's age, not the roof's, and a home built in 1985 may have a roof from last year.
Lever 3: Offer and message
Here's where roofing has a unique landmine, and it's worth being very precise, because the wrong offer is both a response killer and a legal problem.
Storm and insurance messaging: what you can and cannot say. If your campaign touches storm damage or insurance, you are in regulated territory. A roofing contractor may inspect a roof, document damage with photos, and prepare an accurate repair estimate for their own scope of work. The homeowner files their own claim, and the insurer decides coverage. That's the lane.
What you must keep off the postcard (and out of the script that follows it):
- Do not promise or imply you'll "handle," "negotiate," "fight," or "manage" the insurance claim. For a fee, that's unlicensed public adjusting in most states.
- Do not promise a specific payout, approval, or that the claim "will be covered."
- Do not advertise that you'll waive, absorb, eat, or pay the homeowner's deductible. Multiple states make deductible rebating explicitly illegal, and it's an insurance-fraud exposure everywhere.
- Do not advertise a "free roof" or "no cost to you" tied to a claim.
- Do not interpret the homeowner's policy or coverage for them.
What you can say, and what actually converts better anyway:
- "Storm came through your neighborhood. Free roof inspection with a photo-documented report you keep."
- "We document hail and wind damage and write you an itemized, Xactimate-aligned estimate. You decide what to do with it."
- "Recent storm in [neighborhood]? Know the condition of your roof before small damage becomes a leak."
The compliant message is the stronger message. "We'll get you a free roof" attracts skeptics, fraud, and a regulator's attention. "We'll climb up, photograph everything, and hand you a thorough report and an honest estimate" attracts homeowners who want a competent professional. The do-not-say list isn't just legal cover — it filters for better customers.
For non-storm (retail / age-out) campaigns, the offer leans on a different set of motivators:
- Specificity beats generic discounts. "Your roof is likely 20+ years old" outperforms "$500 off any roof." People respond to relevance more than to money.
- A real, dated deadline beats "limited time."
- Financing/payment framing ("roofs from $X/month") expands your responder pool to homeowners who need the roof but fear the lump sum — just keep any payment example accurate and properly disclosed.
- Social proof tied to their neighborhood ("we just re-roofed three homes on [Street]") dramatically lifts response because it's true, local, and verifiable.
A strong roofing offer is relevant, urgent, honest, and easy to act on. Generic discounts are the weakest of the four.
Headline patterns that earn the 1.5-second read. The homeowner decides whether to flip the card or trash it before they consciously read anything. Lead with relevance:
- Trigger-led: "Hail hit [Neighborhood] on [Month]. Free documented roof inspection."
- Age-led: "Homes on [Street] are reaching the age roofs start to fail."
- Proof-led: "We just replaced 4 roofs in [Subdivision]. Yours next?"
- Problem-led: "That stain on your ceiling won't fix itself."
What consistently underperforms: your company name as the headline, a generic "Quality Roofing You Can Trust," or a stock photo of a smiling family. None of those answer the only question the homeowner has in that 1.5 seconds: does this have anything to do with me?
The guarantee and risk-reversal angle. Roofing is a high-trust, high-dollar purchase from a category homeowners are primed to distrust (storm chasers earned that reputation). Anything that lowers perceived risk lifts response: a written workmanship warranty, manufacturer certifications, being licensed and insured stated plainly, a no-pressure "we'll show you photos and leave you the report" promise. These aren't discounts, they're trust signals, and for roofing they often out-pull a price cut.
Lever 4: Format and design
Design is the smallest lever, which is exactly why obsessing over it is a mistake. That said, a few format decisions move the needle:
- Size. A 6x9 or 6x11 jumbo postcard stands out in the stack far better than a 4x6. The bigger formats cost more in postage but consistently lift response enough to justify it for high-ticket roofing. Test the jump from 4x6 to 6x9 before you test headline colors.
- First-class vs. standard/marketing mail. First-class delivers faster (critical for storm timing), gets forwarded or returned (cleans your list automatically), and feels less like junk. Marketing mail is cheaper but slower and undeliverables just vanish. For storm work, pay for speed.
- The headline does 80% of the work. It has to be readable from the 1.5 seconds it takes to walk from the mailbox to the trash can. Lead with the neighborhood or the trigger, not your logo.
- One offer, one action. Multiple offers and multiple phone numbers kill response and wreck your tracking.
- Make the response mechanism stupidly easy. A big phone number, a short vanity URL, and a QR code. Different homeowners respond through different channels; give them all three.
Design rule of thumb: spend 80% of your creative energy on the headline and the offer, 20% on everything else. A beautiful card to the wrong list is money set on fire.
Lever 5: Follow-up and tracking
This is where the most money leaks, and it has nothing to do with the postcard.
Speed-to-lead is the hidden multiplier. A homeowner who calls your tracking number and hits voicemail will call the next roofer in the mailbox. Inbound mail responses are time-sensitive in minutes, not days. If your office can't answer live during business hours and call back within minutes after hours, you are paying postage to generate leads for your competitors. Many roofers could double their effective response rate without touching the postcard, just by answering the phone.
You cannot improve what you don't track. Tracking infrastructure for a serious mail program:
- A dedicated call-tracking number per campaign (or per list segment) so you can attribute calls precisely. Use call recording to audit how leads are handled.
- A vanity URL (roofco.com/spring) that redirects to a landing page, so web responses are attributable.
- A unique QR code per campaign with UTM parameters.
- A promo code the homeowner mentions or enters, as a backstop.
- A field in your CRM tagging lead source = this specific mailing, carried all the way through to the signed contract and final revenue.
Without that chain, you'll be guessing at your response rate and completely blind on cost per job. With it, you can kill losing lists and double down on winners within one or two campaigns.
The inbound script that protects your response rate. A trackable call is wasted if it's handled badly. Whoever answers should run a simple, consistent flow: confirm the address (and that it's in your service area), ask what prompted the call (storm, leak, age, just curious), set the inspection on the spot rather than promising a callback, and confirm the appointment with a text. The goal is to convert the response into a booked appointment in the same call. Every "let me have someone call you back" is a leak. Record calls and listen to a few each week — you will find leads being fumbled that you would never have caught from the summary numbers.
Match-back and holdout testing for the data-minded. Two advanced moves separate serious programs from the rest. First, match-back: periodically export your sold jobs and match the addresses against the lists you mailed, to catch jobs that came from mail but where the homeowner never mentioned the card (it happens constantly — people call your main line or find you online after the card jogs their memory). Match-back routinely reveals that mail drove more jobs than your tracking numbers alone showed. Second, holdout testing: when you mail a list, hold back a random 10% and don't mail them. Compare job rates between the mailed and held-out groups. The difference is the true incremental lift from the mail, stripped of the jobs you'd have gotten anyway. It's the most honest measurement of whether a campaign actually caused new business, and almost no roofers do it.
Knowing which roofs are due before you mail: where RoofPredict fits
Everything above keeps returning to one idea: the list is the lever. If you could mail only the homes whose roofs are actually aging out or were actually hit by a storm, your response rate, your cost per job, and your crew's sanity would all improve at once. The problem has always been that contractors can't see roof condition at scale. You can pull a homeowner list by age and income, but the data has no idea whether the roof is 4 years old or 24.
That's the gap RoofPredict is built to close. It tells roofing contractors which roofs are due, house by house — a roof-age range per address estimated from aerial imagery, combined with storm physics modeled per individual roof. Instead of mailing a whole carrier route and hoping, you rank the addresses by how likely each roof is to need work: the ones aging out, plus the ones a recent storm most likely wore down. Then you enrich your own CRM or mailing list with those roof-age and storm signals, so your existing list gets sharper rather than getting replaced.
A few honest points about how to think of it, because over-promising data is its own kind of bad marketing:
- Roof age comes back as a range, not a birth certificate. The signal is "this roof is likely 18–24 years old," not "installed on a date." That range is exactly what you need to sort prospects from non-prospects — you don't need the day, you need to know whether to mail the house.
- Storm modeling gives you odds, not proof. It estimates how hard a given roof was likely hit based on the storm's physics over that specific structure. It tells you which roofs to prioritize and document; it does not prove damage, and it never tells a homeowner their claim will be approved. Your inspector and your photos do the proving, on site.
- It sharpens targeting; it doesn't write your offer or answer your phone. The other four levers are still yours to get right.
Used well, the workflow looks like this: pull your target geography, let the data rank every address by roof-age range and storm exposure, mail (or knock) the top slice first, and suppress the homes whose roofs are clearly too new to need you. You shrink the denominator of wasted pieces, which is mathematically the fastest way to raise a response rate. A 10,000-piece EDDM blast at 0.3% and a 2,500-piece roof-age-ranked mailing at 1.4% can generate the same number of leads — but the second one costs a quarter of the postage and floods your office with far less junk.
That's the entire value: fewer pieces, better doors, higher response, lower cost per job. It doesn't replace good sales execution, and it won't save a bad offer. It just stops you from paying to reach roofs that were never going to call.
A worked comparison makes the leverage concrete. Say you have $5,000 to spend and a $0.65 all-in cost per piece either way:
- EDDM blast: ~7,700 pieces to every door, ~0.3% response = ~23 raw responses, but a low qualification rate (lots of new construction, renters, recently re-roofed homes calling) — maybe 40% qualify = ~9 leads. Your office fields the unqualified calls too, eating time.
- Roof-age-ranked + storm-segmented mailing: the same $5,000 buys roughly the same piece count, but you mail only the top-ranked addresses (or mail fewer pieces and pocket the savings). Response on a tight, due-roof list might run 1.2%, and qualification jumps to 65% because you've already excluded the new roofs. The same spend can produce two to three times the qualified leads, with a calmer phone.
The data doesn't make the postcard magic. It makes the denominator honest — every piece goes to a roof that has a real reason to respond. That's the lever, and it's the one most contractors have never been able to pull because they couldn't see roof condition until now.
A full campaign workflow, start to finish
Here's an end-to-end sequence you can run as-is. Adapt the numbers to your market.
Step 1: Set the target and the math (before you design anything)
- Define the goal: how many jobs do you need from this campaign?
- Pull your real numbers: cost per piece, qualification rate, set rate, close rate, average job value, gross margin.
- Calculate your breakeven response rate (see the worked example above). If you can't plausibly beat breakeven with your list, fix the list or don't mail.
Step 2: Build the list
- Start with geography you can actually service profitably (drive time matters).
- Layer targeting: owner-occupied, home value floor, and — most importantly — roof age. If you have storm data, segment storm-affected addresses into their own faster, separate mailing.
- Suppress: current customers (unless it's a referral/maintenance campaign), homes you've already mailed in the last 60–90 days, brand-new construction, and recently re-roofed homes.
- Rank by likelihood the roof is due, and mail the top slice first if budget is tight.
Step 3: Pick format and write the card
- Default to 6x9 first-class for high-ticket roofing; use marketing mail only for large, non-time-sensitive saturation plays.
- Headline: lead with the trigger (storm, neighborhood, roof age), not your brand.
- One offer (free documented inspection is the safest high-converting offer), one clear deadline, one primary action.
- For any storm/insurance angle, run the message past the do-not-say list. Document-and-estimate language only.
- Three response paths: phone, vanity URL, QR code.
Step 4: Wire up tracking before it mails
- Unique tracking number with recording.
- Vanity URL → landing page with UTMs.
- QR with campaign tag.
- CRM source field that survives all the way to signed revenue.
Step 5: Prepare the response side
- Live phone answering during business hours; sub-five-minute callback after hours.
- A tight inbound script: qualify (address, roof age/concern, storm or not), set the appointment, confirm.
- Calendar capacity ready before the mail lands. Generating leads you can't service is worse than not mailing.
Step 6: Mail, measure, iterate
- Log the five core numbers (mailed, responses, leads, appointments, sold) plus revenue and cost.
- Compute all four conversion rates and cost per job.
- Diagnose the weakest step and fix one variable next time.
- Keep winners, kill losers, and re-mail responsive segments on a sane cadence.
Edge cases and traps that wreck campaigns
The saturation trap. Mailing the same neighborhood every two weeks does not multiply response — it annoys people and burns the list. Roofing is an infrequent purchase. A reasonable cadence to a cold prospect list is every 60–90 days at most. Storm lists are the exception: mail fast and once, while the window is open.
The "design is the problem" trap. When a campaign flops, contractors reflexively redesign the card. Nine times out of ten the card was fine and the list or the offer was wrong, or the phone wasn't answered. Diagnose with your five numbers before you touch the artwork.
The attribution trap. Without tracking numbers and source tagging, you'll credit mail for jobs that came from referrals, and you'll blame mail for leads your office fumbled. Garbage attribution leads to killing your best channel by accident.
The volume-over-fit trap. "Let's mail 50,000 instead of 10,000" feels like scaling. If the extra 40,000 are lower-fit addresses, you're lowering your blended response rate and your margin while flooding your team with junk calls. Bigger is only better if the additional addresses are as good as the first ones. They almost never are.
The single-touch myth — and its opposite. One postcard rarely builds the recognition that a multi-touch program does; response often climbs on the second and third touches to a good list. But that's not a license to spam. The fix is multi-channel, multi-touch to a tight list (mail + a door knock + a retargeting ad to the same homes), not the same card blasted ten times to everyone.
The storm-chasing reputation trap. Showing up with "free roof" and deductible-erasing language tied to a storm invites fraud, complaints, and regulators, and it tars your brand with the storm-chaser reputation that homeowners and insurers have learned to distrust. The documentation-and-estimate framing isn't just legal — it's the durable, referable way to run storm work.
The capacity trap. The worst possible outcome is a great response rate you can't service. Leads have a shelf life of hours. If your crews and your phone can't keep up, you've paid to generate goodwill for whoever calls those homeowners back faster. Mail to the volume you can actually handle.
How postcards stack up against the other channels
Direct mail doesn't exist in a vacuum, and the smartest operators run it alongside other channels rather than treating it as a religion. A quick honest comparison:
| Channel | Strength | Weakness | Best paired with |
|---|---|---|---|
| Targeted postcards | Tangible, geo-precise, great for storm + age-out | Wasted on bad lists, slower than digital | Door knocking, retargeting |
| Door-to-door (D2D) | Highest conversion on a hot storm list | Labor-intensive, weather-dependent, reputation risk | Postcard pre-touch, roof-age data |
| Paid search | Captures active in-market demand | Expensive per click, demand-limited | Strong landing page |
| Retargeting/social | Cheap reinforcement of other touches | Weak as a sole channel for roofing | Mail + landing page |
| Referrals/house list | Highest close, lowest cost | Limited volume, must be earned | Maintenance/referral mailers |
The pattern that wins: use roof-age and storm data to define the same tight list, then hit it with mail and a door knock and a retargeting impression. Multiple touches to the right doors beats a single touch to a giant list every time, and it beats a giant blast on cost per job by a wide margin.
Putting it together
The roofing postcard response rate you read about online is mostly noise, because it's an average of incompatible things measured inconsistently. Stop chasing someone else's benchmark and build your own system:
- Define your five numbers and track them every campaign.
- Calculate your breakeven response rate before you mail — it's almost always lower than you fear.
- Pour your energy into the list and the timing, because that's 70–80% of the result.
- Make the offer relevant and honest, and if storms or insurance are involved, stay strictly on the document-and-estimate side of the line.
- Answer the phone fast, and track everything end to end.
Do those things and your response rate climbs campaign over campaign, not because the postcards got better, but because you stopped paying to reach roofs that didn't need you.
The single highest-leverage move on that list is targeting — knowing which roofs are actually due before you spend a dollar on postage. That's the problem RoofPredict was built to solve: a roof-age range per address from aerial imagery, plus storm exposure modeled per roof, so you can rank and enrich your own list and mail the doors most likely to respond. It won't write your offer or answer your phone, and it deals in ranges and odds rather than certainties — but it stops the most expensive mistake in roofing direct mail, which is mailing the houses that were never going to call. If you want to see which roofs in your service area are due, that's where to start.
FAQ
What is a good response rate for roofing postcards?
It depends entirely on the list. Cold every-door (EDDM) mail typically runs 0.1–0.5%, a targeted homeowner list 0.5–1.5%, a tight storm-affected list 1.5–4%+ for a short window, and a past-customer/referral list 3–8%+. Rather than chasing a single 'good' number, calculate your breakeven response rate from your own job value and margin — for high-ticket roofing it's often below 0.2%, which means many 'low' response rates are actually profitable.
How do I calculate my roofing postcard response rate correctly?
Divide total responses by pieces mailed, times 100. The catch is defining 'response' consistently — count every inbound call, form fill, text, QR scan, and vanity-URL visit, but keep it separate from leads, appointments, and sold jobs. Track all five numbers (mailed, responses, qualified leads, appointments, jobs sold) so you can see which step is weak. Counting only signed jobs as your 'response rate' is the most common miscalculation.
Is EDDM or a targeted mailing list better for roofers?
Targeted almost always wins on cost per job. EDDM is cheapest per piece but you pay to reach apartments, new construction, and recently re-roofed homes that will never respond. A list filtered by owner-occupancy, home value, and especially roof age removes that wasted denominator, often producing 5–10x the response rate. EDDM only makes sense for pure brand saturation in a small neighborhood you're already working.
What's the breakeven response rate for a roofing direct mail campaign?
Divide your campaign cost by your gross profit per job to get breakeven jobs, then work back up your funnel (close rate, set rate, qualification rate) to find the response rate that produces that many jobs. Example: a $6,500 mailing of 10,000 pieces needing 2 jobs at $3,300 gross profit each only needs about a 0.14% response rate to break even. High-margin, high-ticket roofing tolerates surprisingly low response rates.
How fast should I mail after a hailstorm?
As fast as you reliably can. Homeowner urgency and the share of homes with genuine damage both decay week by week, and the first credible contractor in the mailbox has a real advantage. Use first-class mail for speed, keep the message focused on documenting damage and writing an honest estimate, and have crews and phone capacity ready before the cards land. A storm card that arrives three weeks late competes with a dozen others.
Can I put insurance or 'free roof' language on my storm postcard?
No. Avoid promising to handle, negotiate, or 'fight' the claim (that can be unlicensed public adjusting), promising a specific payout or approval, advertising that you'll waive or absorb the deductible (illegal in many states), or advertising a 'free roof.' What you can say: you'll inspect, photo-document damage, and provide an itemized, accurate repair estimate the homeowner keeps. The homeowner files their own claim and the insurer decides coverage. The compliant message also converts better.
Why did my roofing postcard campaign fail?
Before redesigning the card, check your five numbers. Low raw response usually means a bad list, wrong offer, or poor timing. Good response but few jobs usually means your office isn't answering fast or your sales process is weak. Most 'failed' campaigns had a fine postcard and a broken list, offer, or follow-up. Diagnose the specific weak step instead of reflexively changing the artwork.
How does roof-age data improve postcard response rates?
Roofing demand is concentrated in roofs that are aging out or storm-damaged; mailing the rest is waste. Roof-age data — like RoofPredict's per-address age range from aerial imagery plus per-roof storm modeling — lets you rank and mail only the homes whose roofs are likely due and suppress the ones that are clearly too new. Shrinking the denominator of wasted pieces is the fastest mathematical way to raise response rate and cut cost per job. The age comes as a range and storm exposure as odds, not certainties.
How often should I mail the same neighborhood?
For a cold prospect list, every 60–90 days at most — roofing is an infrequent purchase and over-mailing annoys people and burns the list. Response often improves on a second or third touch to a good list, so a multi-touch, multi-channel program (mail plus a door knock plus retargeting to the same tight list) usually beats both a single touch and the same card blasted repeatedly. Storm lists are the exception: mail fast and essentially once, while the window is open.
What should I track to measure roofing direct mail ROI?
Use a dedicated call-tracking number (with recording), a vanity URL to a landing page, a unique QR code, and a promo code as a backstop — then tag the source in your CRM and carry it through to signed revenue. From there compute cost per lead, cost per acquired job, and ROI on gross profit. Without that attribution chain you'll credit mail for referral jobs and blame mail for leads your office fumbled, and you risk killing your best channel by accident.
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
- Every Door Direct Mail (EDDM) — usps.com
- USPS Business Mail Prices and Classes — pe.usps.com
- ANA / DMA Response Rate Report — ana.net
- Hail Basics and Storm Reports — spc.noaa.gov
- Severe Weather 101: Hail — nssl.noaa.gov
- IBHS Hail and Roofing Research (FORTIFIED) — ibhs.org
- NRCA Roofing Industry Resources — nrca.net
- FTC Advertising and Marketing Guidance for Businesses — ftc.gov
- Truth in Advertising Standards — ftc.gov
- Texas Department of Insurance: Roofing and Public Adjusters — tdi.texas.gov
- NAIC: Public Adjusters and Consumer Protection — naic.org
- U.S. Census Bureau: American Housing Survey — census.gov
- Bureau of Labor Statistics: Roofers Occupational Outlook — bls.gov
- RoofPredict — roofpredict.com
Related Articles
How to Qualify Roofing Leads Before Scheduling an Inspection
Most wasted inspections come from leads that were never going to buy. Here is the qualification workflow that lets you book only the doors worth a truck roll.
Is Direct Mail Worth It for Roofing Companies? An Honest Numbers Breakdown
Direct mail still works for roofers who target the right roofs and track the right numbers. Here is the full cost-per-job math, the response benchmarks, and where most mail money gets wasted.
How to Lower Cost Per Lead From Roofing Direct Mail
Cost per lead from direct mail is decided mostly before you print — by who's on the list. Here's the real CPL math, the targeting that cuts it, and the tracking that proves it.