Skip to main content

Roofing Marketing Budget Allocation by Channel: How Much to Spend Where (and Why)

Michael Torres, Storm Damage Specialist··31 min readRoofing Sales & Growth
On this page

Most roofing owners I talk to can tell me their revenue to the dollar and their gross margin to the point, but ask them what percentage of their marketing budget goes to direct mail versus paid search versus canvassing and you get a shrug. The money gets spent. Where it goes is mostly inertia: whatever worked three storms ago, whatever the last salesperson swore by, whatever the marketing vendor pitched last quarter. That is fine when leads are cheap and the phone rings on its own. It is expensive the moment a season goes quiet and you realize you have been feeding a channel that stopped producing two years ago.

This is a working model for splitting a roofing marketing budget across channels by percentage, built the way an operator would build it: start from revenue, set a total spend, then allocate that total across channels in a way that matches how you actually sell. There is no single correct split, because a hail-driven storm restoration shop in the Texas panhandle and a referral-heavy retail re-roofer in the Pacific Northwest are running two different businesses. So the goal here is not to hand you one pie chart. It is to give you the math, the benchmarks, the ranges, and the decision rules so you can build the split that fits your shop and then re-cut it every quarter as the data comes in.

First decide the total: marketing as a percentage of revenue

Before you argue about channels, settle the size of the pie. Channel percentages are meaningless until you know what they are a percentage of.

The common rule of thumb across home-services trades is that marketing runs somewhere between 5% and 12% of revenue, with most established residential contractors landing in the 6% to 10% band once you count everything. Roofing has a wide spread because the business models inside the trade differ so much:

  • Mature retail re-roofers with strong referral flow often spend on the lower end, 4% to 7% of revenue, because a big chunk of their work arrives through reputation, repeat customers, and word of mouth that costs almost nothing per job.
  • Growth-stage and storm-chasing shops spend on the higher end, 8% to 15%, sometimes briefly higher when they enter a new market or chase a fresh hail event, because they are buying their way into demand rather than harvesting an existing base.
  • Brand-new shops with no referral base can spend 15% or more in year one and should expect to, because every single job has to be bought. That number is not sustainable; it is a startup tax.

A mistake worth naming early: marketing percentage and marketing dollars move in opposite directions as you grow well. A shop doing 2 million dollars at 10% spends 200,000 dollars. A shop doing 8 million at 6% spends 480,000 dollars. The bigger shop spends more than double the dollars at a lower percentage, because referral and repeat volume scales faster than paid acquisition. If your marketing percentage is rising as you grow, that is a signal your referral engine is broken, not that you are investing aggressively.

The other foundational number is what you are actually willing to pay to acquire a customer. Work it backward from a job.

Worked example: deriving your allowable acquisition cost

Say your average residential re-roof job is 14,000 dollars in revenue at a 35% gross margin, so 4,900 dollars of gross profit per job. If you are willing to spend 15% of that gross profit to acquire the customer, your allowable customer acquisition cost (CAC) is about 735 dollars per closed job. Now divide by your close rate. If you close 25% of qualified leads, you can spend up to about 184 dollars per qualified lead and still hit your CAC target. If you close 40% (typical for inbound referral and inspection-appointment leads), you can spend up to about 294 dollars per qualified lead.

That single number, the most you can pay per qualified lead, is the gatekeeper for the entire channel split. Any channel delivering qualified leads under that number is a candidate to fund. Any channel running over it is a candidate to cut or fix. Hold that thought, because the channel-by-channel cost-per-lead ranges below only mean something next to it.

Two budgets, not one: the storm-vs-retail split decision

The single biggest fork in roofing budget allocation is whether you sell insurance-driven storm restoration, retail replacement and repair, or some mix. They have different channels, different cost-per-lead curves, and different seasonality, and blending them into one budget hides which side is winning.

A quick way to set your top-level split is by revenue mix. If 70% of your closed revenue last year came from storm work and 30% from retail, start by splitting the budget roughly the same way, then adjust for the fact that storm demand is lumpy and event-driven while retail is steady. In practice many mixed shops carry a retail "baseload" budget that runs all year and a storm "surge" budget they release when an event lands in their footprint.

