Skip to main content

Cost Per Piece for Roofing Direct Mail: The Real Numbers Behind a Profitable Mail Program

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

Ask three roofing companies what their direct mail costs per piece and you will get three answers that are off by 4x from each other. One owner swears it runs him 38 cents a door. Another quotes 92 cents. A third only knows he wrote a check for $6,400 last month and got eleven calls. None of those numbers are wrong, exactly. They are just measuring different things, on different mail classes, to different lists, with the postage and printing bundled or unbundled in ways nobody bothered to separate.

That confusion is expensive. Cost per piece is the single number that decides whether a mail program prints money or quietly bleeds it, and most contractors never break it down far enough to control it. They shop on the headline rate a printer quotes and ignore the three or four line items that actually move the needle. Then they blame "direct mail doesn't work anymore" when the real problem was a 6-cent postage decision and a list nobody scrubbed.

Below is the full anatomy of cost per piece for roofing mail, the postage tiers that swing it, the math that ties it back to profit, and the targeting decisions that let you spend the same dollar on twice the roofs that are actually due. The numbers here are ranges you can verify with your own printer and your local post office, not pulled from thin air. Treat them as a framework for building your own spreadsheet, because your zip codes, your list, and your design will move every figure.

What "cost per piece" actually includes

The phrase gets thrown around as if it means one thing. It does not. A defensible cost-per-piece number is the sum of five separate buckets, and the reason quotes vary so wildly is that vendors include or exclude these buckets depending on what makes their price look good.

Here are the five buckets, every time, in order:

  1. Creative and design. The cost to lay out the piece. Usually a one-time fee amortized across the run, or free if you reuse a template.
  2. Printing. Paper stock, ink, cutting, the physical card or letter. Drops sharply per piece as quantity rises.
  3. The list. What you pay per record for names and addresses, or zero if you use a saturation route or your own house list.
  4. Mail processing / data work. Address standardization, CASS certification, presort, NCOA, inkjetting or labeling, and the mail house's handling fee.
  5. Postage. The single biggest variable, and the one most contractors misjudge. Ranges from roughly 20 cents to 73 cents per piece depending on class and shape.

When a printer tells you "postcards for 41 cents," ask which buckets that includes. Nine times out of ten it is printing only, and postage is a separate line you discover later. The all-in number, the only one that matters for ROI, is every bucket added together and divided by the number of pieces that physically leave the dock.

Rule of thumb: if a vendor's quote does not separately show postage as its own line, the quote is incomplete. Postage is set by the USPS, not the printer, so any vendor who buries it is either marking it up or hiding it.

The five buckets, broken down with real ranges

Bucket 1: Creative and design

If you hand a designer a blank page, expect a one-time charge somewhere in the $150 to $800 range for a custom postcard or letter, depending on whether it is a junior on Fiverr or a roofing-specialized marketing shop. Amortized across a 10,000-piece run, even an $800 design adds 8 cents per piece on the first drop and effectively zero after that, because you reuse the file.

Most contractors should treat design as a near-zero recurring cost. Build two or three strong templates, swap the headline and the offer, and stop paying for new creative every month. The money is not in the art. It is in the list and the postage.

Where design quietly costs you is in mail-piece shape and weight, which is a postage decision disguised as a creative one. A 6x11 postcard and a 4.25x6 postcard cost nearly the same to print but can land in completely different postage tiers. More on that below, because it is the most common self-inflicted overpay in roofing mail.

Bucket 2: Printing

Printing is the bucket with the cleanest economics: it falls predictably as volume rises. Rough per-piece printing costs for a standard 4-color, two-sided postcard on 14pt or 16pt card stock:

Quantity Postcard printing only (per piece)
1,000 $0.18 - $0.30
5,000 $0.10 - $0.18
10,000 $0.07 - $0.13
25,000 $0.05 - $0.10
50,000+ $0.04 - $0.08

Letters in a #10 envelope cost more than postcards once you add the envelope, the insert, and the folding and stuffing: figure $0.12 to $0.30 per piece in printing and assembly at mid volume, before postage. The tradeoff is that a letter often pulls a better response from homeowners because it reads as personal mail rather than an ad, and it can carry a more detailed, documentation-focused message. We will weigh that against cost later.

The lesson: printing is real money but it is not where campaigns go wrong. A 2-cent swing on printing is noise next to a 25-cent swing on postage or a list that is half wrong.

