Skip to main content

How to Reduce Roofing Ad Spend Without Losing Leads

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

Almost every roofer I talk to who wants to cut ad spend is staring at the wrong number. They look at the monthly invoice from Google, the shared-lead bill from Angi, the postcard run, the door-knocking payroll, and they ask which one to chop. Then they get nervous, because chopping any of it feels like throwing away leads. So they keep paying, the budget creeps, and the cost per job quietly climbs while they tell themselves they're "investing in growth."

The move that actually works is different. You don't cut blindly and pray your pipeline holds. You make every channel earn its keep against one number — the cost to land a paid job, not a phone call — and then you reallocate from the channels that waste money toward the ones that already convert. Done right, you spend less and book the same number of roofs, or more. I've watched contractors take a $14,000-a-month marketing budget down to $9,000 and finish the quarter with more contracts signed, because most of that $5,000 was buying noise.

What follows is the whole operating method: the real math, how to find the waste, what to kill first, how to protect the revenue while you cut, and the targeting changes that let you knock and mail far fewer doors for the same closed work. There are worked examples with numbers, checklists you can run this week, and the edge cases that trip people up. No fluff, because waste is the enemy here and a long lecture is its own kind of waste.

Why "cut ad spend" is the wrong frame to start with

When an owner says "my ads are too expensive," they almost always mean one of three different things, and the fix is different for each:

  1. The total budget is too high relative to revenue. You're spending 18% of revenue on marketing when healthy residential roofers run closer to 8–12%. This is a sizing problem.
  2. The budget is fine but the return is bad. You spend a reasonable amount, but too much of it lands on people who will never buy from you — new roofs, renters, tire-kickers, the same shared lead five competitors already called.
  3. Cash is tight this month and marketing is the easiest line to cut. This is a cash-flow problem wearing an ad-spend costume, and cutting marketing to fix it usually digs the hole deeper 60 days out.

If you don't know which one you have, you'll cut the wrong thing. The owner with a return problem who slashes total budget loses good jobs and bad jobs together. The owner with a sizing problem who "optimizes the funnel" tinkers at the edges while the real leak stays open.

So the first job is diagnosis, and the whole diagnosis runs on one metric most roofers don't actually track cleanly.

The only number that matters: cost per acquired job

Cost per lead is a vanity number. A lead is a phone call or a form fill. You can't deposit a lead. The number that decides whether a channel lives or dies is cost per acquired job (CPAJ) — total spend on a channel divided by the number of signed, sold contracts that channel produced.

CPAJ = total channel spend ÷ jobs signed from that channel

The gap between cost per lead and cost per job is where roofers fool themselves. Watch what happens when two channels look identical on the surface:

Channel Spend Leads Cost/lead Lead→job close rate Jobs Cost/acquired job
Shared lead marketplace $4,000 80 $50 8% 6.4 $625
Your reputation / referrals + retargeting $4,000 40 $100 35% 14 $286

The marketplace looks twice as efficient on cost per lead — $50 versus $100. It's actually more than twice as expensive per job, because those leads were sold to four other roofers and the homeowner is shopping price, not buying trust. Anyone optimizing on cost per lead would feed more money into the worse channel. That single confusion is responsible for an enormous share of wasted roofing ad budget.

Add gross margin and the picture gets sharper

CPAJ tells you what a job costs to win. To know whether a channel is worth it, compare CPAJ to the gross profit on the job it brings. The rule of thumb that keeps you honest:

Marketing efficiency ratio = average gross profit per job ÷ cost per acquired job

If an average residential reroof nets you $4,000 in gross profit (revenue minus materials and direct labor, before overhead), and a channel's CPAJ is $286, your ratio is roughly 14:1 — outstanding. A channel at $625 CPAJ is about 6.4:1 — still fine. A channel at $2,000 CPAJ is 2:1, and once you load in overhead, sales commission, and the jobs that never close after you measured them, a 2:1 channel is often losing money. You found a thing to cut.

There's no universal "good" CPAJ — a commercial TPO job carrying $20,000 of gross profit justifies a far higher acquisition cost than a $1,800 repair. That's exactly why cost per job beats cost per lead: it scales with the value of the work, and it tells you the truth channel by channel.

Build the table for your own shop (a 90-minute exercise)

