Local Services Ads Cost Per Lead for Roofing: What You'll Actually Pay and How to Cut It
On this page
If you run a roofing company and you've turned on Google's Local Services Ads (LSA), the question that keeps you up at night isn't whether the leads come in. It's what each one costs once you back out the junk, the wrong-number calls, the tire-kickers who wanted a $200 patch, and the homeowner who booked three other roofers the same afternoon. The headline number Google shows you in the dashboard is rarely the number that matters. The number that matters is what you paid for every job you actually signed.
What follows walks through what roofers are really paying per lead on LSA right now, why the spread is so wide (one shop pays $25, another pays $300 in the same metro), the mechanics that drive your number up or down, how the dispute system works when you get charged for a garbage lead, and — most importantly — how to stop measuring cost per phone call and start measuring cost per signed contract. The pay-per-lead model is seductive because it feels like you only pay for results. But a "lead" in LSA terms is just a contact. Whether that contact becomes revenue is entirely on your follow-up, your targeting, and how well you measure the back half of the funnel.
A quick honesty note up front: nobody can hand you a single "roofing LSA cost per lead" figure and have it mean anything. Pricing is auction-driven, set per-metro, and changes month to month. What you'll get below are realistic ranges, the variables that move you within those ranges, and a method to calculate your own true number — which is the only one that should drive your budget.
What Local Services Ads actually are (and how the charge works)
Local Services Ads are the listings that sit at the very top of Google search results — above the regular text ads and above the map pack — when someone searches a service-plus-location query like "roof repair near me" or "roofer Tulsa." They show your business name, your Google review rating, your service area, and a badge: either Google Guaranteed or Google Screened. For roofing, the relevant one is Google Guaranteed.
The defining feature of LSA is the billing model. Unlike standard Google Ads, where you pay per click whether or not the person ever contacts you, LSA charges you per lead — a phone call long enough to be a genuine inquiry, a message through the ad, or a booking. You don't pay when someone just sees your ad or taps and bounces. That's the pitch, and for a high-ticket trade like roofing it's a reasonable one. A single won re-roof can be worth $9,000 to $30,000 in residential and far more in commercial, so even a pricey lead can pencil out if you close.
To run LSA as a roofer you have to clear the Google Guaranteed verification: a business background check, owner identity verification, a license check against your state contractor board, and proof of general liability insurance. That gate is part of why LSA leads tend to convert better than raw web-form leads — the homeowner sees a green check badge and trusts that Google vetted you. The badge also brings Google's backing: if a customer is unhappy with covered work booked through LSA, Google may reimburse them up to a lifetime cap (commonly cited around $2,000 in the U.S., set per-customer not per-job). That guarantee is a consumer-trust mechanism, not a warranty on your workmanship, and it carries specific exclusions — read Google's coverage terms before you lean on it in a sales conversation.
One more setup detail roofers underestimate: LSA pulls heavily from your broader Google footprint. Your Business Profile reviews, your hours, your service area, and your responsiveness history all feed the same machine. LSA isn't a standalone ad you flip on; it's the paid surface on top of your whole local-search reputation. Treat it that way and the cost math gets a lot more controllable.
Where the charge actually triggers
Understanding the billing trigger is the first step to controlling cost. You are charged when:
- A customer calls through your ad and the call lasts long enough to count as a lead (Google uses call duration plus other signals), OR
- A customer sends a message or booking request through the LSA interface.
You are not charged for:
- Calls that are clearly spam or robocalls.
- Calls about a service you don't offer.
- Customers outside your declared service area.
- Calls from another business soliciting you.
- Repeat contacts from the same customer within a short window for the same job.
Those exclusions are the basis of the dispute system, which we'll get to. The practical point: Google's algorithm decides in the first instance whether a contact is a billable lead, and it errs toward billing. Your job is to catch the misfires and dispute them — every week, as a routine, not when you happen to remember.
How LSA differs from the lead sources you already know
If you've bought roofing leads before, you've probably used a shared-lead marketplace or run standard search ads. LSA is a different animal on three axes that matter for cost:
- Exclusivity. A marketplace lead is typically sold to three to five roofers at once, so you're in a footrace to the doorstep before you've even spoken. An LSA lead is yours — the homeowner contacted you specifically. Exclusive contacts close at a far higher rate, which is why a higher per-lead price can still produce a lower cost per signed job.
- Intent timing. Search-based channels (LSA and standard Search) catch a homeowner at the exact instant they decide to look. That's high intent, but it's also the instant every competitor is bidding for. Marketplaces and your own outreach decouple from that instant.
- What the badge does. The Google Guaranteed badge is a trust accelerator that the other paid channels simply don't have. A homeowner comparing three roofers will lean toward the one Google vetted. That trust is part of what you're buying.
Keep those differences in mind, because the single biggest analytical error roofers make is comparing these channels on cost per lead instead of cost per won job. We'll hammer that point repeatedly, because it's the one that actually moves money.
The real cost-per-lead ranges for roofing
Here's the honest version. Across U.S. roofing markets, LSA cost per lead generally lands somewhere in the $25 to $150 band for the typical residential repair/replacement inquiry, with plenty of markets and moments pushing into $150 to $300+ during competitive storm-season spikes or in dense metros. A rural or low-competition market might genuinely see $15 to $40. A hyper-competitive coastal metro right after a hail event might see $200+ briefly. These are ranges to reason with, not quotes — your account will tell you your real number within a few weeks of honest tracking.
The table below frames the drivers rather than promising a price, because the price is yours to discover in your own account.
| Factor | Pushes cost per lead DOWN | Pushes cost per lead UP |
|---|---|---|
| Market competition | Few verified roofers bidding | Dense metro, many Guaranteed roofers |
| Season | Off-season, calm weather | Post-storm surge, peak spring/summer |
| Review profile | High count, 4.7+ rating, recent reviews | Few reviews, lower rating, stale |
| Responsiveness | Answer fast, high booking rate | Missed calls, slow message replies |
| Service area size | Tight, well-defined | Broad, includes low-intent zones |
| Budget pacing | Weekly budget, steady | Aggressive caps that exhaust early |
| Job type targeting | Replacement-focused service list | Broad list pulling in tiny repairs |
| Dispute hygiene | Actively disputing junk leads | Eating every charge |
Notice that more than half of these levers are things you control directly. The market and the season you can't change. Everything else you can — and the roofers who win on cost are the ones who treat every controllable lever as a weekly habit.
Why two roofers in the same ZIP pay wildly different prices
LSA ranking — and therefore effective cost — is driven by a blend of: your review score and review count, your responsiveness (answer rate and speed), your proximity to the searcher, your business hours, and whether you're flagged as a high-quality, low-complaint provider. Google rewards roofers who answer the phone and book the job with better placement, which tends to lower effective cost per lead because you're winning the high-intent contacts and Google trusts you with more of them.
So the roofer paying $30 and the roofer paying $130 in the same market usually differ on review velocity and answer rate, not luck. A shop that answers 90% of calls within three rings and replies to LSA messages in minutes earns cheaper, better-placed leads over time. A shop sending half its calls to voicemail trains the algorithm to deprioritize it and pays more for worse contacts. The mechanism compounds: better answers earn better placement, which earns higher-intent leads, which close better, which earn more trust. The reverse compounds too, which is why a neglected LSA account slowly gets more expensive even when you change nothing.
Seasonality and the storm-spike problem
Roofing demand is violently seasonal and event-driven, and LSA pricing tracks it closely. Two patterns to plan around:
- The annual curve. Spring through early fall is peak. As demand climbs, more roofers bid, and your cost per lead drifts up even in calm weather. Off-season, fewer competitors are bidding and your cost per lead can fall meaningfully — which is also when many roofers foolishly switch LSA off and miss cheap, motivated leads.
- The storm spike. A hail or high-wind event injects a wall of demand into a metro within days. Every Guaranteed roofer pours budget in at once, and cost per lead can double or triple for a week or two. The cruel part: that's exactly when you most want volume and exactly when each contact is most expensive and most likely to be shopping five competitors.
You can't opt out of the auction's seasonality while you depend on the auction. The only durable fix is to add a channel where you set the cost of reaching homeowners regardless of what the auction is doing that week — which is the back half of this discussion.
The number nobody calculates: cost per signed job
Cost per lead is a vanity number. It feels precise, it sits right there in the dashboard, and it's almost useless on its own. The figure that should drive every budget decision is cost per won job (sometimes called customer acquisition cost, or CAC). Here's the difference, with real arithmetic.
Say your LSA dashboard shows 40 leads last month at an average of $65 each. Spend: $2,600. The dashboard's implied story is "roofing leads cost me $65." Now walk it down the funnel:
- 40 billed leads
- minus 7 you disputed and got credited (so really 33 leads you paid for, about $2,145 net after credits)
- minus 9 that were repair calls under your minimum, wrong area, or never picked up the phone again
- = 24 genuine opportunities
- of which 14 booked an inspection
- of which 9 you actually inspected (5 ghosted or canceled)
- of which 4 signed
Four signed jobs on $2,145 net spend = $536 cost per won job. If your average roofing job nets, say, $4,500 in gross profit, that's a strong return and you should pour more money in. If your average job nets $900 because you're doing a lot of small repairs, $536 CAC is bleeding you, and you need to fix targeting or close rate before spending another dollar.
That $65 "cost per lead" told you none of this. The $536 cost per won job told you everything.
The funnel you must instrument
To get to cost per won job you have to track six stages and the drop-off between each:
- Billed leads (from LSA) — and net-of-credits after disputes.
- Qualified opportunities — real homeowner, real roof, in area, job above your minimum.
- Booked inspections — actually on the calendar.
- Completed inspections — you showed up and looked at the roof.
- Proposals sent — with a number attached.
- Signed jobs — with contract value recorded.
If any one of these isn't being recorded with the original LSA lead's identity carried through, your CAC math is guesswork. The most common failure is the stage-1-to-2 handoff: the lead comes in, somebody scribbles it on a sticky note or it lands in a generic inbox, the source is lost, and three weeks later nobody can say whether that $9,000 job came from LSA, a yard sign, or a referral. When source attribution dies at the front door, you can't tell which channel to fund — so you fund on feelings, which is how good money chases bad channels.
Two numbers that turn CAC into a decision
Once you have cost per won job, two more numbers make it actionable:
- Gross profit per job. Not revenue — profit after materials and crew. Divide it by CAC to get your return ratio. A 6:1 or better on a channel says "spend more." A 2:1 says "fix the funnel before scaling." Below 1:1 says "stop."
- Close rate by stage. Where exactly is the funnel leaking? If you book lots of inspections but sign few, the problem is your proposal or your pricing, not your ads. If you get leads but rarely book, the problem is the phone. Spending more on ads to paper over a phone problem is the most expensive mistake in this trade.
The point of all this measurement isn't accounting for its own sake. It's that the same $2,600 spent against a fixed funnel produces wildly different results depending on which leak you fix first — and you can't see the leaks without the funnel.
Twelve levers to lower your roofing LSA cost per lead
This is the operational core. Work these in order of impact.
1. Answer the phone — fast, live, every time
This is the single biggest lever and it's free. LSA leads are mostly phone calls, and roofing buyers in an active-need moment (a leak, a post-storm worry) call multiple roofers and hire whoever answers and sounds competent. Missed calls don't only lose that job; they degrade your LSA ranking, which raises your cost on every future lead. Set a hard rule: a live human answer during business hours, a real call-back system after hours, and replies to LSA messages within minutes. If you can't staff that, a roofing-literate answering service that actually books inspections is worth more than another $1,000 of ad budget.
2. Build review velocity, not only review count
Google weights recency and volume. A roofer with 180 reviews averaging 4.8, with fresh ones every week, gets cheaper, better-placed leads than one stuck at 22 reviews from two years ago. Put a review request into your job-close workflow — a text with a direct link the day after final inspection — and you'll compound this for free over a season. Aim for a steady drip, not a one-time blast that looks artificial and can get filtered.
3. Tighten your service area to high-intent geography
A sprawling service area drags in low-intent, low-value contacts and dilutes your placement near your real base. Pull your service area in to the ZIPs where you genuinely want jobs and can service profitably. You'll pay for fewer junk leads and rank stronger where it counts. Re-expand deliberately, and only when your close rate in the core is healthy.
4. Curate your service-type list toward replacement
LSA lets you select the job types you want to receive. If "repair" and tiny gutter jobs keep pulling in $300 tickets that eat a crew's day, narrow the list toward inspection and replacement work. You'll trade lead volume for lead value — exactly the trade that improves cost per won job even as it nudges cost per lead up.
5. Dispute every illegitimate charge — systematically
More on the mechanics below, but treat disputes as a weekly routine, not an afterthought. Roofers who dispute diligently routinely recover a meaningful slice of monthly spend. Every credited dispute directly lowers your net cost per real lead, and it sharpens your channel comparison because you're comparing real spend, not gross spend inflated by spam.
6. Set business hours that match your answer capacity
If you only receive leads when someone can answer, you stop paying for contacts you can't service. Don't run LSA at 9pm if calls go to voicemail at 9pm — you'll pay for leads and lose them, and the missed-contact signal hurts your ranking. Align ad hours to live-answer hours, then extend hours only when you've extended your ability to answer.
7. Use weekly budgets and watch pacing
LSA budgets are set weekly. If you blow through your cap on Tuesday, you're invisible the rest of the week — and the leads you bought on the crowded early days may be lower intent. Smooth your pacing and adjust seasonally; raise the cap going into spring and storm season, ease off in dead weeks. Erratic pacing teaches the system nothing and wastes your peak days.
8. Keep your Business Profile and photos current
LSA pulls trust signals from your broader Google presence. A complete profile with current photos of real roofing work, accurate hours, and an active Q&A section reinforces the quality signals that earn cheaper placement. Stale, sparse profiles quietly raise your effective cost.
9. Respond to every review, especially the bad ones
A thoughtful, non-defensive reply to a 2-star review does more for your trust profile than ten generic "thanks!" replies to 5-stars. Google and homeowners both read response behavior as a quality signal, and a calm, specific reply to a complaint reassures the next ten readers far more than a perfect rating with no engagement.
10. Don't let LSA and standard Google Ads overlap each other blindly
LSA sits above search ads, and many roofers run both. That can be right, but track them separately — LSA's pay-per-lead and Search's pay-per-click produce different cost-per-job numbers, and you want budget flowing to whichever wins on cost per signed job in your market, not whichever shows the lower headline number. Run both deliberately, with separate measurement, or you'll subsidize the weaker one without knowing it.
11. Record and review your calls
You can't fix a close rate you can't hear. Listen to a sample of LSA calls weekly. You'll find missed bookings, weak handling of price questions, and reps who never actually ask for the inspection. Coaching the phone is often a bigger CAC win than any ad-setting change, because it lifts every stage downstream at once.
12. Carry the lead source all the way to the contract
This is the meta-lever. If you can't tie a signed job back to the LSA lead that started it, you can't compute cost per won job, and you'll over- or under-fund the channel on gut feel. Stamp the source at first contact and keep it immutable through the pipeline. This is exactly where a real lead system beats a spreadsheet — covered below.
How LSA lead disputes actually work
Getting charged for a bad lead is normal; eating the charge is optional. Google lets you dispute leads that fall outside billable criteria, and the credits add up over a season. Here's the working method.
What you can legitimately dispute
- Spam / robocalls / solicitations — including other businesses pitching you.
- Wrong service — they wanted a service you don't provide.
- Out of service area — the job address is outside your declared geography.
- No actual job / not a real lead — wrong number, butt-dial, hung up immediately.
- Duplicate — same customer, same job, billed more than once in a short window.
You generally cannot dispute a lead just because you didn't close it, the customer chose a competitor, or the job was smaller than you'd like. "Quality of fit" isn't a valid reason; "this contact didn't meet the billable criteria" is. Knowing that line keeps your disputes honest and your account in good standing.
A disciplined dispute workflow
- Tag at intake. When a lead comes in, whoever handles it notes whether it's real, spam, wrong-area, wrong-service, or a duplicate. Do this in the moment, while the context is fresh — a week later nobody remembers.
- Pull the weekly report. Once a week, open the LSA leads list and reconcile it against your intake tags.
- Dispute through the lead detail. In the LSA dashboard, open the lead, choose the reason, and submit. Be specific and accurate.
- Log the outcome. Track which disputes are credited so you can see your real net spend and spot patterns — a cluster of spam calls at a certain hour may point to a number-scraping bot you can block.
- Watch the deadline. Disputes have a submission window after a lead is charged. Miss it and the credit is gone, which is the whole reason the weekly cadence matters.
Keep your dispute reasons honest. Over-disputing legitimate leads can flag your account and, worse, trains you to believe your real cost is lower than it is. The goal is an accurate net number, not a gamed one — because that net number is what you'll use to compare LSA against every other channel.
What disputes tell you about your account
Patterns in your disputes are free diagnostics. A high spam rate may mean your phone number is exposed somewhere it's being scraped. A lot of out-of-area contacts means your service area is drawn too wide. A pile of wrong-service calls means your service-type list is too broad and pulling in jobs you don't want. Treat the dispute log as a tuning instrument, not merely a refund mechanism, and it'll point you at the settings that are actually costing you.
LSA vs. standard Google Ads vs. lead marketplaces for roofing
Roofers usually aren't choosing one channel; they're allocating across several. Knowing what each is good at keeps you from misreading a cost-per-lead number out of context.
| Channel | You pay for | Typical strength | Watch-out |
|---|---|---|---|
| Local Services Ads | Qualified contacts (calls/messages) | Top placement, trust badge, high intent | Auction-priced, junk leads to dispute, limited targeting control |
| Standard Google Ads (Search/PMax) | Clicks (and conversions you optimize toward) | Granular keyword/geo control, scale | You pay for clicks that never contact you; needs landing pages and management |
| Lead marketplaces (shared leads) | Leads sold to several roofers | Volume on demand | Same lead sold three to five times; price war at the door; lowest close rate |
| Direct outreach (mail, canvassing, your own targeting) | Production cost, not per-lead | You own the list and the timing; exclusive | Requires a targeting system and field execution |
The trap is comparing channels on cost per lead. A $30 shared-marketplace lead sold to four other roofers can have a worse cost per won job than a $120 LSA lead that's exclusive and pre-trusted by the badge. Always normalize to cost per signed contract before you reallocate a dollar.
There's also a structural point worth sitting with. LSA, Search, and marketplaces are all inbound and reactive — you're bidding to be there at the exact moment a homeowner happens to search, against everyone else bidding for that same moment. That auction is why prices spike precisely when demand spikes (post-storm), which is the worst time to be fighting over price. The roofers with the most stable, lowest blended cost per job don't rely only on catching searchers. They also go find the homes that are due for a roof before those homeowners ever start searching. That's a different motion entirely, and it's where you can step out of the auction.
When LSA is the right lead source — and when it isn't
LSA earns its keep when you have a tight, profitable service area, you answer the phone well, and you sell replacement-grade jobs where one win pays for many leads. It struggles when your service area is too broad, your answer rate is poor, or your average ticket is small — because then the per-lead price overwhelms the per-job margin. Before scaling LSA, be honest about which situation you're in. The fastest way to make LSA "too expensive" is to run it on top of a leaky funnel and blame the channel.
Stop renting the moment: own your targeting
Everything above is about competing better inside an auction you don't control. The bigger lever is to generate demand you do control — to identify the homes in your service area most likely to need a roof and reach them directly, on your timeline, at a cost you set up front instead of one an auction sets for you.
This is where RoofPredict fits, and it's worth being precise about what it actually does rather than hand-waving at "better leads."
RoofPredict scores every home in a service area you draw on a hex-map (or import by CSV address list) into roof-age bands — recent, mid-life, due, and overdue — and layers per-roof storm exposure on top, producing a ranked target audience: a house-by-house list of which roofs are most likely due, each with a "why this home" evidence chain you can stand behind. Honest framing matters here, and it's built into the product: roof age is estimated as a range, not an exact date, and storm exposure is odds based on history, not proof that a specific roof is damaged. You're prioritizing where to spend attention, not claiming certainty about any one house.
Here's what you actually do with that ranked list, mapped to the cost-per-lead problem we've been working through:
- Turn the due-roof list into tracked direct mail. RoofPredict generates personalized mail proofs (brand, copy, and address checks), handles vendor release, and tracks delivery and returns per piece — with a cost quote up front. Now your cost per contact is a number you set, not an auction outcome that triples in storm season. Every targeted home can also get a personalized microsite and a QR code on the mail piece, so the homeowner can pull up their own roof profile and request an inspection without ever opening a search box.
- Give every targeted home a real reason to respond. Each home gets a personalized report — roof profile, storm history, risk, and cost-of-waiting — as a PDF and a public microsite with a lead-capture form. That's a far warmer first touch than being one of five "roofer near me" results, because it speaks to that specific roof.
- Work the high-value streets on foot. From the same ranked list, build door-knock routes, assign canvassers, and run a mobile field app — next stop, outcome forms, voice notes, leave-behind QR, and live route progress. Your reps spend the day on overdue roofs instead of random doors, which is the difference between canvassing as a numbers grind and canvassing as a targeted motion.
The point isn't that you turn LSA off. Keep it — exclusive, badge-backed inbound is genuinely valuable. The point is that you stop being only a price-taker in an auction. You add a channel where you choose the homes, set the cost, and own the contact, and you blend the two so your overall cost per won job stops spiking every time a hailstorm spikes everyone's bids at once.
There's a compliance note that belongs right here, because targeting due roofs after a storm naturally bumps into insurance territory. You can market your services, document a roof's condition, and prepare an accurate repair estimate. What you can't do — and shouldn't imply in any mail piece, microsite, or door pitch — is negotiate or "handle" the homeowner's claim for a fee, interpret their policy or coverage, promise a specific approval or payout, promise their deductible is waived or absorbed, or advertise a "free roof." That last list is unlicensed public adjusting in most states, and it's a fast way to lose a license. The safe frame is simple: you document thoroughly and write an honest, Xactimate-aligned estimate; the homeowner files; the insurer decides coverage. RoofPredict's role sits entirely on the targeting-and-documentation side — which roofs are likely due by age and storm exposure, and the workflow to reach and document them — never on the claim-handling side.
Measure it honestly: the results funnel and CRM that make CAC real
None of the above matters if you can't measure it. The reason most roofers can't tell you their true cost per won job — for LSA or anything else — is that the lead source dies somewhere between the phone and the signed contract, and the numbers stop tying out.
RoofPredict closes that gap two ways that bear directly on the cost-per-lead question.
First, a lead pipeline with an immutable first-touch source. A lead moves new → contacting → appointment → inspected → won/lost, and the channel it came from (LSA, mail, canvass, microsite, referral) is stamped at first touch and never overwritten. That single discipline is what lets you compute cost per won job per channel honestly, instead of arguing about it in a Monday meeting. And because it offers two-way sync to 13 CRMs — HubSpot, ServiceTitan, JobNimbus, AccuLynx, Jobber, Housecall Pro, Salesforce, Pipedrive, Leap, Roofr, SalesRabbit, and CompanyCam (plus Zapier and CSV) — you don't have to rip out the system your office already runs on. If your team lives in JobNimbus or AccuLynx, the source attribution and the stage changes flow both ways, so the data stays trustworthy on both sides.
Second, a results funnel that lays the whole thing out: delivered → views → form → calls → leads → wins, with cost per lead and cost per win, and — the part that earns its keep — actual vs. estimate vs. industry benchmark, plus A/B campaign variants. That's the dashboard that finally answers the real question: "is my LSA spend actually cheaper per signed job than my mail, or does it just feel cheaper because the per-lead number is smaller?" You see the real comparison, by channel, in dollars per won job, against a benchmark and against your own estimate.
That's the honest version of channel decision-making: not "LSA costs $X per lead" pulled from a forum thread, but "in my market, my LSA leads cost me $Y per signed job and my targeted mail costs me $Z per signed job, and here's where next month's budget should go." When you can say that sentence with real numbers behind it, you've graduated from buying leads to running an acquisition operation.
Worked example: reallocating a $6,000 monthly budget
Numbers make this concrete. Suppose you're spending $6,000 a month, all of it on LSA, and after a month of honest tracking you find:
- LSA: $4,000 net spend after dispute credits → 6 signed jobs → about $667 per won job.
- You run a small test: take $2,000 off LSA and put it into a targeted due-roof mail campaign with cost quoted up front.
- Mail test: $2,000 → 3 signed jobs → about $667 per won job as well — but those three came in during a calm month with no storm spike, and the contacts were exclusive.
At first glance the channels tie. Look closer and the mail channel has two structural advantages the averages hide. It doesn't spike in storm season, so its cost per won job holds steady exactly when LSA's is doubling — meaning during the next hail event, mail will out-perform LSA on cost per job by a wide margin. And it's exclusive, so close rates tend to stay healthier as you scale, where pushing more LSA budget eventually means buying lower-intent contacts at higher prices. The lesson isn't "mail beats LSA." It's that you couldn't even see this trade-off without measuring both in dollars per won job — and once you can see it, you blend the two so neither the auction nor any single channel owns your cost structure.
Common mistakes that quietly inflate your cost per job
A punch list of the failures that show up over and over.
- Judging LSA on cost per lead. Already said, but it's the number-one mistake by a mile. Cost per won job, or you're flying blind.
- Sending calls to voicemail. Every missed call is a lost job and a ranking demotion that raises your next lead's price.
- Never disputing. Eating spam and wrong-area charges inflates your real cost and corrupts every channel comparison you make.
- A service area drawn for ego, not profit. "We cover the whole metro" sounds great and buys you junk leads from places you'll never service well.
- Letting repair leads flood a replacement business. Mismatched job types torch your close rate and your crew schedule at the same time.
- No source attribution. If you can't tie the signed job to the lead, you're guessing on every budget call.
- Treating storm-season price spikes as normal cost. They're auction spikes. That's precisely the moment to lean on owned, targeted outreach so you're not paying triple for the same homeowner.
- One-and-done reviews. Velocity matters; a stale review profile slowly raises your effective cost month after month.
- Ignoring the phone tape. The cheapest CAC improvement is usually a better-trained person answering the call, not a new ad lever.
- Scaling a leaky funnel. More budget on top of a 12% close rate just buys you more lost leads faster. Fix the funnel, then scale.
A 30-day plan to cut your roofing LSA cost per won job
If you do nothing else, run this sequence.
Week 1 — Instrument the funnel. Decide how every LSA lead gets tagged at intake (real / spam / wrong-area / wrong-service / duplicate) and how the source is carried all the way to the contract. If you're on a CRM, wire the immutable source field now. Start recording calls.
Week 2 — Fix the front door. Audit your answer rate honestly. Plug the voicemail holes with live answer or a roofing-literate service. Tighten business hours to match live-answer capacity. Pull your service area in to profitable ZIPs. Curate service types toward replacement.
Week 3 — Build the dispute and review habits. Run your first weekly dispute reconciliation. Stand up a review-request step in your job-close workflow so velocity starts compounding. Reply to your last several reviews, including the critical ones.
Week 4 — Compute the real number and reallocate. Pull 30 days of data: net LSA spend after credits, leads, opportunities, inspections, and signed jobs. Compute cost per won job. Compare it honestly against your other channels in the same units. Then decide where next month's dollars go — and seriously evaluate adding an owned, targeted outreach motion (ranked due-roof list → mail / microsite / QR plus field routes) so you're not 100% dependent on an auction that punishes you exactly when demand is highest.
Do this, and within a quarter you'll know your true roofing cost per won job by channel — which is the only number that should ever decide your marketing budget.
The bottom line
Local Services Ads can be a strong channel for roofers: exclusive contacts, a trust badge, and pay-per-lead billing that aligns with how a high-ticket trade thinks. But the dashboard's cost-per-lead number is a starting point, not a verdict. Your real cost is set by how fast you answer, how diligently you dispute, how tightly you target, how well you close on the phone, and — above all — whether you measure all the way to the signed contract.
And the single best way to stop your cost per job from spiking every storm season is to stop being purely a bidder in someone else's auction. Add a channel where you pick the homes that are due, set the cost of reaching them, and own the contact end to end. Then measure both side by side in dollars per won job, and fund whatever wins. That's how a roofing company turns a marketing line item into a predictable acquisition machine — and stops letting an auction it doesn't control decide what a new customer costs.
FAQ
What is the average cost per lead for roofing on Local Services Ads?
There's no single national figure, because LSA pricing is auction-driven and set per metro. Realistically, most U.S. roofing markets see roughly $25 to $150 per lead for typical residential repair/replacement inquiries, with competitive metros and post-storm surges pushing into $150 to $300+, and low-competition rural areas sometimes landing $15 to $40. The only number that should drive your budget is your own cost per won job, calculated from your actual funnel.
How is the cost-per-lead charge triggered in LSA?
You're charged when a customer calls through your ad and the call lasts long enough to count as a genuine inquiry, or when they send a message or booking request through the LSA interface. You're not charged for impressions, taps that don't lead to contact, spam and robocalls, calls about services you don't offer, contacts outside your service area, or duplicate contacts from the same customer for the same job within a short window.
What's the difference between cost per lead and cost per won job?
Cost per lead is total spend divided by billed contacts — a vanity number that ignores junk leads, no-shows, and close rate. Cost per won job (customer acquisition cost) is net spend after dispute credits divided by signed contracts. Example: 40 leads at $65 looks like $65 per lead, but after credits and walking the funnel down to 4 signed jobs on $2,145 net, the real cost is about $536 per won job. That second number is the one that should drive decisions.
Why do two roofers in the same area pay very different LSA prices?
LSA placement and effective cost are driven by review score and recency, review count, responsiveness (answer rate and speed), proximity, and complaint history. A roofer who answers nearly every call quickly and has a steady stream of recent reviews earns cheaper, better-placed leads over time. A roofer sending calls to voicemail trains the algorithm to deprioritize it and pays more for worse contacts.
Which LSA leads can I dispute, and which can't I?
You can dispute spam and robocalls, business solicitations, wrong-service requests, jobs outside your service area, non-leads like wrong numbers or immediate hang-ups, and duplicate charges for the same customer and job. You generally can't dispute a lead just because you didn't close it, the customer picked a competitor, or the job was smaller than you wanted. Run disputes weekly because there's a submission window after each charge.
Is the Google Guaranteed badge a warranty on my roofing work?
No. The Google Guaranteed badge is a consumer-trust mechanism: it tells homeowners Google verified your license, insurance, and background, and it may reimburse a customer up to a lifetime cap (commonly cited around $2,000, set per-customer) for covered work booked through LSA that they're unhappy with. It has specific exclusions and is not a workmanship warranty. Read Google's coverage terms before referencing it in a sales conversation.
Should I run LSA, standard Google Ads, or both for my roofing company?
Many roofers run both. LSA charges per qualified contact and sits at the top with a trust badge; standard Google Ads charges per click and gives granular keyword and geo control but makes you pay for clicks that never contact you. Track them separately and compare on cost per signed job, not cost per lead, then fund whichever wins in your market. Avoid blindly running both without measuring overlap.
How do I lower my roofing LSA cost per lead?
The biggest free lever is answering every call live and fast — missed calls lose jobs and demote your ranking, which raises future costs. Then build review velocity, tighten your service area to profitable ZIPs, curate service types toward replacement, dispute illegitimate charges weekly, align ad hours to live-answer hours, manage weekly budget pacing, and coach the phone using call recordings. Above all, carry the lead source to the signed contract so you can measure what's working.
Why does my LSA cost per lead spike during storm season?
LSA is an auction, and prices rise when demand rises. Right after a hail or wind event, many roofers bid harder for the same surge of searchers, so cost per lead climbs exactly when you're busiest. The defense is to add an owned, targeted outreach channel — reaching homes you already know are due for a roof — so you're not paying triple in the auction for contacts you could have generated at a cost you set.
How can RoofPredict reduce my dependence on auction-priced LSA leads?
RoofPredict scores every home in a service area into roof-age bands (recent, mid-life, due, overdue) with per-roof storm exposure, producing a ranked due-roof target list with a 'why this home' evidence chain. You turn that list into tracked direct mail with cost quoted up front, personalized microsites and QR codes, and door-knock routes for a field app — so you set the cost of reaching homeowners instead of an auction setting it. Its lead pipeline stamps an immutable first-touch source and syncs two-way with 13 CRMs, and its results funnel shows cost per lead and cost per win as actual vs. estimate vs. benchmark, so you can compare LSA against owned outreach in dollars per signed job. Roof age is a range, not an exact date, and storm exposure is odds, not proof.
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.
Sources
- About Local Services Ads — support.google.com
- Google Guaranteed badge eligibility and coverage — support.google.com
- Dispute a lead in Local Services Ads — support.google.com
- How Local Services Ads charges and budgets work — support.google.com
- NRCA Roofing Industry Resources — nrca.net
- IBHS FORTIFIED Roof Standard — ibhs.org
- NOAA Storm Prediction Center — spc.noaa.gov
- National Weather Service Storm Events Database — ncdc.noaa.gov
- FTC Advertising and Marketing Basics for Businesses — ftc.gov
- U.S. Bureau of Labor Statistics: Roofers Occupational Outlook — bls.gov
- International Residential Code (IRC), ICC — codes.iccsafe.org
- Texas Department of Insurance: Roof Damage and Claims — tdi.texas.gov
- U.S. Census Bureau: American Housing Survey — census.gov
- RoofPredict — roofpredict.com
Related Articles
Google Ads Not Converting Roofing Leads? A Contractor's Fix-It Playbook
Your roofing Google Ads are getting clicks but no signed jobs. Here's how to find exactly where the money leaks out and close the gaps, from match types to call answer rates.
Retargeting Ads for Roofing Companies: A Practitioner's Operating Manual
Retargeting works for roofers as a closer, not a lead source. The audiences, budget math, compliant storm creative, and measurement that turn warm visitors into booked inspections.
Roofr Review for Roofing Contractors: Is It Worth It?
A practitioner's take on whether Roofr is worth it for your shop — what it does well, where it leaves gaps, and how to match the tool to your actual bottleneck.