Running a direct mail campaign sounds straightforward until you’re looking at a printer’s minimum order requirements, trying to figure out which mailing list to buy, and guessing whether a postcard or a letter will get opened first.
Most roofing contractors give up before they send a second campaign. Not because direct mail doesn’t work — but because the first attempt wasn’t set up to succeed.
This guide covers everything you need to run a roofing direct mail campaign that actually generates leads: who to target, what to send, when to mail, how to track results, and what the numbers should look like.
Who to Target With Roofing Direct Mail Campaigns
The biggest mistake roofers make with direct mail is targeting based on geography alone. Blasting a zip code might feel efficient, but it sends your budget after homeowners who have no particular reason to think about roofing right now.
The better approach is trigger-based targeting — mailing to homeowners who have a specific reason to be in-market.
Completed job radius. Mail every homeowner within a quarter to half mile of a job you just finished. These neighbors watched your crew, saw the completed roof, and have the highest receptivity of any cold audience you can reach.
Storm-affected neighborhoods. After a hail or wind event, every homeowner in the affected area has a reason to think about their roof. Get a mailer out within 7 days of the event.
High-age housing stock. Homes built between 1975 and 2005 are statistically approaching or past typical roof replacement age. Lists of these properties are available and worth testing as a background campaign separate from job-radius targeting.
What to Send: Format and Content
Format matters more than most roofers realize. Not because design is precious, but because the physical format determines whether your mail gets opened or recycled.
Postcards are cheap to produce and cheap to mail. They also look like every other piece of direct mail in the stack. A homeowner can read the entire postcard without opening it, decide it’s not for them, and drop it in the trash in under two seconds.
Letter-format mail gets opened at a higher rate. A closed envelope creates curiosity. But the envelope has to look like something worth opening — not a bulk-rate window envelope with your logo announcing “THIS IS AN AD.”
Dimensional mail contains something physical — pieces with weight or texture that the homeowner can feel through the envelope before opening. When the envelope contains a real object, people open it because they don’t know what’s inside.
A piece of asphalt shingle is dimensional mail that works specifically for roofers. It’s relevant to the recipient’s actual concern, it’s tangible, and it directly connects to work already visible in the neighborhood. See how ShingleDrop uses this format.
Timing: When to Mail for Maximum Response
Timing has a significant impact on direct mail response rates for roofing campaigns.
Post-job campaigns: Mail within 7 business days of job completion. Neighborhood awareness is highest in the 2 weeks after a crew finishes. Waiting longer reduces the overlap between “I saw that truck” and “I got something in the mail.”
Storm campaigns: Get a mailer out within 7 days of a weather event. Homeowners who’ve had storm damage are actively looking for contractors. First mover advantage in storm scenarios is substantial.
Seasonal timing: In most markets, roofing season runs March through October. Running campaigns in January and February still works, but response rates are typically lower. If your budget is limited, concentrate your mail spend in the months that match local buying behavior.
How to Track Results
A direct mail campaign you can’t track is marketing budget you can’t justify. Before you send anything, set up the infrastructure to measure it.
Dedicated phone number. Use a call tracking number unique to each campaign. This tells you how many calls came from a specific mailing and which job sites or neighborhoods generated the most response.
Dedicated landing page. A QR code linking to a campaign-specific URL lets you track digital conversions from physical mail. Every scan is a lead who went from mailbox to browser, which gives you data on message resonance.
Ask every caller. “How did you hear about us?” is a simple question that, when logged consistently, gives you directional data on which channels are driving inbound calls. Direct mail responses tend to cluster in the 7–30 day window after send.
ShingleDrop includes a dedicated tracked landing page with every order.
What the Numbers Should Look Like
Here’s a realistic expectation for a well-executed post-job roofing direct mail campaign:
- Mailers sent: 500
- Response rate: 3–5%
- Leads generated: 15–25
- Cost of campaign: $4,850 (ShingleDrop Growth tier)
- Cost per lead: $194–$323
- Average roofing job value: $12,000–$18,000
- Closed jobs needed to break even: 1
One job pays for the campaign. Every additional close from that campaign is profit.
The break-even math is the reason roofers who run direct mail consistently tend to keep running it. You don’t need a high close rate to justify the spend — you need one customer.
Scaling: How to Turn One Campaign Into a Lead System
The contractors who get the most out of direct mail don’t treat it as a one-time test. They build it into the job workflow.
Every completed job automatically triggers a mailing. The process becomes: finish job, pull radius list, send to fulfillment, track responses. Once the workflow is established, each job site becomes its own mini campaign with its own lead pipeline.
Over the course of a full season, a contractor doing 80 jobs can run 80 post-job campaigns. At 15 leads per campaign, that’s 1,200 warm leads per year from homeowners who already have visual proof of your work in their neighborhood.
That’s not a side strategy. That’s a lead machine built into the core of how you operate.
See ShingleDrop pricing for high-volume campaign orders.
FAQ
How many mailers should I send per job?
250 to 500 is the range most contractors start with. 250 mailers covers roughly a 3–4 block radius in a typical residential neighborhood. 500 extends that coverage and gives you a large enough sample to measure response rate meaningfully.
Do I need a mailing list or does the service provide one?
With ShingleDrop, you provide the job address and we pull the surrounding residential addresses. There’s no list to source, clean, or manage on your end.
What should the mailer say?
The most effective roofing mailers connect the completed job to the recipient’s address specifically. “Your neighbor on [Street Name] just had their roof replaced” performs better than generic credentials copy. Specificity drives opens and calls.
How often should I run campaigns?
After every job, if your budget allows. If you need to prioritize, focus on your larger residential jobs in denser neighborhoods — that’s where the radius of potential leads is highest.
Every completed job is a warm audience waiting to be reached. Start your first ShingleDrop campaign and turn your next job site into a lead source.