You cannot reduce spend intelligently until this table exists for your business. Block 90 minutes and pull the last 6–12 months:

  • Spend per channel. Google Ads, Local Services Ads, Meta, lead marketplaces, direct mail (print + postage + list), door-knocking payroll, yard signs, truck wraps amortized, your SEO/website retainer, any agency fees.
  • Jobs sold per channel. This is the hard part, and it's where most shops are blind. You need source attribution on every signed contract. If your CRM doesn't capture "how did we get this job," start capturing it today; until then, reconstruct from memory and call logs, knowing it'll be rough.
  • Revenue and gross profit per channel. Average job value differs wildly by source — referral jobs and storm jobs are often larger and cleaner than marketplace jobs.

The output is one row per channel with spend, jobs, CPAJ, average gross profit, and the efficiency ratio. Now ranking is obvious, and so is the cut list.

The roofing marketing budget benchmark

Before cutting, sanity-check your total. Most healthy residential roofing companies spend somewhere between 8% and 12% of revenue on all sales and marketing combined. New companies trying to grow fast may run higher — 15% or more — and that can be correct if the return is there. Established companies riding referrals and repeat work sometimes run 5–7%.

Company stage Typical marketing spend (% of revenue) What's usually driving it
Startup / aggressive growth 12–20% Buying awareness and leads before reputation exists
Establishing (years 2–5) 8–12% Mix of paid acquisition and early referral flywheel
Established / referral-heavy 5–8% Reputation and repeat customers carry volume

These are reference points, not laws. The trap is treating a percentage as a target instead of a result. If you're at 16% and your efficiency ratios are all 8:1 and you're growing, leave it alone — you're buying profitable growth. If you're at 16% and half your channels are under 3:1, you have $40,000–$80,000 a year of recoverable waste sitting in plain sight.

A quick gut check on sizing: take your target revenue, multiply by your channels' blended efficiency, and see if the math supports your goal. If you want to add $1M in revenue at a 6:1 efficiency ratio and 30% gross margin, the marketing math roughly pencils to needing the spend to produce that gross profit at that ratio — work it through before you decide the budget is "too big."

Find the waste: a channel-by-channel audit

Now the practical work. Go through each channel with the same question: does this earn its CPAJ, and where inside it is money leaking? The goal isn't to kill channels — it's to find the waste inside good channels and the channels that are pure waste.

Google Search Ads (PPC)

Search ads are intent gold when they're tight and a money furnace when they're loose. The leaks, in order of how much they typically cost:

  • Broad match without tight negatives. Broad match will happily spend your money on "roofing jobs near me" (job seekers), "roofing materials" (DIYers), "roof repair cost" (researchers months out), and "how to roof a shed." Pull a search-terms report for the last 90 days and read every term that spent money. You will be alarmed. Add negative keywords aggressively: jobs, careers, salary, DIY, how to, materials, wholesale, supply, course, free, and the names of cities you don't serve.
  • No geographic tightening. "People in or regularly in your locations" is the safe setting; the default "presence or interest" shows your ads to people merely interested in your city from three states away. Set location to presence-only and exclude the ZIPs you won't drive to.
  • Bidding on the wrong intent. "Emergency roof leak" and "roof replacement" buyers are worth a premium. "Roof inspection" and "roof estimate" are mid. "Roofing prices" is mostly research. Pause or down-bid the research terms before you touch anything else.
  • Sending clicks to a weak landing page. A $40 click that lands on a slow, generic homepage with no phone number above the fold and no proof is wasted at the finish line. Conversion-rate problems masquerade as cost problems. A landing page that converts at 12% instead of 5% cuts your effective CPAJ by more than half with zero budget change.
  • Dayparting blind spots. If your office can't answer the phone after 6pm or on Sundays, and your ads run then, you're paying for clicks that ring out. Schedule ads to your actual answering hours unless you have 24/7 coverage.

Fastest PPC win that protects leads: don't cut the budget first. Cut the waste first — negatives, geo, intent, landing page. Watch CPAJ drop for a week, then decide if the now-efficient budget should shrink.

Google Local Services Ads (LSA)

LSAs (the "Google Guaranteed" pay-per-lead units at the very top) are often the highest-intent paid channel a roofer can buy, because the homeowner is calling you directly. But they're not waste-proof:

  • Dispute every bad lead. You can dispute leads that were spam, out of area, or for services you don't offer, and get the charge reversed. Most roofers never do this and silently eat 15–30% bad-lead charges. Set a weekly 15-minute habit to review and dispute. This alone can cut LSA cost per valid lead by a quarter.
  • Tighten job types and service area. Turn off lead types you don't want (e.g., gutter-only) and trim the radius to your profitable drive time.
  • Answer the phone. LSA ranking and lead flow reward fast pickup and good review velocity. A missed call is a lead you paid to generate and then threw away.

