How to Mail Fewer Postcards and Get More Roofing Jobs
On this page
If you run direct mail for a roofing company, you already know the quiet math that keeps you up at night. You print 10,000 postcards, you drop them across a few ZIP codes, and a couple of weeks later the phone has rung maybe a dozen times. Most of those calls are tire-kickers, a few are real, and one or two turn into a signed contract. You paid for all 10,000 pieces. You paid the printer, you paid the postage, you paid for the list, and you paid in the most expensive currency of all: the time your crew and your office spent chasing the wrong houses.
The instinct, when response is thin, is to mail more. Bigger drops, more frequency, wider radius. That instinct is exactly backward. The roofers who win at mail are not the ones who mail the most. They are the ones who mail the right roofs and skip everything else. They send fewer pieces, spend less money, and book more jobs — because every postcard lands on a roof that is actually old enough or beaten-up enough to need replacing soon.
This is a working playbook for doing that. It covers how to read your own numbers honestly, how to pick the houses that are worth a stamp, how to build a list that does the skipping for you, what to actually put on the card, how to handle the follow-up so paid responses don't leak out the bottom of your funnel, and how to track all of it so you stop flying blind. It is written for the owner or sales manager who is sick of paying to reach roofs that can't buy from them.
Why most roofing mail loses money
Direct mail is not broken. Roofing direct mail targeting is broken at most companies. The two are very different problems, and confusing them is what leads people to either quit mail entirely or double down on a leaky bucket.
Here is the core issue. A residential asphalt shingle roof lasts somewhere in the range of 15 to 30 years depending on the product, the install, the ventilation, the slope, and the weather it has taken. That means in any given neighborhood, the share of homes that will buy a new roof this year is small. Most roofs on the street are either too new to need you or not yet old enough to be thinking about it. When you mail the whole street, you are paying full price to reach a majority of homeowners who are physically incapable of becoming your customer right now. They could have the best card in the world land on their mat and they still would not call, because their roof is twelve years old and fine.
So the postcard that "didn't work" usually worked fine. It just landed on the wrong roof.
The numbers that actually matter
Most roofers track the wrong metric. They look at response rate — calls divided by pieces mailed — and the Data & Marketing Association historically pegs prospect-list mail response in the low single digits, often well under 1 percent for cold prospect mail. A roofer hears "under 1 percent" and assumes mail is dead. It isn't. Response rate is a vanity number because it tells you nothing about whether you made money.
The number that matters is cost per acquired job, and downstream of it, return on the campaign. Walk it through with real, conservative figures:
| Line item | Broad mail (whole ZIP) | Targeted mail (due roofs only) |
|---|---|---|
| Pieces mailed | 10,000 | 2,500 |
| Cost per piece (print + postage + list, all-in) | $0.65 | $0.75 |
| Total spend | $6,500 | $1,875 |
| Response rate | 0.5% | 1.8% |
| Calls / leads | 50 | 45 |
| Inspection-to-contract close | 20% | 28% |
| Jobs won | 10 | ~12 |
| Cost per job | $650 | ~$156 |
Look at what changed. The targeted drop costs a little more per piece because a good list and good data are not free. But it mails a quarter of the volume, generates nearly the same number of leads, closes them at a higher rate (because the homeowner's roof actually is failing, so the conversation is real), and drives the cost per job down by roughly four times. You spent a third of the money and booked more work.
That is the entire thesis of mailing fewer postcards: you are not trying to reach more people, you are trying to reach more of the right people and stop paying to reach the rest.
Where the money leaks
Before you can fix targeting, name the leaks. In most roofing mail programs the waste comes from a predictable set of places:
- New roofs. Homes that re-roofed in the last several years. They are invisible to most data sources, so you keep mailing them every cycle. Pure waste.
- Rentals and absentee owners. The person living there can't authorize a roof. The owner is somewhere else and never sees the card.
- Apartments, condos, and HOA-governed roofs where an individual homeowner can't hire you for the roof at all.
- Wrong price band. A $90,000 starter home and a $1.2M custom home are not the same customer; one card and one offer can't speak to both.
- Vacant lots and demolished structures still sitting in old mailing lists.
- Over-frequency to the same dead houses. Mailing the same too-new roof six times a year because the list never gets cleaned.
Every one of those is a stamp you can stop buying. The rest of this is how.
A worked example of the waste
Put numbers on it so it stops being abstract. Say you mail a single carrier route of 1,000 homes. Walk through who's actually reachable:
- Of 1,000 homes, suppose 180 are rentals or absentee-owned. Cross them off — roughly 820 owner-occupied left.
- Of those 820, maybe 90 re-roofed in the last five years. Their roofs are fine; they will not buy. Down to ~730.
- Of those 730, in a typical mixed-age neighborhood maybe 40 percent are roofs under ten years old — too new to be thinking about replacement. That's ~290 more gone, leaving ~440.
- Of the remaining 440, a chunk is the wrong price band for the job you sell, and a few are houses you've already quoted or sold. Call it 90 more removed. You're at ~350.
So on a 1,000-home route, somewhere around 350 homes are even plausibly your customer this year, and the truly due roofs — old enough or storm-worn enough to act now — might be 120 to 180 of those. When you mail all 1,000, you paid to reach 1,000 to talk to maybe 150. That's not a marketing problem; it's an arithmetic problem, and it's fixable by simply not buying the other 850 stamps.
The exact percentages will differ on your routes — a 1990s subdivision skews older and denser with due roofs; a five-year-old development is almost all dead weight for you. The point holds either way: the share of a route worth mailing is a minority, and a blanket drop pays full freight to reach the majority that can't buy.
Step 1 — Get honest about your current numbers
You can't shrink waste you haven't measured. Before you change anything about the list or the card, build a one-page scorecard for your last three to four mail drops. You need these fields, and most of them are sitting in your CRM and your accounting already:
- Pieces mailed per drop, and the ZIP codes / carrier routes they hit.
- All-in cost per piece (design amortized, print, postage, list/data, mail-house handling).
- Inbound calls and form fills attributable to that drop — use a tracked phone number and a dedicated landing URL or QR code so you actually know.
- Inspections booked from those responses.
- Contracts signed and revenue.
- Cost per lead, cost per inspection, cost per job.
If you can't attribute responses to a specific drop, fix that first — it is the cheapest improvement you will ever make. Buy a call-tracking number for each campaign, put a unique QR code on each card version, and ask every caller "do you have a card in front of you?" Without attribution, every other decision here is a guess.
Once you have three drops scored, you will almost always find the same thing: a small set of routes or neighborhoods produced most of your jobs, and a large set produced none. That distribution is your map. You are about to stop mailing the dead zones.
How to attribute responses cleanly
Attribution is where most roofers wave their hands, so be concrete about the mechanics. You have three reliable ways to tie a response back to a specific drop, and you should use all three at once for redundancy:
- A unique tracked phone number per campaign. Call-tracking numbers are cheap and forward to your main line. Each drop (or each card version) gets its own number, and your CRM logs which number rang. This catches the homeowner who picks up the phone with the card in hand.
- A dedicated landing URL or QR code per card version. Don't send mail traffic to your homepage — send it to a clean booking page with a URL or QR unique to that drop. Now web responses are attributed too, and the QR scan itself is a data point.
- The intake question. Train whoever answers the phone to ask, every time, "Do you happen to have a card or mailer in front of you?" It costs five seconds and recovers attribution when a homeowner calls the main number from memory.
The failure mode to avoid is a single shared phone number across all your marketing. If mail, your truck wraps, your yard signs, and your paid search all point at one number, you can't tell which channel earned the job, and you'll cut blind. Separate the numbers and the truth falls out for free.
Reading the scorecard like an operator
When you sort your routes by cost per job, you're looking for three patterns. Winners are routes with a low cost per job and enough volume to matter — mail more into these and consider a second annual touch. Dead zones are routes with real volume mailed and zero or near-zero jobs over twelve months — cut them now and revisit in a year. Thin signals are routes that booked a job or two but on too little volume to judge — these aren't proven yet; either test them again at a slightly larger drop or leave them alone. The discipline is refusing to let a single lucky job keep an expensive route alive, and refusing to kill a winner because one drop was soft. Three drops of data smooths out the noise; one drop is a coin flip.
A quick self-audit
Run these five checks on your last campaign:
- What percent of your mailed homes are owner-occupied single-family? (If you don't know, your list is too loose.)
- When did you last suppress homes you've already sold or quoted? (Mailing your own past customers a cold prospect card is an embarrassing, common leak.)
- Are you mailing any routes that have produced zero jobs in 12 months? Cut them.
- Is your card the same for a $150k neighborhood and a $600k neighborhood? It shouldn't be.
- Do you re-mail the same households every cycle without cleaning re-roofs? You're paying to reach roofs you already lost or that no longer need you.
Step 2 — Decide which roofs deserve a stamp
This is the heart of mailing fewer postcards. You want to spend your budget on homes where a roof replacement is plausibly on the horizon, and skip the rest. There are four signals that, stacked, tell you a roof is worth reaching. None of them is perfect alone. Together they are powerful.
Signal 1 — Roof age
Age is the single strongest predictor of whether a homeowner is a buyer, because shingles age out on a schedule. A roof in its replacement window is a candidate; a roof installed five years ago is not, no matter what your card says.
The trap is how you estimate age. Most roofers reach for the obvious sources and get burned:
- "Year built" from county records or a real-estate site is the build date, not the roof date. A 1985 house may have been re-roofed in 2019. If you mail it as a 40-year-old roof, you are mailing a 6-year-old roof. This is the single most common targeting error in the trade.
- Permit data is patchy. Re-roofs are under-permitted in many jurisdictions, and pulling, cleaning, and matching permits across counties is real work.
- Driving the neighborhood works but doesn't scale. A sharp estimator can read curb-level wear, but you cannot eyeball 40,000 homes.
What you actually want is an estimate of when the current roof went on, ideally as a range rather than a false-precise single date — "this roof is roughly 18 to 22 years old" is honest and useful; "this roof was installed on a specific day" is a claim no remote data source can truthfully make. A range lets you set a sane threshold (say, mail roofs estimated 16 years and older) without pretending you have certainty you don't.
Signal 2 — Storm exposure, modeled per roof
The second signal is weather, but not the way most people use it. A hail map or a storm-track overlay tells you where a storm passed. It does not tell you which roofs that storm actually wore out. Two houses on the same block can take very different punishment from the same hailstorm depending on slope orientation, the angle the stones came in, wind direction, shielding from trees, and the age and brittleness of the shingle already on the roof.
The useful version of weather data models the storm on each roof — hail size and trajectory, wind load, accumulated exposure over years — and scores impact house by house, then pairs it with age. An old roof that took two real hail events is a far better stamp than a new roof under the same cloud. This is where physics beats a heat map: the heat map says "it hailed here," the per-roof model says "these specific roofs are the ones it likely degraded."
Keep this honest in your own head and in your copy: storm modeling produces odds, not proof. It tells you which roofs are likely worn, not which roofs are definitely damaged. You confirm damage with an inspection. More on the compliance side of storm mail below, because that is where a lot of roofers get themselves in trouble.
Signal 3 — Ownership and home profile
Layer in the boring-but-decisive filters:
- Owner-occupied single-family. Skip rentals and absentee owners unless you have a specific reason and a way to reach the owner.
- Home value / price band that matches the job you want to sell, so your offer and your card speak to a real budget.
- Tenure — how long they've owned. A homeowner who has been in the house 15+ years is more likely to be facing their first roof replacement.
- Property type that you can actually re-roof for an individual buyer (skip HOA-controlled and multifamily roofs).
Signal 4 — Your own first-party data
The highest-intent "list" you own is already in your CRM, and it costs nothing to mail:
- Old estimates that never closed. A homeowner you quoted three years ago, who said "not yet," may be exactly now. That roof aged three more years.
- Past customers due for related work — the repair customer from 2018 whose full roof is now near end of life, or a gutter/repair job that's ripe for a re-roof conversation.
- Past customers as referral mailers — a card to a happy customer asking them to pass your name to a neighbor with an obviously older roof.
This bucket consistently out-performs cold prospect mail because the relationship already exists. Mine it first, every time, before you spend a dollar on cold lists.
A concrete way to work it: pull every estimate from your CRM that's 24 to 60 months old and never closed. Those homeowners researched a roof, let a contractor on their property, and chose to wait. Their roof has aged two to five years since. Some had a leak patched and are now living on borrowed time; some shopped you against a competitor who has since gone quiet. A by-name card — "We quoted your roof in 2022; a lot can change in a few years, and we'd be glad to take another look" — lands completely differently than a cold prospect piece, and it costs you nothing but the postage. Roofers routinely sit on a season's worth of work in this list and never mail it.
Two edge cases worth handling on purpose
The brand-new development. A subdivision built in the last three to five years looks tempting because the homes are nice and the addresses are clean, but every roof on it is too young to buy. Suppress whole young developments wholesale rather than mailing them and waiting to be disappointed. Put a calendar note to revisit when those roofs cross your age threshold years from now.
The pocket of older homes inside a mostly-new area. The reverse also happens: a few original farmhouses or 1970s holdouts scattered through newer construction. ZIP- or route-level thinking misses these, but address-level roof-age data catches them. They're often excellent targets — old roof, established owner, no HOA — and you'd never find them by eyeballing the neighborhood from the road.
Stacking the signals
No single signal is your list. You stack them. A practical priority order:
- First-party CRM (old estimates, past customers) — mail these every quarter.
- Owner-occupied + roof estimated past your age threshold + price band match.
- Of those, push the ones with real per-roof storm exposure to the top and mail them first / more often.
- Suppress everything else: new roofs, rentals, wrong price band, anyone you've sold, anyone who asked off your list.
That stack is how 10,000 names becomes 2,500 names worth mailing.
Step 3 — Build the list that does the skipping for you
Knowing the signals is one thing; assembling them into a clean, deduplicated, suppression-scrubbed mailing list is the operational work. Here is a workflow you can run every cycle.
The build workflow
- Define the geography. Don't think in ZIP codes; think in carrier routes. The USPS Every Door Direct Mail program and standard route-level targeting let you buy postage at lower rates and aim at specific routes. Pull the carrier routes that, per your Step 1 scorecard, have actually produced jobs.
- Pull the universe of owner-occupied single-family homes in those routes, in your target price band.
- Append roof-age estimates (as ranges) and per-roof storm exposure so you can sort and threshold.
- Apply your age threshold — e.g., keep roofs estimated ~16 years and older. This is the cut that removes the most waste.
- Suppress your own people the wrong way and the right way. Remove anyone you've already sold (so you don't cold-pitch a customer), and remove do-not-mail requests — but move past customers and old estimates into a separate, warmer mailing instead of deleting them.
- Run NCOA / address hygiene. The USPS National Change of Address process removes movers and standardizes addresses so you're not mailing the dead and the gone. Most mail houses do this as a standard step; insist on it.
- Dedupe by household, not by name, so a married couple gets one card, not two.
- Cap frequency. Decide how many times a household can be mailed per year and enforce it across drops.
EDDM vs. a targeted list
A fair question: if Every Door Direct Mail is cheaper per piece, why bother with a list at all — why not simply blanket carrier routes with EDDM and skip the list cost?
Because EDDM is every door — by design it cannot skip the new roofs, the rentals, or the wrong price band. It is cheaper per piece and far more expensive per job, because you pay to hit the whole route. EDDM has a place: a route where your scorecard shows a genuinely high concentration of older homes, where the saturation discount outweighs the waste. But for most targeting, a clean addressed list that mails a quarter of the route at a higher postage rate still wins on cost per job. Run the math from your own scorecard; let the cost-per-job number decide, not the cost-per-piece number.
There's also a hybrid most roofers overlook. Use EDDM on the handful of routes your scorecard proves are dense with old roofs — where even a blanket drop mostly hits due homes — and use a tight addressed list everywhere else. You're matching the tool to the route instead of religiously picking one method for the whole market. The deciding question per route is simple: what share of the doors are roofs I'd actually want to reach? Above some threshold, EDDM's discount wins; below it, the addressed list's precision wins. Your own cost-per-job history tells you where that threshold sits.
Frequency: how often to touch a due roof
Mailing fewer pieces doesn't mean mailing each home once. A due roof is worth more than one touch, because a homeowner rarely acts on the first card — they act when a card happens to land the same week the ceiling stains or the neighbor's crew shows up. Hitting the same due roofs two or three times a year keeps you top of mind for the moment intent appears. The discipline is that you're repeating to a small, qualified list, not blasting frequency at the whole route. Three touches to 2,500 due roofs costs less and books more than one touch to 10,000 random ones. Set a per-household annual cap, enforce it across drops so nobody gets six cards, and spend your frequency budget on the roofs that earned it.
Where roof-age and storm data fit
This is the point where the list either does the skipping for you or it doesn't. If you are appending "year built" as a stand-in for roof age, your list is quietly full of re-roofed homes you'll never win. If you are overlaying a county-wide hail polygon and calling it targeting, you're mailing thousands of roofs the storm never touched.
This is the specific gap a service like RoofPredict fills, and it's worth being precise about what it does and doesn't do. RoofPredict scans an area from aerial imagery and returns, per address, an estimated roof-age range plus a storm exposure score modeled on that specific roof — hail and wind impact scored house by house, not a ZIP-level overlay. You hand it your area (or your own mailing list), and it ranks the roofs by how due they are, so the homes that are both aging out and storm-worn rise to the top of your drop and the new roofs fall off the bottom. It enriches a list you already own; it is not a lead service and it does not sell you the same homeowner it sold to five competitors.
The honest limits matter, and you should hold any vendor to them: roof age comes back as a range, not an exact install date, because no remote source can truthfully promise a date. Storm exposure is odds, not proof of damage — it tells you which roofs are likely worn, and you confirm with an inspection. Used that way, it turns the four signals above into a ranked, ready-to-mail list and lets you cut volume hard without cutting the jobs. Used as a magic "who will definitely buy" oracle, it — like every data source — will disappoint you. Keep your expectations calibrated and it earns its keep by shrinking the drop.
Step 4 — Make the card worth the stamp
You've cut your list to the roofs that deserve a stamp. Now the card has to convert. A smaller, sharper list raises your ceiling; a weak card leaves money on it.
The anatomy of a card that books inspections
A roofing postcard has one job: get a homeowner with an aging or storm-worn roof to take the next small step (call, scan, fill a form). It is not a brochure. Keep it to a few moving parts:
- A headline that names their situation, not yours. "Your roof may be near the end of its life" beats "We're the area's premier roofer." Specific-to-them beats generic-about-you every time.
- One clear offer. A free roof inspection / no-obligation roof check is the standard, and it works because it's a low-commitment next step. Don't stack five offers.
- Proof you're real and local. License number, years in business, a local phone, a recognizable area name. Roofing has trust problems; signal legitimacy.
- One primary call to action, repeated. Phone number large. A QR code that goes to a simple booking page. Don't make them choose between four ways to respond.
- A reason to act now that isn't fake. "Roofs near the end of their life are easier and cheaper to address before a leak" is a real reason. A fake countdown timer is not, and homeowners smell it.
Match the message to why the roof is on your list
The quiet advantage of a targeted list is that you know why each home is on it, so you can vary the card. Two or three versions, mapped to the signal that put the house on the list:
- Aging-out version (on the list because of roof age): lead with lifespan and getting ahead of leaks.
- Storm version (on the list because of real per-roof storm exposure): lead with documentation — "recent storms in your area may have worn your roof; we'll inspect and document what we find." Read the compliance section below before you write a single storm card.
- Past-customer / referral version (first-party): warm, by-name, relationship-led.
Variable-data printing lets you print these in one run keyed off your list fields. You are not designing three campaigns; you are printing one campaign that speaks differently to three reasons-to-be-on-it.
Design and format details that move response
The copy does the heavy lifting, but a handful of physical choices quietly help or hurt:
- Size. A larger card (think 6x9 or 6x11) stands out in a stack of mail and survives the walk from the mailbox to the trash can better than a standard 4x6. It costs more in postage; on a small targeted list you can afford it, which is part of the point of mailing fewer.
- Looks like mail, not an ad. Overly slick, full-bleed glossy cards read as junk and get tossed on sight. A cleaner, more straightforward design often beats the over-designed piece in roofing specifically, because the audience is wary of marketing gloss.
- One dominant element. The eye should land on the headline or the offer first, then the phone number. If everything is bold, nothing is.
- Real local imagery. A photo of an actual aging roof or a real neighborhood reads truer than stock photos of impossibly perfect houses.
- Back side earns its space. Use it for the trust stack — license number, years in business, a short honest line about what the inspection includes — not more sales shouting.
None of this matters if the list is wrong. But once the list is right, these details are the difference between a good response rate and a great one on the same drop.
A practical card checklist
Before a card goes to print, it should pass all of these:
- Headline speaks to the homeowner's roof, not your company.
- Exactly one offer, clearly stated.
- One primary CTA, repeated, with a large tracked phone number.
- Unique QR code / tracked URL so you can attribute the drop.
- License number and local trust signals visible.
- No fake urgency, no fake scarcity, no claims you can't back up.
- Storm cards: documentation framing only (see below).
- The version matches the reason the home is on the list.
Step 5 — Storm and insurance mail without crossing the line
If you do storm or restoration work, mail tied to recent weather is some of your highest-converting — and highest-risk — mail. The conversion is real: a homeowner whose roof just took hail is motivated. The risk is that roofing-and-insurance advertising is heavily regulated, and the line between "legitimate contractor" and "unlicensed public adjuster" is one a postcard can cross in a single sentence.
Here is the line, stated plainly, because getting it wrong can cost you your license in some states.
What you, as a roofer, may do: inspect a roof, document storm damage thoroughly with photos and measurements, and prepare an accurate, Xactimate-aligned estimate to repair your own scope of work. You can state facts about your scope to the carrier. You hand that documentation and estimate to the homeowner. The homeowner files the claim. The insurer decides coverage. Your card can absolutely offer to inspect and document a roof after a storm.
What you may not do — and may not advertise: for a fee, negotiate, adjust, "handle," or "manage" the homeowner's claim; interpret their policy or what's covered; promise a specific payout, approval, or settlement; say anything about their deductible being waived, absorbed, covered, or "gone" (that's insurance fraud in many states, full stop); advertise a "free roof"; or represent the homeowner against their insurer. That last bundle is unlicensed public adjusting. Courts have treated even self-labeling as a "claims specialist" as crossing that line.
Words to keep off your storm postcards
Treat this as a do-not-print list for any storm or insurance mail:
- "We'll get your claim approved" / "guaranteed approval"
- "We handle / manage / negotiate your claim"
- "We'll fight / beat the adjuster" / "maximize your settlement"
- "No out-of-pocket cost" / "we cover / waive your deductible"
- "Free roof"
- "Insurance specialist" / "public adjuster" (unless you are, in fact, licensed as one)
Language that is safe and still converts
The winning storm angle isn't a payout promise — it's showing up with proof:
- "Recent storms may have damaged roofs in your neighborhood. We'll inspect yours and document what we find — at no charge."
- "Get a thorough, photo-documented roof inspection and a clear repair estimate you can keep."
- "We'll give you the documentation; whether to file is your call, and coverage is between you and your insurer."
That framing captures the exact same motivated homeowner without making a single promise that puts your license at risk. And it maps perfectly to per-roof storm data: you mail the roofs the storm most likely wore, you show up, you document, and you hand over an honest estimate. The homeowner and their carrier take it from there.
When in doubt, run storm and insurance copy past counsel for your state. Insurance advertising rules vary, and "my buddy in the next state does it" is not a defense.
Timing the storm drop
Storm mail is also a timing game, and the targeting data is what lets you move fast without spraying. After a significant hail or wind event, the homeowners most likely to need you are the ones whose roofs were already aging and then took real impact — old plus hit, not new under the same cloud. If your list already carries roof-age ranges and per-roof exposure, you can pull the intersection — older roofs in the affected area that the storm likely wore — and mail just those, within days, while the event is fresh in homeowners' minds. That's a tight, defensible, fast drop. Compare it to the common alternative: blanketing an entire damaged ZIP with a storm card, most of which lands on newer roofs that took nothing, which both wastes money and trains the neighborhood to see you as another storm-chaser papering the area. Precise and prompt beats broad and loud.
Keep the documentation framing the whole way through. The card offers an inspection and documentation; the estimator shows up, walks the roof, photographs what's there, and writes an honest repair estimate the homeowner keeps. Whether to file and whether it's covered stays between the homeowner and their carrier. You never touched the claim — you just showed up to the right roofs with proof of what you found.
Step 6 — Don't let paid responses leak out the bottom
You spent real money to make the phone ring. The fastest way to make mail "not work" is to fumble the response. A targeted, expensive lead that doesn't get called back within minutes is worse than never mailing at all — you paid for it and threw it away.
A tight follow-up workflow:
- Speed to lead. Inbound roofing calls that go to voicemail mostly don't call back. Answer live during business hours; have a fast callback process after hours. Aim to respond to form fills in minutes, not days.
- Book the inspection on the first contact. The goal of the call is a scheduled inspection on the calendar, not "we'll call you back."
- Log the source. Every response gets tagged to the drop and the card version in your CRM. This is how Step 1's scorecard stays alive.
- Confirm and remind. Text/email confirmation plus a reminder cuts no-shows on the inspection.
- Show up with the documentation. Your estimator arrives already knowing the roof's estimated age and storm exposure, walks the roof, and leaves the homeowner with photos and an honest estimate. Walking in informed closes better than walking in cold.
- Follow up the non-closes for the long game. The homeowner who said "not this year" goes into the first-party bucket and gets a warmer mailer next cycle. Their roof is only getting older.
Mail is a system, not a card. The card opens the door; the follow-up books and closes the job. Plugging the response leak often does more for cost-per-job than any list change.
Step 7 — Test, measure, and compound
Mailing fewer postcards is not a one-time cut; it's a loop you tighten every cycle. Once you're attributing responses (Step 1), you can run cheap, honest tests.
What to test, one variable at a time
- List threshold. Does mailing roofs estimated 14+ years vs. 18+ years change your cost per job? Tighter usually wins until it doesn't; find your edge.
- Offer. Free inspection vs. free inspection + documentation packet.
- Headline. Situation-named vs. generic. (Situation wins, but prove it on your audience.)
- Frequency. Does a second touch to the same due roofs lift response enough to justify the cost?
- Format. Postcard size, EDDM vs. addressed, with/without a QR code.
Change one thing per test, keep the rest constant, and judge by cost per job, never by response rate alone.
A simple ROI worksheet
For every drop, compute and log:
Total spend = pieces × all-in cost per piece
Cost per lead = total spend ÷ leads
Cost per inspection = total spend ÷ inspections booked
Cost per job = total spend ÷ jobs won
Return on campaign = (job revenue − total spend) ÷ total spend
Rank your routes and list segments by cost per job. Mail more into what's cheap, cut what's expensive, and re-test the cut zones once or twice a year (neighborhoods age; a dead route can become a live one as its roofs cross the threshold). Over three or four cycles, this loop quietly drives your cost per job down and your win count up — without ever increasing the size of the drop.
Common mistakes that keep cost-per-job high
A closing list of the errors that quietly bleed roofing mail budgets, gathered from how these programs actually fail:
- Treating "year built" as roof age. The number-one targeting error. Re-roofs make build dates lie.
- Mailing the whole ZIP because it's easy. Easy is expensive. The route- and roof-level cut is the whole game.
- No attribution. If you can't tie jobs to drops, you're guessing, and you'll cut the wrong routes.
- Mailing your own customers a cold card. Embarrassing, common, and a sign your suppression is broken.
- Chasing response rate instead of cost per job. A 2 percent response that closes at 10 percent can lose to a 1 percent response that closes at 30 percent.
- Storm copy that promises payouts or touches the deductible. Converts well right up until it costs you your license.
- Great list, weak follow-up. Paying for the lead and then letting it sit in voicemail is the most expensive mistake on this list.
- Never re-testing cut routes. Roofs age into your threshold every year; a dead zone today is a target next year.
- One card for every income band. A single message can't sell a $9k re-roof and a $40k re-roof to two different buyers.
- Quitting mail entirely after one bad broad drop. The drop failed because it was broad, not because mail is dead.
Putting it together
Mailing fewer postcards and booking more jobs is not a trick or a clever card. It's a discipline: measure honestly, mail only the roofs that are actually due, build a clean list that skips the rest, match the message to why each home is on it, stay strictly on the safe side of storm and insurance rules, answer the phone fast, and tighten the loop every cycle. Do that and your drop shrinks, your spend drops, and your cost per job falls — because every stamp lands on a roof old enough or worn enough to become a real customer.
The single biggest lever in all of it is knowing which roofs are due before you spend a dime on postage. That's exactly the gap RoofPredict was built to close — scan your area, get a roof-age range and per-roof storm exposure for every address, and rank your own list so the due roofs rise to the top and the new ones fall off. It enriches the list you already own; it won't promise you who will buy, and roof age comes back as a range and storm exposure as odds, not certainty. Used honestly, it's the difference between mailing 10,000 hopeful cards and mailing 2,500 cards that land where the work is. If you want to see it run on your own streets, book a demo and hand us a roof you already know — you decide whether we nailed it.
FAQ
How many postcards should a roofing company mail per drop?
There's no universal number, because the right volume is whatever fits the count of genuinely due roofs in your target routes. The mistake is starting from a volume goal ("let's mail 10,000") instead of a quality filter ("how many roofs here are actually old enough or storm-worn enough to buy?"). Build your list from the signals — roof age, per-roof storm exposure, owner-occupied, price band, and your own CRM — then mail that count, whether it's 1,500 or 4,000. Judge the drop by cost per booked job, not by how many pieces went out.
Why is 'year built' a bad way to estimate roof age?
Because it's the date the house was built, not the date the current roof went on. A home built in 1985 may have been re-roofed in 2019, so its roof is six years old, not forty. Re-roofs are largely invisible in county build records and patchy in permit data, so mailing off 'year built' fills your list with newer roofs that can't buy from you yet. Use an estimate of when the current roof was installed, ideally expressed as a range, not the build date.
What's the difference between a hail map and per-roof storm modeling?
A hail map or storm-track overlay shows where a storm passed — a broad polygon over a region. Per-roof storm modeling estimates the actual impact on each individual roof: hail size and trajectory, wind load, accumulated exposure, and how the roof's slope and orientation affected what it took. Two homes under the same cloud can be worn very differently. For targeting, per-roof modeling lets you mail the specific roofs a storm likely degraded instead of blanketing everyone it merely passed over. It produces odds, not proof of damage; you confirm with an inspection.
Should I use EDDM or a targeted addressed mailing list?
EDDM (Every Door Direct Mail) is cheaper per piece but, by design, hits every door on a route — it can't skip new roofs, rentals, or the wrong price band, so it usually costs more per job. A clean addressed list mails fewer pieces at higher postage but reaches only due roofs. EDDM can win on a route with a genuinely high concentration of older homes where the saturation discount beats the waste. Run both through your cost-per-job number and let that decide, not the cost-per-piece number.
What should I actually put on a roofing postcard?
Keep it to a few parts: a headline that names the homeowner's situation (an aging or storm-worn roof) rather than praising your company; exactly one clear offer, usually a free, no-obligation roof inspection; visible trust signals like your license number and a local phone; one primary call to action repeated, with a large tracked phone number and a unique QR code so you can attribute responses; and an honest reason to act now. Avoid fake countdowns and any claim you can't back up.
Can I send storm postcards that mention insurance?
You can offer to inspect a roof after a storm and document any damage you find with photos and an accurate repair estimate the homeowner keeps. What you must not do — or advertise — is handle, manage, or negotiate the claim, interpret the homeowner's policy or coverage, promise a payout or approval, say anything about waiving or absorbing the deductible, or advertise a 'free roof.' Those cross into unlicensed public adjusting or insurance fraud in many states. Safe framing: you document and estimate; the homeowner files; the insurer decides. Run storm copy past counsel for your state.
What's a good cost per acquired job for roofing direct mail?
It varies by market, average job size, and close rate, so the honest answer is to benchmark against your own numbers rather than a published figure. The point is the direction of travel: broad whole-ZIP mail commonly lands in the high-hundreds-of-dollars per job, while tightly targeted mail to due roofs can cut that by several times because it mails far fewer pieces and closes at a higher rate. Track cost per job every drop and drive it down cycle over cycle; that trend matters more than any single benchmark.
How do I track whether a postcard drop actually worked?
Attribution first. Put a unique tracked phone number and a dedicated QR code or landing URL on each card version, ask callers if they have a card in front of them, and tag every response to its drop in your CRM. Then compute cost per lead, cost per inspection, cost per job, and return on the campaign for each drop. Without per-drop attribution you're guessing, and you'll cut the wrong routes. With it, you can rank routes and segments by cost per job and mail more into what works.
Should I mail my past customers and old estimates?
Yes, but as a separate, warmer mailing — never a cold prospect card. Your old estimates that never closed and your past customers are the highest-intent list you own and cost nothing to assemble. A homeowner you quoted three years ago who said 'not yet' may be exactly now, because the roof aged three more years. Suppress these from your cold drops so you don't pitch a customer like a stranger, and mail them a by-name, relationship-led card on a regular cycle.
Is direct mail dead for roofing?
No — broad, untargeted mail is what's dead. The reason most roofing mail loses money is that it lands on roofs too new or otherwise unable to buy, not that homeowners ignore mail. When you mail only the roofs that are actually due, attribute responses, answer the phone fast, and track cost per job, mail remains one of the more profitable channels in roofing. The fix isn't to abandon mail or to mail more; it's to mail fewer, better-chosen pieces.
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
- NRCA — National Roofing Contractors Association — nrca.net
- Asphalt Roofing Manufacturers Association (ARMA) — asphaltroofing.org
- Insurance Institute for Business & Home Safety (IBHS) — ibhs.org
- NOAA National Weather Service — Storm Prediction Center — spc.noaa.gov
- NOAA National Centers for Environmental Information — Storm Events Database — ncdc.noaa.gov
- USPS — Every Door Direct Mail (EDDM) — usps.com
- USPS — National Change of Address (NCOALink) — postalpro.usps.com
- Federal Trade Commission — Advertising and Marketing Basics — ftc.gov
- Texas Department of Insurance — Public Insurance Adjusters — tdi.texas.gov
- National Association of Insurance Commissioners (NAIC) — naic.org
- U.S. Bureau of Labor Statistics — Roofers Occupational Outlook — bls.gov
- U.S. Census Bureau — American Housing Survey — census.gov
- International Code Council — International Residential Code (IRC) — codes.iccsafe.org
- RoofPredict — roofpredict.com
Related Articles
How to Rank Neighborhoods by Roof Replacement Potential
A practical scoring system roofing companies use to rank neighborhoods by how likely the roofs are to need replacing soon, so canvassing, mail, and CRM work hit the highest-probability streets first.
Building a Pre-Listing Roof Inspection Service for Realtors: A Roofer's Playbook
A practical playbook for roofers who want listing agents to call them first: what to inspect, what the report needs to say, how to price it, and how to turn a free or low-cost inspection into a repeatable book of jobs.
Roofing Customer List Segmentation Strategy: Turn a Flat List Into Booked Jobs
How to cut a flat pile of names into segments your crew can actually work, so you stop mailing new roofs and start booking the homeowners who need you now.