A note on the storm side before we go further, because it shapes the copy and the targeting: a roofing contractor can inspect a home, document damage, and write an accurate repair estimate, and can state facts about their own scope to the carrier. A contractor cannot, for a fee, negotiate or adjust the claim, interpret what the policy covers, promise a specific approval or payout, promise to absorb or waive the deductible, or advertise a "free roof." Those cross into unlicensed public adjusting and, in the case of the deductible and the free roof, into insurance-fraud and deceptive-advertising territory in most states. Your marketing can say you inspect thoroughly and document damage. It cannot say you get claims approved or make deductibles disappear. Keep every dollar of storm marketing on the documentation-and-estimate side of that line, because a single bad postcard can cost you your license and your insurance bond.

The channel menu, with realistic cost-per-lead ranges

Here is the full menu of channels a residential roofer can fund, with the cost-per-lead ranges I see hold up across markets. Treat these as starting brackets, not promises; your local competition, your storm cycle, and your sales follow-up move them by a lot. Cost per qualified lead is what matters, so where a channel produces a lot of junk, the raw cost-per-lead understates the true cost.

Channel Typical cost per lead Lead quality Speed to results Best for
Referral / repeat program 0 to 75 dollars Highest Slow to build, instant once built Every shop, always
Google Local Services (LSA) 25 to 90 dollars High (pay per call) Days Retail repair + replace
Organic search / SEO + GBP low marginal, high upfront High 6 to 18 months Retail, long-term moat
Paid search (PPC) 75 to 300+ dollars Medium-high Days Retail replace, repairs
Direct mail (targeted) 40 to 200 dollars Medium-high 2 to 6 weeks Storm + aging-roof retail
Door knocking / canvassing labor + 10 to 60 dollars materials Medium, you control it Immediate Storm response, neighborhoods
Paid social (Meta) 30 to 150 dollars Medium-low Days Retail awareness, retargeting
Yard signs + wraps + local very low per lead Medium Slow ambient Density, social proof
Lead marketplaces (shared) 50 to 150 dollars (shared) Low Immediate Filler only, last resort
Sponsorships / community hard to attribute Medium Slow Brand, referral support

Two things to flag in that table. First, the cheapest leads (referral, organic, signs) are the slowest to build, and the fastest leads (PPC, marketplaces, canvassing) are the most expensive per unit or the most labor-intensive. A healthy budget buys speed today while building cheap volume for tomorrow. Second, shared lead marketplaces show a low headline price but sell the same lead to three or four contractors, so your effective cost per closed job is often the worst on the board. They earn a small filler slice at most.

A baseline allocation model you can adjust

Let me give you a concrete starting split for three common shop profiles, then explain the reasoning so you can move the numbers. These percentages are of the total marketing budget, after you have set that budget as a percentage of revenue.

Profile A: Established retail re-roofer (steady, referral-heavy)

Total budget around 5% to 7% of revenue. This shop's job is to protect and compound an existing reputation, not buy demand from scratch.

Channel % of budget Why
Referral + repeat program 20% Highest ROI; fund the engine that already works
Organic / SEO / Google Business Profile 20% Builds a durable, low-marginal-cost lead stream
Google Local Services + PPC 25% Captures high-intent "roof repair near me" demand
Direct mail to aging-roof homes 15% Reaches owners before they search
Branding (signs, wraps, community) 10% Density and trust in core neighborhoods
Reviews + content + email nurture 10% Compounds everything else; cheap

Profile B: Storm-restoration shop (event-driven, canvassing-led)

Total budget 8% to 12% of revenue, with a separate surge reserve. This shop lives and dies on responding fast to events in its footprint and documenting damage thoroughly.

Channel % of budget Why
Canvassing labor + field tools 30% The primary storm channel; boots after an event
Targeted direct mail (storm-hit areas) 25% Reaches homeowners the canvassers miss
Local Services + PPC (storm terms) 15% Captures the homeowners who self-initiate
Referral + neighbor-cluster program 12% One approved job sells the street
Branding (yard signs, wraps) 10% Yard signs in a hit neighborhood are gold
Reviews + microsite + tracking 8% Proof and measurement

Profile C: New-market or new-shop entry

Total budget 12% to 18% of revenue for the first 6 to 12 months. Everything has to be bought because there is no base.

Channel % of budget Why
Local Services + PPC 30% Fastest path to the first appointments
Direct mail + canvassing 25% Build density and name recognition fast
SEO + Google Business Profile setup 20% Plant the long-term moat from day one
Paid social + retargeting 10% Cheap awareness while reputation is thin
Reviews + referral incentive 10% Convert early jobs into proof and referrals
Branding + signage 5% Visibility in the new footprint

