Skip to main content

How to Lower Customer Acquisition Cost in Roofing (Without Buying More Leads)

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

Walk into any roofing office and ask the owner what a job costs them, and you'll get a confident answer about shingles, underlayment, labor, dump fees, and overhead. Ask the same owner what it costs to get that job, and the room goes quiet. They'll mumble something about "marketing" being expensive, or that storm season "pays for itself," or that referrals are free. None of that is a number. And if you can't put a number on what it costs to acquire a customer, you can't lower it.

Customer acquisition cost (CAC) is the single most controllable lever in a roofing business, and it's the one most contractors never touch. They obsess over material pricing they can't change, beat up subs on labor, and shop insurance, while quietly burning twenty, thirty, forty cents of every revenue dollar on the cost of finding the next homeowner. That spend hides in plain sight: a sales manager's salary, a canvasser's day rate, a 5,000-piece mailer, a Google Ads invoice, a lead vendor's monthly minimum, the gas in six trucks driving streets that don't need a roof.

The goal here is simple and operational: measure your CAC the way a real business does, find the leaks, and then attack each leak with a specific play. No theory, no vague "build your brand" advice. By the end you'll have the math, the benchmarks, the channel-by-channel fixes, and a targeting method that stops you paying to talk to people who don't need you. We'll be honest about where the easy wins are (your own customer list, almost always) and where the hard ones are (paid leads, almost always).

What customer acquisition cost actually means for a roofer

CAC is the total cost to acquire one paying customer over a period, divided by the number of customers you acquired in that period. Total cost means everything you spent to get the job, not to do the job.

The formula:

CAC = (Total sales + marketing spend in a period) / (Number of new customers signed in that period)

That "total sales + marketing spend" line is where most roofers cheat themselves into a fantasy. They count the Google Ads bill and stop. A real CAC includes:

  • Paid media: Google, Meta, Local Services Ads, paid directories
  • Lead vendor fees and shared-lead purchases
  • Direct mail: design, printing, postage, list cost
  • Canvassing labor: day rates, hourly, gas, mileage, the manager who runs the crew
  • Sales compensation tied to closing (the portion that is acquisition, not delivery)
  • The fraction of office/admin time spent booking, chasing, and qualifying
  • Software that exists to acquire (CRM seats for sales, dialer, data tools)
  • Sponsorships, trade shows, yard signs, vehicle wraps amortized

What you do NOT put in CAC: production labor, materials, permits, the project manager who delivers the job, warranty reserve. Those are cost of goods sold (COGS). Mixing them in makes your CAC look worse and your gross margin look better, and you'll make bad decisions off both numbers.

A worked example

Say last quarter you spent:

Acquisition line item Quarterly spend
Google Ads + LSA $9,000
Direct mail (8,000 pieces) $6,400
Two canvassers (day rate + gas) $11,000
Sales manager (60% of $30k salary = acquisition portion) $18,000
Lead vendor (shared leads) $4,500
CRM + dialer seats $600
Total acquisition spend $49,500

In that quarter you signed 33 new roof contracts. Your blended CAC is $49,500 / 33 = $1,500 per customer.

Now the question that matters: is $1,500 good or bad? It depends entirely on the job. If your average roof sells for $14,000 at a 45% gross margin, that job throws off $6,300 in gross profit. A $1,500 CAC eats 24% of gross profit, leaving $4,800 to cover overhead and net. That's survivable, not great. If the same CAC were chasing $9,000 repairs at 35% margin ($3,150 gross), it would eat 48% of gross profit and you'd be working for almost nothing.

This is the first thing pros get wrong: they evaluate CAC as a flat dollar figure instead of as a percentage of the gross profit on the jobs that CAC produces. A $1,500 CAC is cheap for full replacements and ruinous for small repairs. Your CAC ceiling is set by your average gross profit per job, not by what feels expensive.

The three numbers that govern your CAC