Bucket 3: The list

This is where the strategy lives, and where cost per piece either becomes a vanity number or a profit number.

You have three broad options:

Saturation / EDDM (Every Door Direct Mail). You mail every address on a postal route. The "list" is free because the post office already has it. Postage is the cheapest tier available (more below). The catch: you are paying to reach every door, including renters, brand-new roofs, condos, and homes that will never buy. Your printing and postage are low per piece, but your cost per piece that matters — pieces reaching a plausible buyer — can be terrible.

Targeted / list-based mail. You buy or build a list filtered by criteria: homeownership, home value, year built, lot size, length of residence, and so on. Consumer list data typically runs $0.03 to $0.15 per record for basic homeowner data, more for specialty selects. You add a real cost, but you stop paying postage and printing on doors that cannot convert.

Your own house list and CRM. Past customers, past estimates, canvassed addresses, storm-canvass lists. Cost per record is effectively zero, and these mail far better than any cold list because there is an existing relationship. Underused by most roofers.

Here is the math that nobody runs. Suppose your all-in cost is 55 cents per piece on a targeted drop versus 32 cents per piece on EDDM. EDDM looks 23 cents cheaper. But if only 40% of the EDDM route is realistically a buyer (right ownership, right roof age, right home value) while 85% of your targeted list is, then your true cost per reachable buyer is:

  • EDDM: $0.32 / 0.40 = $0.80 per qualified door
  • Targeted: $0.55 / 0.85 = $0.65 per qualified door

The "expensive" option is 19% cheaper where it counts. This is the single most important reframe in roofing direct mail, and we will return to it because data on which roofs are actually due can push the targeted number much further.

Bucket 4: Mail processing and data work

Before anything mails, the data gets cleaned and prepped. This bucket is small per piece but skipping it is how you light money on fire.

  • CASS certification / address standardization: ensures addresses are USPS-deliverable. Usually included by the mail house; sometimes a flat fee of $25 to $75 per file.
  • NCOA (National Change of Address): updates records for people who moved. The USPS requires move-update compliance for the best presort rates, so this often pays for itself. Roughly $25 to $100 per file or a fraction of a cent per record.
  • Presort / commingling: sorting mail by zip so it qualifies for lower postage. This is the work that earns you the marketing-mail discount.
  • Inkjet addressing, tabbing, inserting: the physical handling. Figure $0.02 to $0.06 per piece at the mail house.

All in, processing usually adds 3 to 8 cents per piece. The reason it matters: an uncleaned list means undeliverable pieces, and an undeliverable piece is 100% wasted cost. If 7% of your list is bad and you skipped NCOA, you just threw away 7% of your entire spend before a single homeowner read anything.

Bucket 5: Postage, the bucket that decides everything

Postage is the largest and most misunderstood line. Get this one right and a marginal campaign turns profitable. Get it wrong and a good campaign loses money.

The big lever is mail class, and roofing mail realistically uses one of three:

USPS Marketing Mail (formerly Standard / bulk mail). The workhorse for volume roofing mail. Requires a minimum of 200 pieces or 50 pounds, a permit, and presorting. Per-piece postage for a presorted letter-size or postcard-size automation piece commonly lands in the 20 to 35 cents range depending on sortation and entry point. Slower delivery (a few days to a couple weeks) and no forwarding, but for a roofing offer that is rarely time-critical, the savings are large.

Every Door Direct Mail (EDDM Retail). A simplified saturation product with a flat per-piece postage rate that the USPS sets and adjusts periodically — generally in the low-20-cent range per piece as of recent rate schedules. No permit needed for EDDM Retail, no list, no individual addressing. You bundle by route and drop at the local post office. Cheapest postage available, but saturation-only, so it inherits the targeting problem above.

First-Class Mail. Looks like real mail, forwards if someone moved, and delivers fast. Postage runs the highest — a First-Class postcard and letter sit at the top of the range, with letters around the 70-cent neighborhood at retail and presorted First-Class somewhat lower. You pay a premium, but First-Class can lift response because it does not scream "junk," and the forwarding and return service tells you which addresses are dead. For a small, high-value targeted drop, the premium can be worth it. For a 25,000-piece blast, it rarely is.