Notice how the same channels appear in every profile but the weights swing hard. The retail shop pours into search and referral; the storm shop pours into canvassing and mail; the new shop front-loads paid speed while it builds the cheap channels underneath. If you try to run a storm shop on a retail split, you will underfund the boots that actually win storm work and overpay for search terms nobody is typing until the next event.

How to actually build your split, step by step

Don't copy a table. Build the number from your own data. Here is the workflow.

Step 1: Pull last 12 months of closed jobs and tag the source

Get every closed job and tag where it originated: referral, organic search, paid search, Local Services, direct mail, canvass, social, sign, marketplace, or unknown. If a meaningful share is "unknown," that is your first problem to fix; you cannot allocate a budget you cannot attribute. The single most useful field is the first touch, the thing that made the homeowner aware of you, not the last click before they signed.

Step 2: Compute cost per lead and cost per closed job by channel

For each channel, divide what you spent by the leads it produced (cost per lead) and by the jobs it closed (cost per acquisition). Then layer in the average job size and gross margin per channel, because not all jobs are equal. Storm jobs and full replacements carry more margin than a 1,200-dollar repair. A channel with a higher cost per lead can still be your best channel if it brings bigger, higher-margin jobs.

Step 3: Rank channels by return, not by cost

Sort by gross profit produced per dollar spent, not by cost per lead. A channel at 250 dollars per lead that closes 40% into 6,000-dollar-profit jobs beats a channel at 60 dollars per lead that closes 10% into 800-dollar-profit repairs. Cheap leads that don't close or don't carry margin are expensive.

Step 4: Protect the floor, then allocate the growth dollars

Split your budget into two buckets. The floor funds the channels that reliably produce at or under your allowable CAC. The growth/test bucket, usually 10% to 20% of the total, funds new channels and experiments. Never let the test bucket starve the floor, and never let the floor calcify so much that you stop testing. Roofing demand and ad costs move every season; a static split rots.

Step 5: Set a re-cut cadence

Review the split monthly during your season and reallocate quarterly at minimum. Storm shops should be able to move money in days when an event lands; build that flexibility in by keeping a surge reserve unspent rather than committed to annual contracts.

Channel deep-dives: where the percentages actually go

The table gives you weights. This is what each slice should buy and the traps inside it.

Referral and repeat: the channel everyone underfunds

Referral is the highest-ROI channel in roofing and the most under-resourced, because it feels free and so nobody assigns it a budget or an owner. Fund it anyway. The dollars go to a structured ask-for-referral process, a small incentive (gift card, charitable donation in the customer's name, or account credit, kept within your state's rules on referral payments), branded leave-behinds, and a follow-up cadence at 30 days, 6 months, and the one-year mark. The neighbor-cluster play is the highest-leverage version: when you finish a job, the surrounding homes have the same roof age, the same builder, and just watched a crew work next door. Working that cluster deliberately turns one job into three.

Organic search, Google Business Profile, and reviews

This is the slow-compounding moat. The upfront cost is real (content, technical site work, profile optimization) but the marginal cost per lead approaches zero once it ranks. Your Google Business Profile is the highest-leverage single asset: complete every field, post regularly, and treat review velocity as a primary metric. A steady drip of recent, detailed reviews moves the map pack more than almost anything else and feeds every other channel, because a homeowner who got your postcard still Googles you before they call. Underfunding reputation makes every paid channel more expensive.

These capture the homeowner who has already decided they have a problem and is shopping right now. Local Services (the pay-per-lead listings with the green checkmark) usually beats traditional PPC on cost per qualified lead for repair and replacement because you pay per call and earn the trust badge. Traditional PPC is more expensive and demands disciplined negative keywords, tight geo-targeting, and call tracking or you will burn budget on tire-kickers and the wrong towns. Both reward fast call answering: a lead that calls and gets voicemail is money set on fire.

Direct mail: the most underrated targeted channel

Direct mail gets dismissed as old-school, then quietly outperforms for the shops that target it well. The failure mode is spray-and-pray: blasting an entire zip code at a 0.5% response rate. The winning mode is tight targeting, mailing only homes in the roof-age band that is due or overdue for replacement, or only homes inside a storm-hit footprint, with a personalized piece and a reason the homeowner should care about their roof specifically. Targeted mail to aging-roof and storm-exposed homes routinely beats untargeted mail by several multiples on response, which means the same budget produces several times the leads. The whole game is the list. We will come back to how to build that list cheaply.

Canvassing and door knocking