Before you can lower CAC you have to see it as the output of three inputs, because you can only move CAC by moving one of these:

  1. Cost per opportunity — what you pay to generate one qualified conversation (a homeowner who'll let you on the roof or quote them). Lower this by spending less per touch or wasting fewer touches on the wrong houses.
  2. Close rate — the share of opportunities that become signed customers. A 20% close rate doubles your CAC versus a 40% close rate on the same spend. This is usually the cheapest lever to move because it costs nothing to buy.
  3. Job mix and value — what the average won job is worth. Winning bigger, higher-margin jobs from the same spend lowers CAC as a percentage of profit even if the dollar CAC holds.

Write it as a chain:

CAC = Cost per opportunity / Close rate

If an opportunity costs you $300 to create and you close 25% of them, your CAC is $300 / 0.25 = $1,200. Improve the close rate to 35% and CAC drops to $857 with zero extra spend. Cut cost per opportunity to $220 and hold the 35% close, and CAC falls to $629. Stack both and you've nearly halved CAC without buying a single new lead.

Most roofers reflexively reach for lever one ("I need cheaper leads") when levers two and three are sitting right there, free, inside their own operation. That instinct is backwards, and the rest of this walks through why and what to do instead.

Step one: instrument the funnel so you can see the leaks

You cannot lower a number you don't track. The minimum viable measurement for a roofing company is five stages, by source:

  1. Touches / impressions — doors knocked, mail dropped, ad clicks, list records worked
  2. Opportunities — homeowners who engaged (set an inspection, requested a quote, answered the door positively)
  3. Inspections / quotes delivered — you got on the roof or put a number in front of them
  4. Signed contracts
  5. Collected revenue

Every one of those stages should be tagged with where it came from. "Source" is non-negotiable. If you don't know whether a signed job came from the mailer, the door knock, or the old-customer call, you are flying blind and you will keep funding the channel that feels busy instead of the one that prints money.

The cheapest version of this is a spreadsheet with one row per opportunity and columns for source, date, address, stage, contract value, and gross margin. The better version is a CRM where every lead carries a source field and your pipeline stages mirror the five above. The point isn't the tool, it's the discipline of never letting an opportunity enter your world without a source label.

The metrics to pull weekly

Once tagged, compute per channel:

  • Cost per opportunity = channel spend / opportunities from that channel
  • Set rate = opportunities / touches (how good is the channel at starting a conversation)
  • Close rate = signed / opportunities (or signed / inspections, track both)
  • CAC by channel = channel spend / signed customers from that channel
  • Average contract value and gross margin by channel
  • CAC as % of gross profit by channel

That last metric is the one that ends arguments. When you can see that door knocking produces a $700 CAC on $13k jobs while shared leads produce a $1,900 CAC on $11k jobs, you stop debating and start reallocating.

Watch out for the lag trap. Roofing has a long, lumpy sales cycle, especially on retail (non-storm) work where a homeowner may sit on a quote for weeks or months. If you measure CAC over too short a window, you'll punish a channel for spend that hasn't converted yet and reward a channel that's just faster, not better. Measure on a trailing basis (rolling 90 days is sane for retail, 30-45 for storm) and cohort your leads by the month they entered, so you're comparing spend to the jobs it actually produced.

A reallocation example, worked end to end

Numbers make this concrete. Take the quarter from earlier: $49,500 of acquisition spend, 33 customers, $1,500 blended CAC. Now break it out by channel and you find something the blended number hides:

Channel Spend Customers CAC Avg job Gross margin CAC % of GP
Referrals $0 (incentive only, $900) 8 $113 $15,000 45% 1.7%
CRM re-engagement $600 6 $100 $14,000 45% 1.6%
Targeted door knock $11,000 9 $1,222 $13,500 44% 20.6%
Direct mail (broad) $6,400 4 $1,600 $12,800 43% 29.1%
Paid search / LSA $9,000 4 $2,250 $13,000 44% 39.3%
Shared leads $4,500 2 $2,250 $11,000 42% 48.7%
Sales mgr (allocated) $18,000 spread across closed deals

The blended $1,500 was lying to you. Two channels (referrals, CRM) are essentially free customers carrying the whole operation. Two more (shared leads, paid search) are eating nearly half the gross profit on smaller jobs. The broad mailer is mediocre because it's untargeted.

Now reallocate. Cut shared leads entirely ($4,500 back). Cut the broad mailer in half and aim the remaining $3,200 only at aging/storm-worn addresses, which should roughly double its per-piece response. Push the freed-up $5,700 plus a bit of new effort into the two cheapest channels: more aggressive referral asks and a real CRM re-engagement push. If that shift moves even four customers from the expensive channels to the cheap ones and lifts mail efficiency, your blended CAC can drop from $1,500 toward $1,050-$1,150 on roughly the same total spend — a 25-30% improvement bought entirely by where the money points, not how much of it there is.

That's the whole thesis in one table: the cheapest customers are already yours, the most expensive ones are rented, and the middle channels live or die on targeting.

Benchmarks: what good looks like

Benchmarks in roofing are slippery because storm and retail economics differ wildly, and because half the numbers floating around are made up. So treat these as ranges to orient yourself, not gospel, and always validate against your own gross profit.

  • CAC as a share of revenue: healthy residential roofing operations generally keep total sales-and-marketing cost in the high single digits to mid-teens as a percent of revenue. Cross 20% and you're either buying growth deliberately or bleeding.
  • CAC to gross-profit ratio: you want CAC to consume meaningfully less than half the gross profit on the job. Under 25% is strong, 25-40% is workable, over 50% means the job barely pays for itself before overhead.
  • Close rates: a warm, well-qualified opportunity (referral, past customer, a homeowner whose roof is genuinely worn) should close well above a cold shared lead. Cold shared leads commonly close in the low-to-mid teens because you're competing against three to five other contractors who bought the same name. Your own re-engaged customers can close several times higher.

The spread between those close rates is the whole game. The same dollar of effort aimed at a worn-out roof owned by someone who already knows your name is worth multiples of a dollar aimed at a cold, shared, comparison-shopping stranger. Lowering CAC is mostly the discipline of pointing effort at the first kind of homeowner and away from the second.

The biggest hidden leak: paying to talk to roofs that don't need you

Here's the leak nobody puts on the spreadsheet. When you mail 8,000 homes, knock a subdivision, or buy a ZIP-code ad, you are paying to reach every roof in that area — including the ones that were replaced four years ago and won't need you for two decades. A typical established neighborhood might have a meaningful share of roofs that are simply too new to sell. Every piece of mail to those homes, every door your crew knocks on those streets, every gas dollar driving past them is pure waste loaded onto the CAC of the jobs you do win.

Think about what that does to the math. If a third of the doors on your mail route have roofs under eight years old, you've structurally inflated your cost per opportunity by reaching a third more homes than could ever buy. You didn't get worse at selling; you paid to advertise to people who physically have no need.

This is why "buy cheaper leads" is the wrong first move and "reach fewer, better homes" is the right one. You don't lower CAC by spreading the same message wider for less; you lower it by aiming the same spend at the homes where a roof is actually due.

Which raises the obvious question: how do you know which roofs are due before you spend a dollar reaching them?

Why the obvious data sources don't answer "which roof"

Roofers reach for the tools they know, and the tools quietly fail at this:

  • Zillow / county records / Google give you year built, not roof age. A 1985 house with a 2021 re-roof reads as "old" and gets your mailer; you waste the touch. A re-roof is invisible to public property data. Year built is a weak proxy that's wrong exactly where it costs you most.
  • Measurement platforms (the aerial measurement and CAD tools your estimators use) tell you the roof's dimensions and pitch. That's a different category: how to quote a roof you've already decided to chase, not which roof to chase. They don't score age or condition.
  • Shared lead marketplaces sell you a homeowner who raised a hand, then sell that same homeowner to several of your competitors. You're not buying a targeted prospect; you're buying a footrace.
  • Hail maps tell you where a storm passed, drawn as broad swaths. They don't tell you which individual roofs in that swath actually took damaging impacts versus which shrugged it off. A roof's exposure depends on its slope, orientation, the hail's size and trajectory, and the wind behind it, not merely whether the polygon happened to cover the address.

None of these answer the question that actually lowers CAC: of all the roofs in my area, which specific addresses are worn out enough to sell, today?

Where RoofPredict fits: stop reaching roofs that can't buy

This is the gap RoofPredict is built to close. It scores the roofs in an area on two things that drive whether a homeowner needs you: roof age and storm exposure, house by house.

It uses aerial imagery to estimate a roof's age as a range (say, 18 to 22 years, not a fake exact date — nobody can read an install date off a photo, and you should distrust anyone who claims they can). And it models the storms each roof has actually taken — modeling hail and wind impact on the individual roof, factoring slope and orientation, rather than just noting that a storm passed over the ZIP. The output is a ranked picture of your area: the addresses where a roof is genuinely aging out, the addresses a storm likely wore down, and the new roofs you should skip.

What that does to your CAC math is direct:

  • You stop paying to reach the new roofs. Pull the under-eight-year roofs off your mail route and your cost per useful touch drops immediately, because you're not printing and posting to homes that can't buy. Same budget, fewer pieces, more of them landing where there's a real need.
  • Your close rate climbs because the conversation is grounded. A canvasser who knocks knowing the roof is in its third decade, or that it took two hail events, walks in with something true to say instead of a generic pitch. Higher relevance, higher close, lower CAC — and that's the cheapest lever there is.
  • It enriches your own list. Hand it the addresses you already have — your old estimates, your past customers, your mailing list — and it appends a roof-age range and storm signal to each, so you can rank your own book by who's most likely due now. (More on that in the next section, because it's the single highest-ROI move most roofers have.)