Shared lead marketplaces (Angi, networks, aggregators)

This is where the deepest cuts usually live, and where roofers are most afraid to cut. The structural problem: the same homeowner is sold to multiple contractors, so you're in a price race the instant you call, and your close rate craters. Run the CPAJ honestly and these channels frequently land at 2:1 or worse once you count the labor of chasing dead leads.

Before you kill it outright, test whether speed fixes it: marketplace leads decay fast, and the first caller wins disproportionately. If you can be the first call within five minutes, your close rate can double. If you can't — because you're on a roof all day — the channel may simply not fit your operation, and that's a clean cut.

The honest read: for many established roofers, shared leads are the first thing to cut, because the money redeployed into your own reputation, retargeting, and better targeting of homeowners you reach exclusively returns far more per dollar.

Direct mail

Mail isn't dead — it's just usually aimed badly. The waste is almost never the printing; it's the list. Blasting an entire ZIP code means paying to mail thousands of homes with five-year-old roofs that won't need you for a decade. The economics:

Approach Pieces Cost @ $0.65 all-in Response rate Leads Jobs @ 25% close CPAJ
Blanket the ZIP 10,000 $6,500 0.3% 30 7.5 $867
Mail only likely-due roofs 2,500 $1,625 1.0% 25 6.25 $260

Same neighborhood, nearly the same job count, and the targeted approach costs a quarter as much per job because you stopped paying to reach roofs that aren't ready. The response rate climbs partly because the message can be specific — you're writing to people whose roofs are actually aging out, not the whole street. This is the single highest-leverage change available in direct mail, and it ports straight to door-knocking and email.

Door-knocking and canvassing

Canvassing payroll is real ad spend even though it never shows up on an ad invoice. A canvasser at $20/hour plus gas knocking a random street is expensive per conversation and brutal per job. The waste is the same as untargeted mail: most doors aren't prospects. The fix is also the same — send crews to the streets and houses with the oldest roofs and the most storm exposure, not whatever neighborhood is closest to the office.

There's a second, quieter cost here: rep churn. A new canvasser who knocks 200 random doors and gets nowhere quits in three weeks, and you eat the recruiting and ramp cost all over again. A new canvasser who knocks 200 pre-qualified doors books appointments, makes money, and stays. Better targeting reduces both your acquisition cost and your turnover cost at the same time.

Social (Meta) ads

Meta is awareness and retargeting, not high-intent search. Where it leaks:

  • Prospecting to cold, broad audiences with a generic "we do roofs" creative — low intent, low return.
  • No retargeting pixel — you pay to bring people to your site once and then never follow them. Retargeting website visitors and past-quote homeowners is usually the only consistently profitable Meta play for roofers, and it's cheap.
  • Boosted posts mistaken for a strategy. A boosted post is the lowest-leverage spend on the platform.

SEO and your website

Not ad spend, but it shapes your ad spend, so it belongs in the audit. A strong local SEO presence and a fast, trustworthy site lower the cost of every paid channel because more clicks convert. If you're paying for clicks that land on a page converting at 4%, fixing the page is cheaper than buying more clicks. Conversely, a website retainer producing no organic traffic and no leads after a year is a channel to renegotiate or cut.

The cut sequence: what to kill, in what order, without losing jobs

You've got the audit. Now reduce spend without dropping job volume by cutting in the right order. The principle: cut pure waste first, then weak channels, and reinvest a portion of the savings into your strongest channels so total job count holds or rises.

Step 1 — Cut the zero-job waste (no risk to leads)