The second lever, the one contractors trip over constantly, is piece shape and dimensions. The USPS prices by category. A piece that exceeds the postcard or letter dimensional limits gets bumped to "flat" rates, which cost dramatically more. A jumbo 6.5x12 postcard feels more impressive, but if it pushes you out of the letter category into flats, you can pay 20 to 40 cents more per piece for a marginally bigger card. Always confirm the exact dimensions against current USPS size limits before printing, because the difference between 11.5 inches and 12 inches of length can be a five-figure swing on a big run.

Postage rates change. The USPS adjusts pricing roughly twice a year, so anchor your spreadsheet to the current published Notice 123 (the official price list) and re-check before every major drop rather than trusting a number you wrote down last spring.

A note on volume tiers and why your first campaign costs more

New advertisers consistently overpay on their first drop and then conclude direct mail is expensive. It is not — their volume was. Every bucket except postage gets cheaper as quantity rises, and the curve is steep at the bottom. The jump from 1,000 to 5,000 pieces can cut printing per piece nearly in half. The jump from 5,000 to 25,000 cuts it again. If you test with 1,000 postcards, your all-in cost per piece might be 70-90 cents purely because of low printing volume and a wasted design fee, and you will draw the wrong conclusion about whether mail works for you.

The fix is to test the list and offer at small volume but judge the economics at the volume you would actually run. Run a 2,000-3,000-piece test to confirm the list pulls a response, then model the per-piece cost at 10,000+ when you decide whether to scale. Confusing the test's inflated per-piece cost with the production cost has killed more roofing mail programs than any other single mistake.

The one bucket that does not improve much with volume is the list. A homeowner record costs roughly the same whether you buy 2,000 or 50,000, and roof-intelligence data prices per address regardless of run size. That is fine, because the list is the bucket carrying your response rate. You are not trying to make the list cheap. You are trying to make it accurate.

Putting it together: realistic all-in cost per piece

Here is how the buckets stack into the all-in number for the most common roofing mail formats. These are mid-volume (around 10,000-piece) ranges; your printer and post office will firm them up.

Format Design (amort.) Printing List Processing Postage All-in per piece
EDDM postcard (6x11) ~$0.01 $0.07-$0.12 $0.00 $0.01-$0.03 $0.20-$0.24 $0.29-$0.40
Targeted postcard, Marketing Mail ~$0.02 $0.07-$0.13 $0.05-$0.12 $0.03-$0.06 $0.22-$0.33 $0.39-$0.66
Targeted letter, Marketing Mail ~$0.02 $0.12-$0.25 $0.05-$0.12 $0.04-$0.07 $0.24-$0.35 $0.47-$0.81
Targeted letter, First-Class ~$0.02 $0.12-$0.25 $0.05-$0.12 $0.04-$0.07 $0.55-$0.70 $0.78-$1.16

Notice the spread: the cheapest format is roughly a third of the most expensive. That does not make EDDM the winner. It makes EDDM the cheapest way to reach a door, which is a different thing from the cheapest way to book a roof. The right number is not the lowest cost per piece. It is the lowest cost per signed job, and that runs through response rate and close rate, which is where we go next.

The only formula that matters: cost per piece to cost per job

Cost per piece is an input, not an outcome. The outcome is cost per acquired customer, and you get there with a short chain of multiplication. Write this on your wall:

Pieces mailed
  x response rate          = leads (calls / form fills)
  x appointment set rate   = appointments
  x close rate             = signed jobs

Then:

Total campaign cost / signed jobs = cost per acquired job
Average job profit  - cost per acquired job = profit per job after marketing

Let us run a real example with conservative numbers. Say you mail 10,000 targeted postcards at an all-in $0.55 per piece, total spend $5,500.

  • Response rate of 0.5% (a realistic-to-good number for cold targeted roofing mail) = 50 leads
  • 60% of leads turn into a set appointment = 30 appointments
  • 35% close rate = about 10-11 signed jobs

That is $5,500 / 10.5 = roughly $524 per acquired job. If your average roof nets $4,000 to $7,000 in gross profit, you spent ~$524 to make several thousand. The campaign works, comfortably.

Now watch what response rate does to the same spend. Direct mail response is small and the swings are brutal:

Response rate Leads (from 10,000) Jobs (at 60% set, 35% close) Cost per job ($5,500)
0.25% 25 ~5 ~$1,047
0.50% 50 ~10.5 ~$524
1.00% 100 ~21 ~$262
1.50% 150 ~31.5 ~$175