For storm work, this is the main event. The budget here is mostly labor, plus routing tools, leave-behinds with a scannable code, and mileage. The discipline that separates a profitable canvass program from a wandering one is routing and tracking: knowing which streets are storm-hit and worth the boots, assigning reps to defined territories, logging every door's outcome, and following up the maybes. A rep who free-roams a neighborhood covers a third of the doors a routed rep does. Canvassing also carries compliance weight: many municipalities require solicitation permits, observe no-knock lists, and on the storm side every door conversation has to stay on "we inspect and document damage," never "we'll get your claim approved" or "your deductible's covered."

Meta and similar platforms are awareness and retargeting channels in roofing, not high-intent lead channels. Nobody scrolling their feed is in-market for a roof at that second, so cold social leads are cheap but soft. Where it earns its slice is retargeting (showing your brand to people who visited your site or scanned a postcard code) and storm-event awareness in an affected area. Keep it a minority slice unless your data proves otherwise in your market.

Lead marketplaces

Shared lead marketplaces sell the same homeowner to several contractors, so you are racing three competitors to the phone on a lead that already feels shopped. The math rarely works as a primary channel once you account for close rate on shared leads. Use them as filler to keep reps busy in a slow stretch, cap the spend hard, and track close rate ruthlessly so you cut them the moment your own channels can fill the calendar.

The measurement problem that wrecks most budgets

Here is the uncomfortable truth: most roofing shops cannot tell you their real cost per lead by channel, because attribution leaks everywhere. The postcard recipient who Googles you and calls gets credited to "organic" or "phone," not mail. The canvass conversation that turns into a call two weeks later gets logged as inbound. The referral who also saw your yard sign gets double-counted or miscounted. When attribution is broken, your channel split is a guess, and you end up cutting the channel that actually drove the work because it didn't get the last click.

Fix this before you obsess over percentages. Three things move the needle most:

  1. Capture first-touch and lock it. The first thing that made the homeowner aware of you is the channel that earned the credit. Record it at intake and never let it get overwritten by a later touch.
  2. Use channel-specific contact paths. A dedicated tracking number on mail and yard signs, a unique scannable code per campaign, and distinct landing pages tell you which channel actually produced the call.
  3. Measure to the closed job and the dollar, not the lead. Cost per lead lies. Cost per closed job and gross profit per marketing dollar tell the truth. A channel can win on cost per lead and lose badly on cost per job.

Once you can see actual cost per win by channel next to your estimate and an industry benchmark, the budget split stops being a debate and becomes arithmetic. You fund what produces profit per dollar and starve what doesn't.

Where RoofPredict fits the budget question

Most of this work, building the targeted list, running tracked campaigns, routing the canvass, and proving which channel actually produced the win, is exactly what RoofPredict is built to run. It is the operations platform a contractor runs their outreach and revenue cycle on, not a lead-selling service, so the leads it helps you generate are yours and the first-touch source stays attributed to you.

Start with the part that makes your two most expensive channels (direct mail and canvassing) several times more efficient: targeting. RoofPredict scores every home in your service area by roof-age band, recent, mid-life, due, or overdue, and overlays per-roof storm exposure to produce a ranked, house-by-house target audience with a "why this home" evidence chain for each address. Roof age is a range inferred from available signals, not an exact install date, and a storm score is odds of exposure, not proof of damage, so treat the ranking as a smart prioritization of doors, not a guarantee. That is the honest version, and it is still a massive upgrade over mailing a whole zip code: instead of a 0.5% blast, you mail and knock only the due and overdue, storm-exposed homes, which is where the same budget produces several times the response.

From that ranked list you run the channels directly. The due-roof audience turns into a tracked direct-mail campaign: personalized mail proofs with brand, copy, and address checks, vendor release, per-piece delivery and return tracking, and a cost quote up front, so a budget line that used to be a black box becomes a measured channel. Every targeted home gets a personalized report and public microsite (roof profile, storm history, the cost of waiting) with a lead-capture form, plus per-home and lookup QR codes for the mail piece and the door, which closes the attribution leak because a scan or a microsite form ties the lead back to the exact campaign and address. For the boots, you build door-knock routes, assign canvassers, and run a mobile field app with next-stop, outcome forms, voice notes, and leave-behind codes, so your canvass labor (the biggest line in a storm budget) actually covers the doors you paid to identify.