This is free money. None of it produces jobs, so removing it can't cost you leads:

  • Search terms with spend and zero conversions over 90 days → add as negatives.
  • Geographic areas outside your profitable drive time → exclude.
  • Ad hours when no one answers the phone → schedule off.
  • Undisputed bad LSA leads → dispute and recover.
  • Lead types you don't service → turn off.
  • Duplicate or zombie subscriptions (that listing site you forgot you're paying for) → cancel.

For most shops this step alone recovers 10–20% of spend with zero lead loss. Do it first, this week.

Step 2 — Fix the conversion leaks (this adds leads while cutting cost)

Before cutting any channel that produces jobs, raise its conversion so the same spend yields more:

  • Landing page: phone number above the fold, click-to-call on mobile, real photos, proof, a fast load. A page that doubles conversion halves effective CPAJ.
  • Speed-to-lead: answer inbound in under five minutes. The difference between a 5-minute and a 30-minute callback is a large, measurable drop in close rate.
  • Follow-up sequence: most roofing leads that don't close on the first touch close on the third through eighth. A simple text-plus-call cadence over two weeks recovers jobs you already paid to generate. Not following up is paying for leads and then mailing them to the trash.

Step 3 — Cut or shrink the weak channels (managed risk)

Now, and only now, trim channels with poor CPAJ. Don't cut a channel to zero overnight if it produces any jobs — step it down and watch the pipeline:

  • Cut the lowest efficiency-ratio channel by 50% for 30 days.
  • Hold total lead volume steady by simultaneously increasing the top channel or improving targeting (Step 4).
  • Watch signed jobs, not leads. If jobs hold, cut the weak channel the rest of the way. If jobs dip, you found the floor — stop there.

Step 4 — Reinvest savings into precision rather than more volume

The difference between cutting spend and cutting jobs is targeting. Every dollar you stop wasting on the wrong houses can buy you reaching the right houses cheaper. This is where the budget shrinks and the pipeline holds: you stop paying to reach roofs that aren't due, and you concentrate mail, knocks, and ad audiences on the homes most likely to need you now.

A worked reallocation

Here's the whole sequence on one fictional-but-realistic shop doing $2.4M a year, before and after a 60-day cut:

Channel Before spend Before jobs After spend After jobs What changed
Google Search $3,500 11 $2,600 13 Negatives + geo + landing page; less spend, more jobs
LSA $2,000 8 $1,700 9 Disputed bad leads, faster pickup
Shared leads $4,000 6 $0 0 Killed — worst CPAJ
Direct mail $4,500 9 $2,200 9 Targeted list, half the pieces
Door-knocking $3,000 7 $2,500 9 Routed to oldest/most-exposed roofs
Meta retargeting $500 2 $1,200 5 Funded from savings; retarget site + old quotes
Total $17,500 43 $10,200 45 −42% spend, +2 jobs

The shop cut $7,300 a month and booked two more jobs. Nothing magic happened — they stopped paying to reach people who would never buy, fixed the finish line, killed one bad channel, and aimed the rest at homes that were actually due. That's the entire method.

Targeting: the lever that lets you spend less and lose nothing

Everything above converges on one idea: most roofing ad waste is paying to reach the wrong roofs. A 12-year-old roof in a hail corridor is a prospect. A 4-year-old roof two streets over is not, no matter how nice the neighborhood. When you mail, knock, and advertise to entire ZIP codes, you're funding contact with thousands of roofs that won't need you for years — and that waste is baked into your CPAJ on every outbound channel.

Two signals separate a due roof from a roof that isn't:

  1. Roof age. Asphalt shingle roofs typically need replacement somewhere in the 15–25 year range depending on material grade, install quality, ventilation, and climate. A roof in or near that window is a candidate; a recent roof isn't.
  2. Storm exposure. A roof that has taken real hail or high wind can be due years before its age alone would suggest. Two roofs of the same age on the same street can be in completely different shape because the storm hit one harder than the other.

The problem most roofers hit: this data is genuinely hard to get house by house. Public records show year built, not roof age — and a re-roof never shows up in the county record, so a 1995 house with a 2021 roof looks ancient on paper and isn't. Measurement tools tell you the roof's dimensions, not its age or condition. And a regional hail map tells you a storm passed through a county; it doesn't tell you which specific roofs on which streets actually got worn down.

Where roof-age and storm data changes the math

This is the gap RoofPredict is built to close. It reads aerial imagery to estimate a roof's age as a range per address (not an exact date — nobody can promise that from the air), and it models storm physics on each individual roof — hail and wind impact house by house — rather than just flagging which county a storm crossed. The output is a ranked list of the homes most likely to be due, so you can mail, knock, and build ad audiences around the roofs that actually need you and skip the ones that don't.

Plainly, what that does to the numbers above: it's the mechanism behind the "mail only likely-due roofs" row that took direct-mail CPAJ from $867 to $260, and the door-knocking row that lifted jobs while cutting payroll. Instead of 10,000 pieces to a whole ZIP, you mail the 2,500 oldest, most storm-worn roofs. Instead of a canvasser knocking whatever street is closest, the crew works the doors most likely to convert. The ad spend drops because you stopped paying to reach roofs that weren't ready — not because you reached fewer real prospects.

It also enriches the list you already own. Your CRM is full of old estimates and past customers; layering roof-age and storm signals onto that book surfaces which of your own contacts are now due — the cheapest "new" leads in the business, because you already paid to acquire them once.

Honest limits, because they matter: roof age comes back as a range, not a birthdate. Storm exposure is modeled as odds and likelihood, not proof that a given roof is damaged — that's still a ladder, an inspection, and your own eyes. The data tells you which doors are worth your truck and your stamp; it doesn't close the job for you, and it isn't a lead-buying service that hands the same homeowner to four competitors. It sharpens the outbound you already do so fewer dollars reach more of the right roofs.

A special case: storm and insurance work without wasting spend (or stepping over the line)

Storm-restoration roofers spend heavily to be in front of homeowners after a hailstorm, and a lot of that spend is wasted on the wrong streets — and some of it on messaging that can get a contractor in real trouble. Both are fixable.

On targeting: after a storm, the instinct is to flood the whole affected area. But within any storm footprint, impact is wildly uneven — the same hail core that shredded one block barely touched the next. Concentrating your knocks and mail on the roofs that actually took the hardest hit (and were old enough to be vulnerable) is the difference between an efficient storm response and burning payroll canvassing roofs that weren't really damaged. Per-roof storm modeling is what makes that concentration possible.

On messaging — read this carefully, because it protects your license and your wallet: when you advertise and talk to storm-hit homeowners, there is a hard legal line between documenting your own work and acting as a public adjuster. You may inspect a roof, document the damage thoroughly with dated photos, and prepare an accurate, Xactimate-aligned estimate to repair the roof. You then hand that documentation to the homeowner. The homeowner files the claim; the insurer decides coverage. That's your lane, and it's a strong one.

What you may not do — the do-not-say list that keeps your marketing legal:

  • Don't negotiate, adjust, or "handle" the claim for the homeowner for a fee — that's unlicensed public adjusting in most states.
  • Don't interpret the policy or tell the homeowner what is or isn't covered.
  • Don't promise a specific payout, an approval, or that the claim "will go through."
  • Don't promise the deductible will be waived, absorbed, eaten, or made to disappear — that crosses into insurance fraud territory and is illegal in many states.
  • Don't advertise a "free roof" or imply the homeowner pays nothing.
  • Don't represent the homeowner against their insurer.

The reason this belongs in a spend article: ads that promise payouts, free roofs, or waived deductibles convert worse with serious homeowners and can trigger fines, license issues, or contract rescission that vaporize any return you got. Marketing that says, plainly, "we document the damage and write you an accurate repair estimate; you and your insurer take it from there" is both safer and more credible. Spend that builds that documentation-and-estimate reputation compounds; spend on legally risky promises is the most expensive kind of waste there is.

Protecting the pipeline: how to cut without the 60-day dip

The real fear behind "I can't cut, I'll lose leads" is the lag. Marketing has a delay — cut today, feel it in 30–60 days when the pipeline you built earlier runs dry. Here's how to cut without the dip:

  • Never cut more than one job-producing channel at a time. Cut waste freely (it produces no jobs, so there's no lag). But for channels that actually convert, step them down one at a time and watch a full sales cycle before the next cut.
  • Watch leading indicators ahead of signed jobs. Signed jobs lag by your whole sales cycle. Watch booked inspections and quoted jobs — they move first. If quotes hold steady two weeks after a cut, signed jobs will hold.
  • Bank the savings, don't spend them instantly. When you cut $7,000, don't immediately redeploy all of it. Hold a reserve so that if the pipeline dips, you can turn a known-good channel back up fast.
  • Cut in the slow season, build in the busy one. If you're seasonal, make your aggressive cuts when the pipeline matters least, so any miscalculation costs you the cheapest jobs of the year.
  • Keep the brand spend that has no fast payback but real long-term value. Reviews, reputation, your truck wraps, your Google Business Profile — these lower the cost of every other channel and don't show up cleanly in a 30-day CPAJ. Don't gut them to hit a monthly number.

The metrics dashboard to run from here on out

Cutting once is a project. Staying lean is a habit, and the habit runs on a short dashboard you review monthly. Track per channel:

Metric What it tells you Target direction
Spend The input Flat or down
Leads Volume of interest Watch, don't optimize for
Cost per lead Useful only within a channel over time Down
Lead→quote rate Are leads real and worked fast? Up
Quote→job close rate Lead quality + sales execution Up
Cost per acquired job (CPAJ) The verdict Down
Average job gross profit Job quality by source Up
Efficiency ratio (GP ÷ CPAJ) Is the channel worth it? Up, and above ~4:1

The two bolded rows are the ones that decide budget. Everything else is diagnostic. When CPAJ on a channel creeps up for two months running, audit that channel before it quietly becomes your next pile of waste.

Common mistakes that quietly waste roofing ad money

The patterns I see over and over, each one a leak:

  • Optimizing cost per lead instead of cost per job. Covered above, and worth repeating because it's the most expensive error in roofing marketing. Cheap leads that don't close are the most expensive leads you can buy.
  • No source attribution on signed contracts. If you can't say which channel produced each job, you're cutting blind. Add a required "lead source" field to every contract today.
  • Paying to generate leads, then not following up. Roofing leads need three to eight touches. A lead you call once and abandon is spend you set on fire. The cheapest jobs in your pipeline are the leads you already paid for and never worked.
  • Mailing and knocking entire ZIP codes. You're paying to reach mostly roofs that aren't due. Targeting by roof age and storm exposure is the highest-leverage fix in outbound.
  • Treating a percentage benchmark as a target. 10% of revenue isn't a goal; it's a side effect of spending efficiently. Chase the efficiency ratio, and the percentage takes care of itself.
  • Cutting marketing to solve a cash problem. That's a delayed amputation. Fix cash with collections, deposits, and payment terms; size marketing to return.
  • Cutting too fast and too broadly, then panicking at the 60-day dip and turning everything back on at full price. Cut one channel at a time, watch leading indicators, keep a reserve.
  • Letting risky claims-promise messaging run because it converts the tire-kickers. It also converts your name onto a state regulator's desk. Safe, documentation-focused messaging is cheaper in every sense.

How to handle the attribution problem (because most roofers can't trust their own numbers)

Every method here assumes you know which channel produced which job. Most shops don't, cleanly, and that's the quiet thing that makes "cut without losing leads" feel impossible — you're afraid to cut because you genuinely can't see what's working. Fixing attribution is the unglamorous foundation, so handle it deliberately.

The core problem is the multi-touch path. A homeowner sees your truck wrap for months, gets a postcard, searches your name on Google, clicks an ad, and calls. Which channel "gets credit"? If you ask "how did you hear about us," they'll say "Google," and your truck wrap, your mail, and your reputation — the things that actually built the trust — get zero credit and look cuttable. Cut them on that bad data and you knock out the foundation the whole funnel stands on.

A workable approach for a roofing shop that isn't running an enterprise analytics stack:

  • Use a unique phone number per channel (call tracking). A different tracked number on your direct mail, your LSA, your website, and your yard signs tells you which channel triggered the call far more reliably than asking the homeowner. Call-tracking numbers are cheap and the clarity they buy is worth far more than they cost.
  • Make "lead source" a required field on the signed contract, with a fixed dropdown of your real channels — not a free-text box that collects "internet" and "referral?" Force the salesperson to pick. Inconsistent source labels are nearly as useless as none.
  • Ask a better intake question. Replace "how did you hear about us" with "what made you call us today?" The first surfaces the last touch; the second surfaces the trigger, which is usually the channel doing the real work.
  • Separate first-touch from last-touch in your head. Brand and reputation channels (wraps, reviews, mail to people who weren't ready yet) are first-touch — they plant the seed. Search and LSA are often last-touch — they catch the person at the moment of need. Cutting first-touch channels because they don't show up as last-touch is a classic, expensive error. Give them credit for the pipeline they fill even when the click happens elsewhere.

You won't get attribution perfect, and you don't need to. You need it good enough that your CPAJ table reflects reality within a reasonable margin, and good enough that you're not about to cut a channel that's secretly feeding three others. Even rough call tracking plus a disciplined contract field gets you there.

Negotiating and renegotiating what you already pay

Cutting isn't only about turning channels off. A surprising amount of recoverable spend is sitting in contracts and retainers you can renegotiate without losing a single lead:

  • Agency and SEO retainers. Ask for the report that ties their work to signed jobs, not traffic or rankings. If they can't produce it after twelve months, you have leverage to renegotiate the scope or fee, or move to performance-linked terms. A retainer that can't show jobs is a candidate for a hard conversation.
  • Lead marketplace tiers and filters. Before you kill a marketplace, exhaust its filters — tighten the service area, raise the minimum job value, and turn off lead types you lose money on. You may convert a 2:1 channel into a 4:1 channel without leaving it.
  • Print and postage. Direct-mail cost per piece drops with volume and with house lists you bring yourself instead of renting. The expensive part of mail is almost never the paper — it's mailing the wrong houses, which the targeting section already solved.
  • Software you forgot you're paying for. Roofing shops accumulate listing-site subscriptions, premium directory placements, and trial tools that auto-renewed. Pull your last twelve card and bank statements and cancel anything that hasn't produced a traceable job. This is pure recovery with zero lead risk.

None of these touch your job volume. They recover money that was leaking out the side of the budget while you were focused on the big channels.

Seasonality and the cash-flow trap

Roofing demand is seasonal in most markets, and that shapes when and how you cut. Two practical rules:

First, build pipeline ahead of your busy season and trim in the trough. If your peak is late spring through fall, the dangerous time to cut is the late winter when you're filling the spring pipeline — a cut there shows up exactly when you most wanted the work. Make your structural cuts after the peak, when a miscalculation costs you the cheapest jobs of the year and you have months to correct before it matters.

Second, don't let a cash crunch masquerade as a marketing decision. When money's tight, marketing is the easiest line to slash because it has no immediate operational consequence — until 60 days later when the pipeline you stopped feeding runs dry, the crunch deepens, and you cut again. That's a death spiral. Fix cash-flow with the levers built for it: collect receivables faster, require deposits, tighten payment terms, and manage material timing. Size marketing to its return, and protect the spend that's actually producing profitable jobs even in a tight month. The roofers who survive slow stretches are usually the ones who kept their best-converting channel running while competitors went dark and ceded the pipeline.

A 30-day plan to cut spend without losing leads

If you want a concrete sequence, run this:

Week 1 — Measure. Build the channel table: spend, jobs, CPAJ, gross profit, efficiency ratio for the last 6–12 months. Add a required lead-source field to your contract and CRM so next month's table is clean.

Week 2 — Cut the zero-job waste. Negatives, geo-tightening, ad scheduling, dispute bad LSA leads, kill zombie subscriptions, turn off lead types you don't service. This recovers money with no lead risk.

Week 3 — Fix the finish line. Landing-page phone number and speed, sub-five-minute lead response, a three-to-eight touch follow-up cadence. This adds jobs at the same spend, building a cushion before you cut anything that converts.

Week 4 — Reallocate. Cut your worst efficiency-ratio channel by half. Tighten your mail and knock targeting to the oldest, most storm-exposed roofs. Move a slice of savings into retargeting your own site visitors and old quotes. Bank the rest. Then watch quoted jobs for two weeks before the next move.

Do that, and you'll spend meaningfully less while holding or growing your booked work — because you'll have stopped paying to reach roofs that were never going to buy, and concentrated every remaining dollar on the homes that actually need you.

If the targeting piece is the part you can't do by hand — figuring out, house by house, which roofs are old enough and storm-worn enough to be worth your truck and your stamp — that's exactly the gap RoofPredict fills: a roof-age range and per-roof storm read on the homes in your area and in your own customer list, so your mail, your knocks, and your ad audiences hit the right doors and skip the rest. Hand it a street you already know and judge for yourself whether it called the right roofs.

FAQ

What's the difference between cost per lead and cost per acquired job, and why does it matter for cutting spend?

Cost per lead is total channel spend divided by leads (calls or form fills). Cost per acquired job (CPAJ) is total channel spend divided by signed contracts. The gap between them is close rate, and it's where roofers fool themselves: a channel with $50 leads that close at 8% costs $625 per job, while a channel with $100 leads that close at 35% costs $286 per job. Cutting on cost per lead would feed money into the worse channel. Always decide budget on CPAJ.

How much should a roofing company spend on marketing as a percentage of revenue?

Most healthy residential roofers run 8–12% of revenue on combined sales and marketing. Startups chasing growth may run 12–20% and that can be correct if returns are strong; established referral-heavy shops sometimes run 5–8%. Treat the percentage as a result of spending efficiently, not a target. If your efficiency ratios are strong, a higher percentage is fine; if half your channels return under 3:1, you have recoverable waste regardless of the percentage.

Which roofing ad channel should I cut first?

Cut pure waste first because it produces no jobs and can't cost you leads: search terms with spend and no conversions, out-of-area geography, ad hours when nobody answers, undisputed bad Local Services Ads leads, and zombie subscriptions. After that, the channel with the worst efficiency ratio (gross profit divided by CPAJ) is the first job-producing channel to shrink. For many established roofers that's shared lead marketplaces, because the same homeowner is sold to several contractors and close rates are low.

How do I cut ad spend without my pipeline drying up in 60 days?

Cut waste freely since it produces no jobs and has no lag. For channels that convert, step them down one at a time and watch a full sales cycle before the next cut. Track leading indicators (booked inspections and quoted jobs) that move before signed jobs do. Bank part of the savings as a reserve so you can turn a known-good channel back up fast if the pipeline dips. If you're seasonal, make aggressive cuts in the slow season.

Are shared lead marketplaces like Angi worth keeping?

Run the CPAJ honestly first. The structural issue is that the same homeowner is sold to multiple contractors, so you're price-shopping the moment you call and close rates drop, often pushing the efficiency ratio to 2:1 or worse. Before cutting, test whether being the first caller within five minutes lifts your close rate enough to justify it. If you're on roofs all day and can't respond instantly, the channel often doesn't fit, and the money usually returns more redeployed into your own reputation, retargeting, and better targeting.

How does roof-age and storm targeting actually reduce ad spend?

Most outbound waste is paying to reach roofs that aren't due. Mailing or knocking an entire ZIP means funding contact with thousands of recent roofs that won't need you for years. Targeting only the oldest, most storm-exposed roofs can take direct-mail cost per job from roughly $867 to $260 in the same neighborhood with nearly the same job count, because you stop paying to reach roofs that aren't ready. The spend drops without losing real prospects, since you reach the same likely buyers more cheaply.

Why can't I just use public records or a hail map to find old roofs?

Public records show year built, not roof age, and a re-roof never appears in the county record, so a 1995 house with a 2021 roof looks ancient on paper. Measurement tools give you the roof's dimensions, not its age or condition. A regional hail map tells you a storm crossed a county, not which specific roofs on which streets were actually worn down. House-by-house roof-age estimates and per-roof storm modeling close those gaps so your targeting reaches the homes that are genuinely due.

What should I fix before cutting any channel that produces jobs?

Fix the conversion leaks first, because doing so adds jobs at the same spend and builds a cushion. Put a phone number and click-to-call above the fold on your landing page and make it load fast. Answer inbound leads in under five minutes. Build a three-to-eight touch follow-up cadence over two weeks, since most roofing leads that don't close on the first touch close on a later one. A page that converts at 12% instead of 5% cuts effective CPAJ by more than half with no budget change.

Can I advertise that I'll get a homeowner's roof covered by insurance or waive their deductible?

No. Promising a payout, an approval, a 'free roof,' or a waived, absorbed, or eaten deductible crosses into unlicensed public adjusting and, in many states, insurance fraud, with fines and license consequences. Your legal lane is to inspect, document damage with dated photos, and write an accurate Xactimate-aligned repair estimate, then hand it to the homeowner. The homeowner files the claim and the insurer decides coverage. Don't negotiate or handle the claim, interpret the policy, or represent the homeowner against their insurer.

What metrics should I track each month to stay lean after I've cut?

Per channel, track spend, leads, cost per lead (within a channel over time only), lead-to-quote rate, quote-to-job close rate, cost per acquired job, average job gross profit, and the efficiency ratio (gross profit divided by CPAJ). CPAJ and the efficiency ratio are the two that decide budget; aim to keep the ratio above roughly 4:1. Everything else is diagnostic. When a channel's CPAJ creeps up two months running, audit it before it becomes your next pile of waste.

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. Asphalt Roofing Manufacturers Association — Shingle Performance and Service Lifeasphaltroofing.org
  2. National Roofing Contractors Association (NRCA)nrca.net
  3. Insurance Institute for Business & Home Safety (IBHS) — Hail and Roofing Researchibhs.org
  4. NOAA Storm Prediction Center — Severe Weather and Hail Reportsspc.noaa.gov
  5. National Weather Service — Hail and Severe Stormsweather.gov
  6. Federal Trade Commission — Advertising and Marketing Basics for Businessesftc.gov
  7. Texas Department of Insurance — Public Adjusters and Storm-Chaser Warningstdi.texas.gov
  8. National Association of Insurance Commissioners (NAIC) — Public Adjuster Licensingnaic.org
  9. U.S. Bureau of Labor Statistics — Roofers Occupational Outlookbls.gov
  10. U.S. Census Bureau — American Housing Surveycensus.gov
  11. International Code Council — International Residential Code (IRC)iccsafe.org
  12. U.S. Small Business Administration — Marketing and Sales Guidancesba.gov
  13. Google — Local Services Ads Help (Lead Disputes and Settings)support.google.com
  14. RoofPredictroofpredict.com

Related Articles