A 4x swing in cost per job, from one variable, on identical spend. This is why obsessing over a 6-cent postage difference while ignoring list quality is backwards. The cheap-postage EDDM drop that pulls 0.2% from a route full of renters and new roofs can cost you more per job than a 55-cent targeted drop that pulls 0.7% from homeowners with aging roofs in a hail swath. Cost per piece is the denominator. Response rate is the lever with ten times the leverage.

Track every number in this chain or you are flying blind. Use a dedicated phone number and a unique landing URL or QR code per drop so you can attribute leads to the exact mailing. Without attribution, you cannot tell a 0.3% campaign from a 0.9% one, and you will keep funding the wrong format.

Timing, seasonality, and the cost of mailing at the wrong moment

The same piece, to the same list, costs the same to produce in February as in May — but it does not earn the same. Timing is a free lever that most contractors leave on the table, and mistiming effectively raises your cost per job without touching your cost per piece.

There are two clocks to watch. The first is the seasonal demand clock. Homeowner interest in roofing rises through spring and into the warmer months, peaks around storm season in many markets, and falls off in deep winter in cold climates. Mailing your aging-roof offer to land just as homeowners start thinking about exterior projects pulls a higher response than the identical piece arriving in January when nobody wants a crew on the roof. Because Marketing Mail delivers slowly, you have to drop it one to two weeks ahead of when you want it read. Plan the in-home date, then work backward through delivery time and production time to set the drop date.

The second clock is the storm clock, and it is far less forgiving. When a hail or wind event hits a defined footprint, the homeowners inside it are briefly and intensely receptive — they can see their neighbors getting work done and they are thinking about their own roof for the first time in years. That window is measured in days to a few weeks, and it is contested. Multiple companies will canvass and mail the same swath. The contractor who knows the exact footprint and moves first documents those roofs first. If your mail lands three weeks after the storm, behind a competitor who already inspected and left an estimate, your response collapses even though your cost per piece was identical. Speed inside the footprint is a cost-per-job variable, not a logistics afterthought.

This is the practical case for modeling storms per roof rather than guessing at zip codes. A hail core does not respect postal route boundaries; it cuts across them. Mailing a whole zip when only the northern third took damage wastes most of the postage, and mailing the wrong zip entirely wastes all of it. Knowing which specific addresses sat under the worst of the storm lets you mail the receptive doors fast and skip the rest, which is the difference between catching the window and paying to miss it.

A simple timing checklist:

  • Set the desired in-home date first, then back-calculate the drop date through production and delivery time for your chosen mail class.
  • Build seasonal campaigns ahead of demand, not during it, so your piece is the first one homeowners see.
  • For storm work, confirm the footprint precisely and treat the first 7-14 days as the high-value window.
  • Do not blast a fresh swath you cannot service quickly; an appointment you cannot keep for three weeks is a lead a faster competitor will take.

Where the wasted pieces hide

Every dollar of waste in a mail program traces back to a piece that reached someone who was never going to buy. There are five predictable leaks:

  1. Renters. A renter cannot authorize a roof replacement. On a saturation route, renters can be 20-40% of doors in some neighborhoods. Every renter piece is dead spend. Homeownership is a basic, cheap list filter — use it.
  2. Roofs that are too new. A home with a 4-year-old roof is not a buyer for a tear-off. Year-built data is a weak proxy (a 1998 house may have been re-roofed in 2019), which is exactly why roof-age intelligence matters — more below.
  3. Wrong home value / wrong product fit. If you sell premium architectural systems, a saturation drop spends heavily on homes that will only ever buy the cheapest 3-tab. Home-value selects fix this.
  4. Bad addresses. Skipping NCOA and CASS means undeliverable pieces. Pure waste, 100% loss on those pieces.
  5. Wrong timing. Mailing a storm-restoration message to a zip that took no storm, or mailing your aging-roof message six months after a competitor already canvassed the swath, both burn money. Timing is a targeting input, not a separate problem.

Kill those five leaks and your effective cost per piece — cost per piece that can actually convert — drops even if the sticker cost per piece rises. That is the whole game.

EDDM versus targeted: a straight decision framework

There is no universal winner. Pick based on your situation using these tests.