Then it answers the budget question itself. Every lead flows into a lead pipeline (new, contacting, appointment, inspected, won or lost) with an immutable first-touch source and two-way sync to 13 CRMs including HubSpot, ServiceTitan, JobNimbus, AccuLynx, Jobber, Housecall Pro, and Salesforce, so attribution is captured once and never overwritten. The results funnel then shows delivered to views to form to calls to leads to wins, with cost per lead and cost per win, and, the part that ends most budget arguments, actual versus estimate versus an industry benchmark, plus A/B campaign variants. That is how you stop allocating by gut: you can see which channel produced the cheapest closed jobs last quarter and move the percentages toward it next quarter.

If storm restoration is part of your mix, the integrated RoofClaim module keeps you on the right side of the compliance line while protecting the revenue you have already earned. It handles claim intake linked to the home, auto-classifies and OCRs claim documents, and runs opportunity detection that maps estimate line items against a roofing knowledge base to flag missing scope, code-required items, and missed supplements, each with an evidence anchor and pricing, on locked, UPPA-gated, contractor-documentation-only templates. It runs a recoverable-depreciation autopilot (completion evidence plus final-invoice checklist), deductible tracking, and supplement aging with a follow-up cadence and packet-completeness scoring. The point is documentation thoroughness and accurate, code-aligned estimating, the work a contractor is allowed to do, never negotiating the claim, interpreting coverage, or promising an outcome. Done right, that recovered supplement and depreciation revenue often funds the next season's marketing budget, which is the cheapest acquisition dollar of all: money you had already earned and were leaving on the table.

Worked example: cutting an 8-million-dollar mixed shop's budget

Let me put numbers to it. A shop does 8 million in revenue, roughly 60% storm and 40% retail, and decides on a 9% marketing budget, so 720,000 dollars for the year. Average job 16,000 dollars at 36% margin, so 5,760 dollars gross profit per job. They close 30% of qualified leads and target a CAC at 15% of gross profit, so about 864 dollars per closed job, which at a 30% close rate means roughly 259 dollars per qualified lead is the ceiling.

First cut, by revenue mix: about 432,000 dollars to the storm side, 288,000 to retail. Then within each, apply the profile splits.

Storm side (432,000): canvassing labor and field tools at 30% (129,600), targeted storm-hit mail at 25% (108,000), Local Services and PPC on storm terms at 15% (64,800), neighbor-cluster referral at 12% (51,840), yard signs and wraps at 10% (43,200), and reviews, microsites, and tracking at 8% (34,560).

Retail side (288,000): Local Services and PPC at 25% (72,000), organic and Google Business Profile at 20% (57,600), referral and repeat at 20% (57,600), targeted aging-roof mail at 15% (43,200), branding at 10% (28,800), reviews and nurture at 10% (28,800).

Now the year runs and the data comes back. Suppose the tracked mail and canvass, because they were targeted only to due and storm-exposed homes, came in at 140 dollars per qualified lead and closed at 38% into the biggest jobs, while the storm PPC drifted to 310 dollars per qualified lead and closed at 18%. The arithmetic is obvious: next quarter, move 20,000 dollars out of storm PPC and into targeted mail and canvass, hold a surge reserve for the next event, and keep the experiment bucket funded to test paid social retargeting against the microsite visitors. That is the whole discipline, set the split from a model, measure cost per win by channel, and re-cut toward what produces profit per dollar.

Seasonality: when to spend, not only where

A channel split is a flat picture of a business that is anything but flat. Roofing demand swings hard across the year, and a budget that ignores timing wastes money in the slow months and runs out of it in the peak. The percentages above tell you where the money goes; this section is about when.

For retail replacement and repair, demand in most of the country builds through spring, peaks in late summer and early fall as homeowners try to beat winter, and falls off in deep winter. The temptation is to spend evenly across twelve months. The better move is to weight spend slightly ahead of demand, because lead-to-job cycles run weeks: a homeowner who responds to an April postcard or search ad often signs in May or June. Spending heavily in the dead of the peak, when your crews are already booked out, just buys leads you can't service and prices you out of the channels you'll need when demand cools.

For storm work, seasonality is the wrong word; it's event-driven, and events are the whole game. Hail and wind don't follow a calendar you can plan around, though the broad severe-weather season skews toward spring and summer in most hail-prone regions. The budget implication is the opposite of retail: you do not want to commit your storm dollars evenly across the year. You want a reserve sitting liquid, ready to deploy within days of an event landing in your footprint, because the contractors who knock first and document first in a hit neighborhood win the bulk of that neighborhood's work. A storm shop that spent its whole budget on a tidy monthly schedule has nothing left the week it actually matters.