Be clear about what it is and isn't. It's a targeting and prioritization layer, not a lead service — it doesn't hand you homeowners who asked to be contacted, and it doesn't resell the same name to your competitors. The roof age is a range, not a guarantee; the storm model gives you odds and exposure, not proof that a specific shingle is cracked. You still have to get on the ladder and verify. What it changes is which ladders you bother climbing, and that's exactly the lever that moves CAC: fewer wasted touches, more grounded conversations, a higher share of your spend pointed at roofs that can actually become jobs. The point isn't to rent more leads — it's to make your own streets and your own customer list into work you control.

Step two: mine the money already in your book (the cheapest customers you'll ever get)

If you do nothing else from here, do this. The lowest-CAC customers in roofing are the ones you've already paid to acquire once: past customers and old, un-won estimates sitting in your CRM. You spent marketing dollars to get those names. Most roofers let them rot.

Old estimates that never closed

Every roofer has a graveyard of quotes that went cold. Homeowner got three bids, picked someone else or did nothing, and you moved on. But "no" in roofing is very often "not yet." The roof you quoted at 16 years old is now 19 or 20. The market moved. They had a baby, sold a different problem, finally have the money.

The play: pull every estimate from the last several years that didn't close. Filter to the ones where the roof was already aging when you quoted it — those are now prime. Reaching out costs you a phone call and your time. There's no new lead cost, no mail, no ad. The homeowner already knows your name and already let you on their roof once. Close rates on this kind of warm re-engagement run far above cold leads, which means the CAC is a fraction of anything you buy.

This is exactly where appending a fresh roof-age range and storm signal to your old estimate list earns its keep: instead of dialing the whole graveyard in random order, you rank it. Call the 21-year-old roof that just took a hail event before you call the one you quoted last spring at nine years old.

Past customers and their neighbors

A homeowner you re-roofed eight years ago is not a customer to forget; they're a referral engine and, eventually, a repeat repair or upgrade. More immediately, the houses around a job you completed are often the same age and took the same storms. If you re-roofed 1420 Oak because it was 20 years old and hail-beaten, the rest of that street's original roofs are likely 20 years old and hail-beaten too. Working outward from completed jobs is one of the highest-yield, lowest-cost targeting moves in the trade, and it gets sharper when you can confirm which neighbors' roofs actually score as due rather than assuming.

The CRM re-engagement workflow

A concrete monthly routine:

  1. Export all open/lost estimates older than 6 months and all completed jobs older than 5 years.
  2. Rank by likelihood the roof is now due: age at time of quote plus elapsed time, storm exposure since, and any notes about "thinking about it."
  3. Take the top slice each week and run a real sequence: a call, a follow-up text, and a single targeted mail piece referencing their specific situation ("the roof we looked at on Oak is getting up there").
  4. Track it as its own channel with its own CAC. You'll almost always find it's your cheapest acquisition source by a wide margin.

This is money you already spent to find these people. Re-engaging them is the closest thing to free customers a roofing business has.

Step three: fix close rate before you touch spend

Close rate is the cheapest lever in the CAC equation because improving it costs you nothing in media. Going from a 22% to a 33% close rate on the same opportunities cuts your CAC by a third. Here's where roofers leak deals.

Speed to lead

In home services, the contractor who responds first wins a disproportionate share. A homeowner who fills out a form or answers a door is in a buying window that closes fast — they're calling other roofers too. If your follow-up to an inbound opportunity is measured in hours or, worse, the next day, you're handing deals to faster competitors and paying full price for the lead anyway. Set a hard rule: every inbound opportunity gets a human contact attempt within minutes during business hours. This single discipline routinely lifts close rates more than any ad optimization.

Walking in with something true

The weakest pitch is generic: "We're doing roofs in the area, want a free inspection?" The homeowner's guard goes up because it's obviously a numbers game. The strongest pitch is specific and true: the rep can speak to this roof — its likely age, the storms it's taken, what that means. Specificity reads as competence and lowers resistance. This is the canvasser-enablement angle: a green rep armed with a real, address-specific talking point sounds like a veteran without having spent five years learning to read a roof from the curb. Better conversations close more, which lowers CAC, and reps who close make money and stay — cutting your rehiring-and-retraining cost, which is its own hidden CAC.

A simple, repeatable sales process

Unstructured sales is high-variance and low-close. Pros standardize:

  • A consistent inspection that documents condition with photos every time
  • A clear, written estimate the homeowner can understand
  • A defined follow-up cadence (most roofing sales need multiple touches; one-and-done leaves money on the table)
  • Good-better-best options so the conversation is about which roof, not whether
  • Financing presented up front, because affordability kills more roofing deals than price does

Don't quote into a vacuum

Track why you lose. "Price" is rarely the real reason; it's the polite reason. Was it speed? Trust? Financing? Did a competitor walk in with a more specific, more credible read on the roof? You can't fix a close-rate leak you haven't diagnosed. Add a required "lost reason" field to every dead deal and review it monthly.

Step four: make each channel earn its CAC

Now the channels. Rank every acquisition channel by CAC-as-percent-of-gross-profit and feed the efficient ones while you fix or cut the rest. Here's the channel-by-channel reality.

Referrals and past customers — your floor

The lowest CAC available, and most roofers run it on autopilot, which means barely at all. Systematize it: ask for the referral at the moment of highest satisfaction (final walkthrough, not a postcard three months later), make it easy (a card, a text link), and consider a real incentive. A referred customer arrives pre-trusted and closes high. If referrals are under a quarter of your jobs, you have a process gap, not a demand gap.

Direct mail — efficient only if precisely targeted

Mail still works in roofing, but it lives or dies on the list. Blanketing a ZIP is how you get a 0.5% response and a brutal CAC, because most of those homes don't need a roof. Mailing a tight list of homes whose roofs are genuinely aging or storm-worn can lift response and slash cost per opportunity, because every piece has a chance of landing on a real need. The fix isn't "mail more" or "mail less" — it's mail the right addresses. Pull the new roofs off the list before you print. Trim the route to the homes that score as due. Same budget, far less waste, lower CAC.

Door knocking — high-yield when the doors are chosen

Canvassing is one of the most cost-effective channels in roofing if your crew's day is spent on streets that need roofs. A canvasser working a random subdivision burns most of the day on new roofs and uninterested homeowners. The same canvasser working a route ranked by roof age and storm exposure has more real conversations per hour, which is the entire CAC equation for door knocking: opportunities per labor-hour. Don't pay crews to walk past the new roofs. Hand them the route, not the ZIP.

Search ads capture homeowners actively looking, which is high-intent and worth it — but it's also where competitors bid you up and where loose targeting bleeds money on irrelevant clicks. Tighten match types, add negative keywords (you're not a DIY or supply-house searcher's destination), make sure you're showing up for repair and replacement intent in your actual service area, and put speed-to-lead behind it so you don't pay for clicks you then fail to follow up on. Local Services Ads (the Google Guaranteed pay-per-lead unit) can be efficient because you pay per lead and can dispute junk, but ride the dispute process hard or your effective CAC creeps.

Shared lead marketplaces — the most expensive customers you can buy

This is usually the worst CAC in the building, and roofers keep buying it because it feels like "leads." A shared lead is sold to several contractors at once. You're not buying a prospect; you're buying entry into a footrace where the homeowner is now jaded from four other calls. Close rates crater, and your effective CAC (lead cost divided by your low close rate) balloons. If you use them at all, treat them as overflow, measure their true CAC ruthlessly, and never let them become your primary pipeline. Owning your targeting — your own streets, your own list — beats renting the same homeowner your competitors are also renting.

Storm chasing and catastrophe response — feast, famine, and the swarm

Storm work can be lucrative, but the economics are volatile: you wait on weather you don't control, and when it comes, every out-of-town crew floods the same ZIP and bids the same roofs. Your CAC in a hit area is dragged up by the swarm and by all the roofs in the storm polygon that didn't actually take damaging impacts. The advantage goes to whoever can tell which specific roofs the storm actually wore out, versus knocking the whole swath. And the deeper fix for storm-dependent roofers is building a pipeline that doesn't depend on the next storm — working aging roofs in your area in the quiet months so you're not betting the year on the sky.

A short note on storm and insurance work, done legally

Storm-restoration roofers can drive CAC down by being genuinely useful to a homeowner after a storm — but there's a hard line you cannot cross, and crossing it is both illegal in many states and a fast way to lose your license.

What you, as a roofer, may do: inspect the roof, document damage with photos and measurements, and prepare a written repair estimate stating the facts about the scope of work you would perform. You can hand the homeowner clean documentation of what you found.

What you may not do, for a fee: negotiate, adjust, or handle the homeowner's insurance claim; interpret what their policy covers; promise a payout or that the claim will be approved; waive, absorb, or "eat" their deductible; advertise a "free roof"; or represent the homeowner against their insurer. Those acts are public adjusting or worse, and they're regulated for a reason. The homeowner files the claim; the insurer decides it; you document and you do the work you're contracted for. Stay on the documentation-and-estimate side of the line and you capture the storm-driven demand without the legal exposure. Targeting which roofs likely took real damage helps you spend your storm-season effort where there's a legitimate claim to document — not promise outcomes you can't control.

Step five: build the operating cadence that keeps CAC down

Lowering CAC once is a project. Keeping it low is a habit. Run this cadence:

Weekly

  • Pull cost per opportunity, close rate, and CAC by channel for the trailing window.
  • Flag any channel whose CAC-to-gross-profit ratio is drifting past your threshold.
  • Confirm every new opportunity has a source label and a lost-reason field where applicable.
  • Check speed-to-lead: what was your median time to first contact on inbound? If it's slipping, fix it now.

Monthly

  • Run the CRM re-engagement routine: rank old estimates and past customers by likelihood-due and work the top slice.
  • Refresh your targeting: which streets and addresses are scoring as due now, and which channels are pointed at them?
  • Review lost-reason data and pick one close-rate leak to fix.
  • Reallocate budget from the worst-CAC channel toward the best, in small, measured steps.

Quarterly

  • Recompute blended CAC and CAC by channel against gross profit.
  • Kill or fix any channel that can't get its CAC under your gross-profit threshold.
  • Re-baseline benchmarks against your own trailing data, not industry rumor.

A simple scorecard

Keep one page everyone can see:

Metric This period Target Trend
Blended CAC
CAC as % of gross profit
Cost per opportunity (by channel)
Close rate (by channel)
Speed to first contact (median)
% of jobs from owned channels (referral + CRM)

That last row is the north star. The higher the share of your jobs that come from channels you own — referrals, past customers, your re-engaged list, your own targeted streets — versus channels you rent — shared leads, broad paid media — the lower and more stable your CAC will be. Roofers who own their pipeline ride out slow seasons and storm droughts; roofers who rent it are at the mercy of lead prices and the weather.

Don't forget lifetime value: CAC is only half the ratio

CAC never lives alone. The number that actually tells you whether your acquisition is healthy is the relationship between what a customer costs to get and what they're worth over the life of the relationship — lifetime value (LTV). Roofers underrate LTV because they think of a roof as a once-in-twenty-years event. It isn't.

A single re-roof customer is worth far more than the contract you signed:

  • Repairs and maintenance between now and the next replacement (flashing, a few blown shingles after a wind event, a vent boot).
  • Other trades if you do gutters, siding, attic insulation, or solar — the same trusted relationship sells the next product with near-zero acquisition cost.
  • Referrals to neighbors and family, each of which arrives at a CAC near zero.
  • The neighbors themselves, whose roofs are often the same age and took the same storms, reachable off the back of one satisfied job.
  • The eventual second roof, two decades out, if you stay in their mind and their mailbox.

When you load all of that into LTV, a customer who looked like a $6,300-gross one-time job is worth materially more over time. That changes what CAC you can rationally afford. A channel that produces loyal, referral-generating customers can justify a higher CAC than a channel that produces one-and-done price shoppers, even at the same dollar CAC. The healthiest roofing businesses watch the LTV-to-CAC ratio, not CAC in isolation, and they bias spend toward channels that produce customers who come back and refer.

This is also the strongest argument for harvesting your own book. A past customer has already proven they have high LTV — they bought, and they know you. Re-engaging them isn't merely a low-CAC play; it's a high-LTV, low-CAC play, which is the best square on the board.

Attribution: knowing which channel actually earned the job

None of the channel math works if you can't tell where a job came from, and roofing attribution is genuinely hard because the path is messy. A homeowner sees your wrap on a truck, gets your mailer two weeks later, googles your name, and calls. Which channel "earned" that job? If you credit only the phone call's source (search), you'll defund the mailer and the truck wrap that actually did the work.

You don't need a data-science team. You need a few honest habits:

  1. Ask every caller how they heard about you, and log it. It's imperfect (people forget, people say "the internet"), but it's directional and free.
  2. Use distinct response mechanisms per channel where you can — a specific phone number or landing page on a mailer, a unique offer code on door hangers — so some sources self-identify.
  3. Credit first touch and last touch when you can. The mailer that created awareness and the search that captured the click both mattered. Crediting only one starves the other.
  4. Accept that referrals and brand are under-measured, not unimportant. When a chunk of your jobs come in "just heard you're good," that's the compounding return on doing good work and staying visible — protect it even though it's hard to put in a spreadsheet cell.

The practical rule: tag what you can, ask what you can't, and never let a channel get defunded purely because it's harder to measure than the one that happened to be last in the chain.

Common mistakes that quietly wreck roofing CAC

  • Counting only the obvious spend. Leaving canvasser labor, sales comp, and admin time out of CAC produces a flattering, useless number. Count it all.
  • Judging CAC in flat dollars. $1,500 is cheap for a $14k replacement and ruinous for a $4k repair. Always measure against gross profit per job.
  • Funding the busy channel, not the profitable one. Door knocking feels productive; that's not the same as a low CAC. Let the numbers, by source, decide.
  • Buying more leads to fix a close-rate problem. If you're closing 15%, doubling your lead spend doubles your waste. Fix the close rate first; it's free.
  • Mailing and knocking the new roofs. The single most common structural leak: paying to reach homes that physically cannot need you for fifteen more years.
  • Letting old estimates and past customers rot. The cheapest customers you'll ever get are already in your CRM, paid for once and ignored.
  • Measuring CAC over too short a window. Retail roofing converts slowly; a 7-day read punishes patient channels and rewards fast junk.
  • Crossing the insurance line. Promising payouts, eating deductibles, or advertising "free roofs" isn't a CAC strategy; it's a license risk.
  • Treating roof age like an exact date. Public records show year built, not roof age; a re-roof is invisible. Use a real age signal and treat it as a range.

Putting it together: a 90-day plan to lower your CAC

Days 1-15 — Measure. Build the source-tagged funnel. Compute blended CAC and CAC by channel against gross profit. You'll almost certainly find one channel quietly hemorrhaging and one (usually referrals or CRM) quietly carrying you.

Days 16-30 — Harvest the cheap wins. Run the CRM re-engagement routine on old estimates and past customers. Install a strict speed-to-lead rule. Add lost-reason tracking. These cost nothing and move CAC immediately.

Days 31-60 — Fix the targeting. Stop reaching new roofs. Rank your mail and knock routes by which roofs are actually due — by age and storm exposure, address by address — and append those signals to your own list so your re-engagement is ranked, not random. Cut the worst-CAC channel's budget and feed the best.

Days 61-90 — Systematize. Lock in the weekly/monthly/quarterly cadence and the scorecard. Push the share of jobs from owned channels up. Re-baseline your benchmarks against your own data.

Lowering customer acquisition cost in roofing isn't about a clever ad or a cheaper lead source. It's about three things you fully control: measuring honestly, closing better, and pointing every dollar of effort at the roofs that are actually due instead of the whole street. Do that, and the next job stops being something you rent from a lead site or wait on a storm for, and starts being something you own — repeatably, storm or not.

If the targeting piece is where you're stuck — figuring out which specific addresses in your area are worn out enough to sell, and which to skip — that's the exact problem RoofPredict was built to solve: a roof-age range and a storm model per house, plus enrichment of your own customer list, so your spend lands on the roofs that can become jobs. Book a demo, hand us a street or a roof you already know, and judge for yourself whether we called it right before you change a thing about how you sell.

FAQ

What is a good customer acquisition cost for a roofing company?

There's no single dollar figure, because it depends on the job. The right way to judge CAC is as a share of the gross profit on the jobs that CAC produces. Under 25% of gross profit is strong, 25-40% is workable, and over 50% means the job barely pays for itself before overhead. A $1,500 CAC is cheap for a $14,000 full replacement at 45% margin and ruinous for a small repair. Measure CAC against gross profit per job, not as a flat number.

How do I calculate my roofing customer acquisition cost?

Add up everything you spent to get jobs over a period — paid ads, lead fees, direct mail, canvasser labor and gas, the acquisition portion of sales salaries, sales software, sponsorships — and divide by the number of new customers you signed in that period. Do not include production labor, materials, or permits; those are cost of goods sold, not acquisition. Then break it down by channel so you can see which source is efficient and which is bleeding.

Why is my roofing CAC so high even though I'm getting leads?

Usually one of two reasons. First, a low close rate: CAC equals cost per opportunity divided by close rate, so closing 15% instead of 30% doubles your CAC on the same spend. Second, wasted reach: if you mail or knock entire ZIP codes, a large share of those roofs are too new to buy, and you're paying to reach homes that physically can't need you. Fix the close rate (free) and tighten targeting to roofs that are actually due before you spend more on leads.

What's the cheapest way to get roofing customers?

Your own book. Past customers, the houses around jobs you've completed, and old estimates that never closed are the lowest-CAC customers in roofing because you already paid to acquire those names once. Re-engaging an old estimate where the roof has aged another few years costs a phone call, not a lead fee, and closes far higher than a cold shared lead. After that, referrals and tightly targeted door knocking are typically your most efficient channels.

Are shared roofing leads worth buying?

They're usually the most expensive customers you can acquire. A shared lead is sold to several contractors at once, so you're paying to enter a footrace against competitors for a homeowner who's already fielding multiple calls. Close rates crater, which means your effective CAC — lead cost divided by your low close rate — balloons. If you use them, treat them as overflow, measure their true CAC ruthlessly, and never make them your primary pipeline.

How does targeting roof age lower customer acquisition cost?

Every piece of mail, door knock, and ad dollar spent reaching a roof that's too new to replace is pure waste loaded onto the CAC of the jobs you do win. In a typical neighborhood a meaningful share of roofs are too new to sell. If you pull those addresses off your route and aim the same budget at roofs that are genuinely aging or storm-worn, your cost per useful touch drops and your conversations get more relevant, which lifts close rate. Both effects lower CAC without buying a single new lead.

Can't I just use Zillow or county records to find old roofs?

No. Those sources show year built, not roof age, and a re-roof is invisible to public property data. A 1985 house with a 2021 re-roof reads as 'old' and gets your mailer anyway, wasting the touch. Year built is a weak proxy that's wrong exactly where it costs you most. You need a signal based on the actual roof — which is why a roof-age range estimated from current aerial imagery, treated as a range and not an exact date, is more useful for targeting.

How fast do I need to follow up with a roofing lead?

Within minutes during business hours. In home services the contractor who responds first wins a disproportionate share, because the homeowner is in a short buying window and calling other roofers too. Slow follow-up means you pay full price for the lead and then hand the deal to a faster competitor. A strict speed-to-lead rule is one of the cheapest ways to lift close rate, and lifting close rate is the cheapest way to lower CAC.

Does storm and insurance work lower or raise my CAC?

It can do either. Storm work is volatile — you wait on weather you don't control, and when it hits, out-of-town crews swarm the same ZIP and bid the same roofs, dragging your CAC up. The edge goes to whoever can tell which specific roofs actually took damaging impacts versus the whole storm swath. Just stay legal: you may inspect, document damage, and write a repair estimate, but you may not handle or negotiate the claim, interpret coverage, promise a payout, eat a deductible, or advertise a 'free roof.'

Should I cut marketing spend to lower my CAC?

Not as a first move. The goal isn't to spend less, it's to waste less. Start by measuring CAC by channel against gross profit, harvesting your own list, and fixing close rate — all of which lower CAC without cutting reach. Then reallocate budget from your worst-CAC channel to your best in small steps. Blindly cutting spend can starve a channel that's actually efficient; the fix is precision, not austerity.

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. NRCA — National Roofing Contractors Associationnrca.net
  2. IBHS — Insurance Institute for Business & Home Safety (hail and wind research)ibhs.org
  3. NOAA National Weather Service — Storm Prediction Centerspc.noaa.gov
  4. NOAA National Centers for Environmental Information — Storm Events Databasencdc.noaa.gov
  5. U.S. Census Bureau — American Housing Surveycensus.gov
  6. International Code Council — International Residential Code (IRC)iccsafe.org
  7. U.S. Bureau of Labor Statistics — Roofers Occupational Outlookbls.gov
  8. Federal Trade Commission — Advertising and Marketing Guidanceftc.gov
  9. U.S. Small Business Administration — Marketing and Salessba.gov
  10. Texas Department of Insurance — Public Insurance Adjusterstdi.texas.gov
  11. NAIC — National Association of Insurance Commissionersnaic.org
  12. Verisk — Xactimate (insurance repair estimating)verisk.com
  13. USPS — Every Door Direct Mail (EDDM)usps.com
  14. RoofPredictroofpredict.com

Related Articles