Lean EDDM when:

  • You are a newer or local brand that needs cheap repetition and name recognition across a defined area.
  • The neighborhoods are owner-heavy, similar-age tract housing where saturation and targeting overlap anyway (a 1995 subdivision is, in effect, a pre-filtered roof-age list).
  • Your offer is broad (tune-ups, inspections, maintenance) rather than tied to a specific buyer profile.
  • You want the lowest possible postage and you will mail the same routes repeatedly to build frequency.

Lean targeted when:

  • You sell a specific product to a specific homeowner (premium systems, full replacements, high-value homes).
  • Your service area is a patchwork of owner and renter housing, so saturation wastes a lot of doors.
  • You are working a storm footprint and need to hit specific addresses inside the damage swath, not whole routes that straddle it.
  • You can layer roof-age and storm data to mail only the roofs most likely to be due, which is where targeted mail's higher cost per piece pays for itself several times over.

Many strong programs run both: EDDM for cheap, repeated brand presence on home routes, and a tight targeted overlay on the highest-probability roofs. The targeted overlay carries the response rate; the EDDM carries the frequency.

Mailing the roofs that are actually due

Everything above points to one conclusion: the cost-per-piece number you should optimize is cost per piece that reaches a roof likely to be due. The cheapest way to lower that number is not cheaper postage. It is a better-aimed list, because aiming is what moves response rate, and response rate has ten times the leverage of postage.

The hard part has always been knowing which roofs are due. Year-built data is a blunt instrument — it tells you when the house was built, not when the roof was last replaced, and those can be 25 years apart. Driving the neighborhood and eyeballing roofs works but does not scale to 10,000 doors. That gap is exactly what roof-intelligence data closes.

This is where a tool like RoofPredict fits a mail program. It reads aerial imagery to estimate a roof-age range per address — a range, not a precise install date, because no remote method can know the exact day a roof went on — and it models storm exposure per individual roof, so you can see which specific addresses sat under the hail or wind and how hard. You feed it your service area or your own list, and it ranks addresses by how likely the roof is to be due: aging out, storm-worn, or both.

What that does to cost per piece is straightforward. Instead of mailing every door on a route and paying postage on 4-year-old roofs and renters, you mail the addresses where the roof-age range is in the replacement window and the storm model shows real exposure. You are not buying leads — you still mail your own piece, on your own list, with your own offer — you are removing the doors that were never going to convert. The sticker cost per piece may go up a few cents for the data and the targeted postage. The cost per qualified door, and ultimately the cost per signed job, goes down, because the response rate climbs when nearly every piece lands on a plausible buyer.

It also sharpens the work you are already allowed to do. When a storm rolls through, RoofPredict ranks the addresses inside the swath so your crews and your mail both hit the roofs that took the most exposure first. Your team can then go document those roofs thoroughly, photograph the damage, and prepare an accurate, Xactimate-aligned estimate to repair the work — which is the legitimate, valuable service a roofer provides. (Important and worth being precise about: that is documentation and estimating, not claim handling. The homeowner files their own claim and the insurer decides coverage; staying on the document-and-estimate side is both the compliant line and the honest one.)

Honest limits: the roof-age output is a range and the storm model is odds, not proof. It will not tell you a specific homeowner is ready to sign, and it cannot replace the inspection. What it does is let every mail dollar skip the roofs that obviously are not due, which is the highest-leverage edit you can make to a cost-per-piece number.

Measuring it right: attribution, tracking, and the numbers to keep

You cannot manage a cost-per-piece program you cannot measure, and most roofers measure it badly. They remember the good drops and forget the bad ones, or they credit mail for a job that actually came from a yard sign. To run mail like a system, you need clean attribution and a short set of numbers you track every single time.

Attribution mechanics. Assign each drop its own trackable phone number that forwards to your office. Call-tracking numbers are inexpensive and they let you count and even record the calls a specific mailing generated. Pair it with a unique short URL or a QR code that lands on a page built for that campaign, so web responses get counted too. If you mail three drops to the same list, give each drop its own number and URL, or at minimum its own offer code, so you can see whether response is building with frequency or fading. Without per-drop attribution you are averaging good and bad campaigns together and learning nothing.

The numbers to record for every campaign:

Metric How you get it Why it matters
Pieces mailed From the mail house drop confirmation The denominator for everything
All-in cost Sum of all five buckets Real spend, not the print quote
Cost per piece All-in cost / pieces The headline input
Leads Tracking number + landing page Top of the conversion chain
Response rate Leads / pieces The highest-leverage number
Appointments set From the calendar / CRM Reveals intake quality
Jobs signed From the CRM The outcome that pays
Cost per job All-in cost / jobs The number to optimize
Average job profit From accounting Tells you if cost per job is acceptable
Return on spend Total job profit / all-in cost The verdict on the campaign