The practical structure for a mixed shop is a steady retail baseload that runs all year at a roughly even monthly clip, weighted slightly ahead of the spring-to-fall demand curve, plus a storm surge reserve, often 15% to 25% of the total budget, that stays unspent and uncommitted until an event triggers it. Avoid annual contracts that lock that reserve up. The flexibility to move money in days is worth more than the small discount an annual media buy offers.

A rough monthly cadence for a retail-weighted shop

  • Winter (Dec to Feb): lowest spend. Keep organic, reviews, and Google Business Profile work going (they compound regardless of season), run a lean Local Services presence for the repairs that still happen, and use the quiet to build next year's targeted mail list and refresh creative.
  • Early spring (Mar to Apr): ramp up. This is when you front-load targeted mail and search ahead of the demand curve so the leads land as homeowners start shopping.
  • Peak (May to Sep): full spend on the channels that convert, but watch crew capacity; if you're booked out four weeks, pull back on the most expensive paid channels rather than buying leads you can't service.
  • Fall (Oct to Nov): maintain search and referral as homeowners rush to beat winter, then taper.

Storm reserve overlays all of this and ignores it. When an event hits, you surge canvassing and targeted mail into the affected footprint immediately, regardless of what month it is.

Setting realistic close-rate and conversion assumptions

Every number in a budget model hangs on close rate, and roofers routinely plug in a number that's too optimistic, which makes every channel look more affordable than it is. Be honest about where your close rates actually sit, because the same cost per lead produces wildly different cost per job depending on this one assumption.

Close rates vary by channel and by lead intent. A homeowner who called you after a referral, or who booked an inspection appointment off a high-intent search, closes at a much higher rate than a cold social lead or a shared marketplace lead. As a rough framing: referral and repeat leads often close in the 40% to 60% range, inspection-appointment and high-intent search leads in the 30% to 45% range, targeted mail and canvass leads in the 20% to 35% range, and cold social or shared marketplace leads in the single digits to low teens. Your actual numbers will differ, but the shape holds: the cheaper-feeling channels usually carry the lower close rates, which is exactly why cost per closed job, not cost per lead, has to drive the budget.

The other conversion step roofers skip in their math is the lead-to-appointment rate. A "lead" that never turns into a set inspection isn't a lead, it's a contact. If your speed-to-lead is slow (a call that goes to voicemail, a form fill that sits for a day), your lead-to-appointment rate craters and every channel's true cost per job doubles. Before you re-cut a budget across channels, fix the leak between lead and appointment, because no allocation change recovers a lead you let go cold.

Worked example: the same channel, two close rates

Take a targeted direct-mail campaign that produces 100 qualified leads at 150 dollars each, so 15,000 dollars spent. At a 30% close rate, that's 30 jobs and a cost per job of 500 dollars. At a 20% close rate, the same 15,000 dollars produces 20 jobs and a cost per job of 750 dollars, a 50% jump, entirely from the close-rate assumption. If your average job carries 5,000 dollars of gross profit, both versions are profitable, but only the honest version tells you whether the channel beats your alternatives. Plug in a fantasy 45% close rate and you'll over-allocate to a channel that can't actually deliver it.

Building the targeted list cheaply (the part that decides mail and canvass ROI)

Earlier I said the entire outcome of direct mail and canvassing hinges on the list, then promised to come back to how to build it without overspending. Here's the operational version.

The goal is to mail and knock only the homes most likely to need a roof soon, the due and overdue age band, plus any home inside a recent storm-hit footprint, and to skip the homes whose roofs are recent or mid-life. Cutting your mail volume to the right third of a zip code while holding response steady or better is the single biggest efficiency lever in the whole budget, because it concentrates the same dollars on the homes that convert.