Keep these in one row per drop in a simple spreadsheet. Over a few campaigns the pattern becomes obvious: which lists pull, which formats earn their postage, which offers convert. That record is worth more than any vendor's case study, because it is your market, your crews, and your close rate.

The lead-handling multiplier. A point most owners miss: response rate gets the lead in the door, but your speed and quality of follow-up decide whether it becomes a job, and that feeds straight back into cost per job. A mailed lead that calls and reaches voicemail, or fills a form and hears nothing for two days, is a piece of postage wasted at the goal line. Many roofing mail programs that look like they have a response problem actually have a follow-up problem — the leads came, the office was slow, and the cost per job ballooned. Before you blame the list, confirm every lead got a fast, human response. The cheapest way to lower cost per job is often to answer the phone.

A worked budget you can copy

Let us build a quarter of mail for a contractor doing roughly $3M a year who wants to add 30 signed jobs from mail over three months. Average job profit assumed at $5,000.

Goal: 30 jobs. At a 0.5% response, 60% set, 35% close, each 10,000 pieces yields ~10.5 jobs. So plan ~30,000 pieces across the quarter, mailed in three drops of 10,000 to the same high-probability list (repetition lifts response).

Format choice: targeted postcard on Marketing Mail, all-in $0.55/piece, to a roof-age-and-storm-ranked list.

Line item Calculation Cost
Pieces 30,000
All-in mail cost 30,000 x $0.55 $16,500
Roof-intelligence data / list ranking (included in per-piece data line) (in $0.55)
Tracking (call number + landing page) flat ~$150
Total marketing spend ~$16,650
Expected jobs ~31
Cost per job $16,650 / 31 ~$537
Gross profit on 31 jobs 31 x $5,000 $155,000
Profit after mail spend $155,000 - $16,650 $138,350

Now the contrast. Run the same 30,000 pieces as EDDM at $0.34 all-in to unfiltered routes, total spend ~$10,200 — $6,450 cheaper. But say the unfiltered routes pull 0.3% instead of 0.5% because a chunk of every route is renters and new roofs. That is ~9 leads per 10,000, ~19 jobs across the quarter, cost per job ~$537 as well — but you only got 19 jobs instead of 31, missing your goal by 12 jobs worth ~$60,000 in profit, while the per-job cost came out the same. The cheaper postage did not save you anything; it just capped your output.

That is the trap of optimizing cost per piece in isolation. Cheaper per piece, fewer jobs, same cost per job, far less total profit. You do not get rich on a low cost per piece. You get rich on volume of jobs at an acceptable cost per piece.

Design and offer: cheap levers that move response

Since response rate has the most leverage and design is nearly free to change, here is where to spend your attention rather than your money.

The offer beats the artwork. A clear, specific, believable reason to call out-pulls a prettier card with a vague message. Strong roofing offers: a free, no-obligation roof inspection and photo report; a written estimate for any visible damage; a storm-damage documentation visit after a named local storm. Weak offers: "Call us for all your roofing needs." Specific and useful wins.

Stay on the right side of the line in the copy. This matters legally, not only stylistically. You may offer to inspect, to document damage thoroughly, and to prepare an accurate estimate to repair your scope. You may state facts about what you find. You may not advertise a "free roof," promise the insurance will pay, promise a specific approval or payout, promise to make the deductible disappear, or claim you will "handle" or "negotiate" the claim for the homeowner. Those last items cross into unlicensed public adjusting in most states and they are also exactly the claims that draw regulatory attention. The honest, compliant pitch — "we will inspect your roof, photograph any damage, and give you a detailed written estimate; you decide what to do with it" — is also the one that builds trust and survives scrutiny. Bake the do-not-say list into your templates so a salesperson cannot wander off it.

Make the response path frictionless. One phone number, big. One short URL or QR code. A reason to act now that is not a fake deadline. Track each.

Repeat to the same list. A single drop to a great list underperforms three drops to that same list. Frequency is a cost-per-piece multiplier on response, not a separate budget. Plan campaigns, not one-offs.

A pre-flight checklist before any drop