The inputs that build that list:

  1. Roof-age signals. Homes of similar build age in the same subdivision tend to have roofs of a similar vintage, especially tract neighborhoods built in a single phase. A street built in 2002 with original architectural shingles is squarely in the due-to-overdue band today. Permit history, where available, sharpens this further.
  2. Storm exposure. Overlay recent hail and wind event footprints onto the address list so you can prioritize homes that were actually under the storm, not the whole metro. This is odds of exposure, not proof of damage, but it's a strong prioritizer for where to put boots first.
  3. Property characteristics. Owner-occupied single-family homes in your job-size sweet spot convert differently than rentals or homes far outside your typical ticket. Filter to the homes you actually want to sell.
  4. Suppression. Remove existing customers (unless you're running a repeat/referral play), homes you've recently mailed, and any no-knock or do-not-contact entries on the canvass side.

Do this by hand and it's a slog of spreadsheets, county records, and weather maps that eats a marketing coordinator's week every campaign. The payoff is real either way, because a list that's three times more relevant makes a mail or canvass budget behave as if you tripled it. This is precisely the work the targeting section below automates, but even a manual version beats blasting a zip code.

Common budget-allocation mistakes roofers make

  • Setting one budget for a two-engine business. Blending storm and retail into a single split hides which side is winning and underfunds whichever channel the other model doesn't use. Run two budgets.
  • Allocating by cost per lead instead of profit per dollar. The cheapest lead is often the worst job. Sort channels by gross profit per marketing dollar.
  • Starving referral because it feels free. The highest-ROI channel gets no owner, no budget, and no process, so it underperforms its potential by a mile. Fund it like a real channel.
  • Committing the whole budget to annual contracts. Storm demand is event-driven; if every dollar is locked into a 12-month media buy, you can't surge when an event lands. Keep a reserve liquid.
  • Spray-and-pray direct mail. Mailing a whole zip code at a sub-1% response rate when targeting only due and storm-exposed homes would have produced several times the leads for the same spend.
  • Free-roaming canvassers. Unrouted reps cover a fraction of the doors and log nothing, so you can't follow up or measure. Route them and capture every outcome.
  • Broken attribution. Crediting the last click instead of the first touch means you cut the channel that actually drove the work. Lock first-touch source at intake.
  • Crossing the compliance line in storm copy. A postcard or door pitch that promises claim approval, a waived deductible, or a free roof can cost you your license and bond. Stay on "we inspect and document damage."
  • Never re-cutting. A static split rots as ad costs and demand shift every season. Review monthly in-season, reallocate quarterly.

A simple checklist to set your split this quarter

  1. Set total marketing budget as a percentage of revenue (4 to 7% mature retail, 8 to 15% growth or storm, 12%+ new shop).
  2. Compute your allowable CAC and the resulting maximum cost per qualified lead from your job size, margin, and close rate.
  3. Split the top level by revenue mix into storm and retail buckets if you run both.
  4. Pull 12 months of closed jobs and tag first-touch source; fix any large "unknown" share first.
  5. Compute cost per lead and cost per closed job, and gross profit per marketing dollar, by channel.
  6. Allocate the floor to channels at or under your CAC ceiling; reserve 10 to 20% for test and surge.
  7. Put a unique tracking path on every channel (numbers, codes, landing pages) so attribution holds.
  8. Set the re-cut cadence: review monthly in-season, reallocate quarterly, keep the storm reserve liquid.
  9. Move money toward profit per dollar, not cheapest lead, every cycle.

Bottom line

There is no universal pie chart for roofing marketing, and anyone who hands you one without asking about your storm-versus-retail mix, your referral base, and your close rate is selling, not helping. The right split falls out of four numbers: how much of your revenue you'll commit, the most you can pay per qualified lead, your revenue mix between storm and retail, and the cost per closed job each channel actually produces. Set the budget as a percentage of revenue, allocate by profile to start, then let measured profit per dollar re-cut the percentages every quarter. Fund referral like it's real, target your mail and canvass instead of blasting them, lock your first-touch attribution, keep a surge reserve liquid for the next storm, and keep every word of your storm marketing on the document-and-estimate side of the law. Do that and your channel split stops being inertia and starts being a decision you can defend with the numbers.

FAQ

What percentage of revenue should a roofing company spend on marketing?

Most established residential roofers spend 6% to 10% of revenue, with mature referral-heavy retail shops as low as 4% to 7% and growth-stage or storm shops at 8% to 15%. Brand-new shops with no referral base often spend 15% or more in their first year, which is a temporary startup cost, not a sustainable rate. As you grow well, your marketing percentage should fall even as the dollar amount rises, because referral and repeat volume scales faster than paid acquisition.

How should I split a roofing marketing budget across channels by percentage?

There is no single correct split because it depends on your storm-versus-retail mix and referral base. A steady retail re-roofer might run roughly 25% search and Local Services, 20% organic and reviews, 20% referral, 15% targeted mail, 10% branding, and 10% nurture. A storm shop shifts heavily toward canvassing (around 30%) and targeted storm-hit mail (around 25%). Build your own split from your closed-job data and re-cut it quarterly toward whichever channels produce the most gross profit per dollar.

What is a good cost per lead for a roofing company?

It ranges widely by channel: referral leads can be near zero, Google Local Services often 25 to 90 dollars, targeted direct mail 40 to 200 dollars, and paid search 75 to 300 dollars or more. But the right benchmark is your own allowable cost per qualified lead, derived from your average job's gross profit, your target acquisition cost, and your close rate. Any channel under that ceiling is fundable; any channel over it needs fixing or cutting.

Which marketing channel has the best ROI for roofers?

Referral and repeat business has the highest return because it costs almost nothing per job and closes at the highest rate, yet it is the channel most shops underfund because it feels free. Behind it, organic search and Google Business Profile compound cheaply over time, and tightly targeted direct mail and routed canvassing win storm work efficiently. Rank channels by gross profit produced per marketing dollar, not by cost per lead, because cheap leads that don't close or carry margin are expensive.

How do I calculate customer acquisition cost (CAC) for my roofing business?

Take your average job's gross profit (job revenue times gross margin), decide what share of it you'll spend to win the customer (commonly 10% to 20%), and that's your target CAC per closed job. For example, a 14,000-dollar job at 35% margin is 4,900 dollars gross profit; at 15%, your CAC ceiling is about 735 dollars. Divide that by your close rate to get the most you can pay per qualified lead, which becomes the gatekeeper for your entire channel split.

Should storm and retail roofing have separate marketing budgets?

Yes. They use different channels, have different cost-per-lead curves, and follow different seasonality, so blending them into one split hides which side is winning and underfunds whichever channel the other model doesn't rely on. Split the top level by revenue mix, then carry a steady retail baseload budget all year and a separate storm surge reserve you can deploy in days when an event lands in your footprint.

Is direct mail still worth it for roofing companies?

Yes, when it's targeted. Blasting a whole zip code at a sub-1% response rate is wasteful, but mailing only homes in the roof-age band that is due or overdue, or only homes inside a storm-hit footprint, with a personalized piece routinely beats untargeted mail by several multiples on response. The entire outcome depends on the quality of the list, so the work is in identifying the right homes, not printing more postcards.

How much should I budget for door-to-door canvassing?

For a storm-restoration shop, canvassing is often the largest single line, around 30% of the marketing budget, and it is mostly labor plus routing tools, leave-behinds with a scannable code, and mileage. The efficiency lever is routing and tracking: assigning reps to defined storm-hit territories and logging every door's outcome, because a routed rep covers roughly three times the doors of a free-roaming one. Budget for the compliance side too, since many areas require solicitation permits and no-knock-list compliance.

Why can't my roofing ads say I'll get the claim approved or waive the deductible?

Because a roofing contractor is not a licensed public adjuster. You may inspect, document damage, and write an accurate repair estimate, and state facts about your own scope to the carrier, but you may not negotiate or interpret the claim, promise a specific approval or payout, or promise to waive, absorb, or cover the deductible. Promising a waived deductible or a "free roof" is insurance fraud and deceptive advertising in most states and can cost you your license and bond. Keep storm marketing on the inspect-and-document side.

How often should I review and adjust my roofing marketing budget split?

Review the numbers monthly during your busy season and formally reallocate at least quarterly. Ad costs, competition, and storm demand shift constantly, so a static split rots within a year. Keep 10% to 20% of the budget in a test-and-surge bucket so you can experiment with new channels and move money fast when a storm event lands, rather than locking every dollar into annual media contracts.

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. U.S. Small Business Administration: Marketing and Sales Guidancesba.gov
  2. Federal Trade Commission: Advertising and Marketing Basicsftc.gov
  3. Federal Trade Commission: Truth in Advertisingftc.gov
  4. Texas Department of Insurance: Public Insurance Adjusterstdi.texas.gov
  5. National Association of Insurance Commissioners: Public Adjustersnaic.org
  6. National Roofing Contractors Associationnrca.net
  7. Insurance Institute for Business & Home Safety (IBHS): Hailibhs.org
  8. NOAA Storm Prediction Centerspc.noaa.gov
  9. National Weather Service: Severe Weatherweather.gov
  10. U.S. Bureau of Labor Statistics: Roofers Occupational Outlookbls.gov
  11. U.S. Census Bureau: American Housing Surveycensus.gov
  12. International Code Council: International Residential Codeiccsafe.org
  13. Google Business Profile Helpsupport.google.com
  14. RoofPredictroofpredict.com

Related Articles