Run this every single time. It is the difference between a campaign and a donation to the post office.

  • List filtered for homeownership (no renters)
  • List filtered or ranked for roof age / replacement window
  • Storm footprint confirmed if the message is storm-related (mail only inside the swath)
  • NCOA run within the last 95 days (USPS move-update window)
  • CASS certification / address standardization done
  • Piece dimensions verified against current USPS size limits for the intended rate (no accidental jump to flats)
  • Mail class chosen on purpose (Marketing Mail vs EDDM vs First-Class) with the postage line confirmed against current Notice 123
  • Permit and presort handled by the mail house (or confirm EDDM bundling)
  • Unique tracking phone number assigned to this drop
  • Unique landing URL / QR code assigned to this drop
  • Offer copy reviewed against the do-not-say list (no payout/approval/deductible/free-roof promises, no claim-handling language)
  • All-in cost per piece calculated across all five buckets, not printing alone
  • Expected jobs and cost per job modeled before spending, so you know what success looks like

Common mistakes that quietly wreck the math

Shopping on printing price alone. The printer who quotes 38 cents and the one who quotes 44 cents are within noise once postage is added. Pick on data quality and turnaround, not a 6-cent print difference.

Ignoring shape-driven postage jumps. The oversized card that bumps you into flats can cost more in extra postage than the entire list. Verify dimensions before you print, not after.

Skipping NCOA to save $50. On a 10,000 list with 6% movers, you mail 600 undeliverable pieces. At 55 cents that is $330 of pure waste to save $50. The cleanup always pays.

Mailing once and quitting. Response builds with frequency. Judging a list on a single drop throws away its real performance.

No attribution. If you cannot tie a lead to a specific drop, you cannot tell which format and list actually worked, so you cannot improve. Unique numbers and URLs are non-negotiable.

Mailing storms you cannot service in time. If you blast a fresh hail swath but cannot get crews there for three weeks, competitors who modeled the same swath and moved faster will have documented those roofs first. Speed inside the footprint is part of the cost-per-job equation.

Confusing cheapest per piece with cheapest per job. The recurring theme. Optimize the job number. The per-piece number is only a means to it.

So what should you actually budget?

If you want a single planning anchor: assume $0.40 to $0.65 all-in per piece for a well-targeted roofing postcard on Marketing Mail, and back into your piece count from your job goal using a conservative 0.4-0.6% response, a 60% appointment-set rate, and your real close rate. Model the cost per job before you spend, expect it to land somewhere in the $400-$700 range when targeting is good, and compare that against your average job profit. If a roof nets you several thousand dollars, a $500 cost per acquired job is a strong trade.

Then attack the response rate, because that is where the leverage is. Cut the renters, cut the new roofs, mail inside the storm footprint, repeat to the same high-probability list, and let roof-age and storm data tell you which doors are worth a stamp. The contractor who pays 55 cents a piece to mail only roofs that are likely due will beat the contractor who pays 32 cents to mail everyone, on the only number that pays the bills — signed jobs per dollar.

If you want help ranking your service area or your existing list by which roofs are aging out and which ones a storm just wore down, RoofPredict is built to do exactly that: a roof-age range and a per-roof storm model on every address, so your mail dollars skip the doors that were never going to convert. Use it to sharpen the list, keep your own offer and your own documentation workflow, and let cost per piece become a number you control instead of one you guess at.

FAQ

What is a realistic all-in cost per piece for roofing direct mail?

For a well-targeted roofing postcard mailed on USPS Marketing Mail, plan on roughly $0.40 to $0.65 per piece all-in once you add design, printing, the list, data processing, and postage together. EDDM saturation postcards run cheaper, around $0.29 to $0.40, because the list is free and postage is the lowest tier. First-class targeted letters can run $0.78 to $1.16. The all-in number, not the printing-only quote, is the only one that matters for ROI.

Why do printers quote such different prices for the same postcard?

Because they include different buckets. Cost per piece is the sum of design, printing, list, data processing, and postage. Many quotes show only printing and leave postage as a separate line you discover later. Postage is set by the USPS, so any vendor who buries it is either marking it up or hiding it. Always ask for every bucket itemized, especially postage.

Is EDDM or targeted mail cheaper for roofers?

EDDM has a lower cost per piece because there is no list cost and postage is the cheapest tier. But cheaper per piece is not cheaper per job. EDDM mails every door, including renters and brand-new roofs, so a large share of the spend reaches doors that cannot convert. Targeted mail costs more per piece but, by removing those wasted doors, often produces a lower cost per qualified door and a lower cost per signed job. Optimize cost per job, not cost per piece.

How much does a roofing mailing list cost?

Basic consumer homeowner list data typically runs about $0.03 to $0.15 per record, with specialty selects costing more. Your own house list of past customers, past estimates, and canvassed addresses costs effectively nothing and usually mails far better than any cold list because a relationship already exists. Roof-age and storm-ranked lists add a data cost but raise response by removing roofs that are not due.

What response rate should I expect from roofing direct mail?

Cold targeted roofing mail commonly lands around 0.3% to 0.7%, with strong lists and repeated drops reaching higher. Saturation routes full of renters and new roofs can pull below 0.3%. Response rate has roughly ten times the leverage of postage on your final cost per job, so improving the list and the offer moves the math far more than shaving a few cents off postage.

How do I calculate cost per acquired job from cost per piece?

Multiply pieces mailed by response rate to get leads, by appointment-set rate to get appointments, by close rate to get signed jobs. Then divide total campaign cost by signed jobs. Example: 10,000 pieces at $0.55 is $5,500; at 0.5% response, 60% set, and 35% close you get about 10.5 jobs, or roughly $524 per acquired job. Compare that to your average job profit to judge whether the campaign pays.

How does roof-age data lower my mailing costs?

It does not lower the sticker cost per piece, and it usually raises it slightly. What it lowers is the cost per qualified door and the cost per signed job, by letting you skip addresses where the roof is too new or the owner is actually a renter. RoofPredict estimates a roof-age range per address from aerial imagery and models storm exposure per roof, so you mail the doors most likely to be due instead of every door on a route. Because response rate drives the job math, removing dead doors moves the bottom line more than any postage discount.

Can I say insurance will pay for the roof in my mail piece?

No. You may offer to inspect, document damage thoroughly, and prepare an accurate written estimate to repair your scope, and you may state facts about what you find. You may not promise insurance approval or a specific payout, claim the deductible will be waived or absorbed, advertise a free roof, or say you will handle or negotiate the claim. Those cross into unlicensed public adjusting in most states. The compliant and more trustworthy pitch is to inspect, photograph, and hand the homeowner a detailed estimate; the homeowner files and the insurer decides coverage.

How does mail-piece size affect postage?

The USPS prices by category, and a piece that exceeds postcard or letter dimensional limits gets bumped to flat rates, which cost dramatically more. An oversized card can add 20 to 40 cents per piece for being slightly too long or too tall. Always verify exact dimensions against the current USPS size limits before printing, because half an inch can be a five-figure swing on a large run.

How often do USPS postage rates change?

The USPS adjusts pricing roughly twice a year. Anchor your cost-per-piece spreadsheet to the current published price list (Notice 123) and re-confirm the postage line before every major drop rather than reusing a figure from a previous campaign. Marketing Mail, EDDM, and First-Class each move on these schedules, and the gaps between them are large enough to change which format is right for a given drop.

The Roofline by RoofPredict

Stay Ahead of Roofing Market Changes

Join The Roofline by RoofPredict for weekly roofing intelligence: material price signals, storm demand, insurance and regulatory updates, sales tactics, and local contractor opportunities.

By signing up, you agree to receive The Roofline by RoofPredict. Unsubscribe anytime.

Sources

  1. USPS Notice 123 (Price List)pe.usps.com
  2. Every Door Direct Mail (EDDM)usps.com
  3. USPS Marketing Mail Overviewusps.com
  4. USPS Postal Explorer: Mailpiece Dimensions and Standardspe.usps.com
  5. USPS Move Update Standard (NCOA)postalpro.usps.com
  6. USPS CASS Certificationpostalpro.usps.com
  7. FTC: Truth in Advertisingftc.gov
  8. NAIC: Public Adjusterscontent.naic.org
  9. Texas Department of Insurance: Public Insurance Adjusterstdi.texas.gov
  10. NOAA Storm Prediction Centerspc.noaa.gov
  11. Insurance Institute for Business & Home Safety (IBHS)ibhs.org
  12. U.S. Census Bureau: American Housing Surveycensus.gov
  13. National Roofing Contractors Association (NRCA)nrca.net
  14. RoofPredictroofpredict.com

Related Articles