Facebook and Instagram ads cost between $15 and $100 per lead depending on your trade, market density, and how tight your targeting is. An HVAC contractor in a saturated market pays $25–40 per lead; a solar installer in Phoenix pays $60–100; a plumber in a mid-size city hits $20–35. These aren't guesses—they're the range you'll see if you set up targeting correctly and measure it honestly.
The CPL (cost per lead) benchmark matters because it tells you whether your ad account is efficient or bleeding money. But the real metric you care about is cost per job (CPL ÷ close rate), and that's where most contractors get it wrong. A $30 solar lead at 25% close rate ($120 cost per job) outperforms a $18 HVAC lead at 2% close ($900 cost per job) every single time. The number that counts is not how cheap the lead is—it's how many jobs that lead converts into.
HVAC: $15–40 Per Lead Depending on Seasonality and Market Heat
HVAC leads typically land in the $15–40 range on Facebook ads, with peak CPLs hitting $35–40 in summer (air conditioning demand) and winter (heating breakdowns), and lower CPLs ($15–25) in spring and fall when call volume is lighter. A mid-size city like Columbus, Ohio sees $18–28 CPL year-round; a dense market like Chicago or Atlanta runs $25–35; a rural area in upstate New York might hit $12–20.
The variance comes from two levers: market saturation and targeting precision. If your audience radius is too wide (say, targeting anyone within 25 miles of your service area), you're bidding against every other HVAC company in that zone, and the CPL climbs. Tighten it to 5–10 miles around your shop, exclude past customers, and layer in behavioral signals like "home maintenance interest" or "recently moved," and your CPL drops 20–30%. A Charlotte HVAC shop that drops from $28 to $22 CPL by refining their audience radius just cut acquisition cost by $6 per lead—that's $600 saved on a 100-lead month.
Seasonality is brutal for HVAC. January and July are peak-demand months; March and October are graveyard. Many HVAC owners pause ads in slow months to save budget, but that's expensive in the long run. Facebook's algorithm penalizes account restarts—your next campaign takes 3–7 days to "warm up" and CPLs spike 40–50% for the first 2–3 weeks. Better play: drop daily budget by 50% in shoulder months (March, May, October, November) and keep your audience and pixel firing. When demand snaps back, your account is already warm and CPL stays flat.
Plumbing: $20–50 Per Lead in Most Markets
Plumbing CPLs sit in the $20–50 range and are less seasonal than HVAC because people have emergencies year-round (burst pipes in winter, water heater failures in summer, new construction year-round). A plumbing lead in Denver, Colorado averages $22–32; in Los Angeles, $35–50; in a small town in Iowa, $15–25. The trend is clear: population density and competition drive price.
Plumbing conversion rates tend to sit at 8–15% across the trade (a lead that books a call has a good chance of becoming a job), which means your cost per job is roughly $2,500–$6,250 if you're running $20–50 CPL. That's a 15–40 multiple on your lead cost, which is healthy for a trade with $300–$1,200 average service call value and frequent repeat customers.
The biggest CPL killer in plumbing is audience overlap. If you're running ads to homeowners who are also seeing competitor ads, the bidding war drives CPL up 30–50%. Facebook actually flags this—look at your Ads Manager and check the "Audience Overlap" metric. If it says "Low" or "Moderate," you're fine. If it says "High," split your audiences or shrink your radius. A plumbing company in Austin that cut audience overlap from "High" to "Low" typically sees CPL drop from $38 to $28.
Stop buying leads. Generate your own in 2 minutes.
Describe your business: the AI writes the copy, designs the visual, sets the targeting, and publishes your ad. Your leads — exclusive and far cheaper than a bought one — land straight in Leadria with a phone number, ready to call.
Try Leadria free7-day free trial — no credit card — cancel anytime
Solar: $30–100 Per Lead—The Most Competitive Trade
Solar leads are the most expensive on Facebook: $30–100 per lead depending on geography and competition. A solar installer in Phoenix, Arizona pays $65–100 because the market is flooded with national and regional solar companies all bidding. A solar company in a less-saturated market like Albuquerque, New Mexico might hit $35–55. And a tiny rural market in Montana could run $25–40 because there are fewer competitors, but your volume will be 5–10 leads per month instead of 50–100.
Why so high? Customer lifetime value and gross margin. A typical solar installation is $8,000–$25,000 with a 20–35% gross margin ($1,600–$8,750 per job). A plumbing service call is $300–$600 with similar margin. So a solar company can spend $80 per lead and still pencil out if the close rate is 12–20%. A plumber at $80 CPL would go broke at a 12% close rate.
The second reason solar is expensive: longer sales cycle and higher intent barrier. A homeowner clicking a solar ad isn't "ready to buy today"—they're in research mode. That lead might take 4–6 weeks of follow-up, design, financing discussions, and site visits before they convert. A plumbing lead gets a call and schedules in 2 days. Facebook's algorithm charges more for leads that take longer and have lower immediate conversion signals, which drives solar CPL up.
To lower solar CPL below $60, focus on retargeting warm audiences: past website visitors, people who've engaged with your organic content, and lookalike audiences built from your actual customers (not generic "solar interest" targeting). A solar company running lead ads to broad interest-based audiences might hit $85 CPL; the same company retargeting website visitors from the past 90 days might hit $45–55 CPL because the audience has higher intent.
Roofing: $25–60 Per Lead with High CPL Volatility
Roofing lands at $25–60 per lead, with the highest variance of any trade because roofing demand is event-driven (a storm, hail damage, age-out). After a hailstorm in a region, roofing CPLs spike 50–80% for 3–6 weeks as every contractor and insurance adjuster bids. A roofer in Dallas, Texas might pay $32 CPL in calm months but $55–65 CPL for 2–4 weeks after a reported storm.
This volatility is invisible if you don't track CPL weekly. Many roofers launch a campaign in September (post-summer storms), hit $28 CPL in weeks 1–2, then see CPL climb to $42 by week 4 without changing anything. The culprit isn't their targeting—it's market saturation from competitors who see the same storm data and flood Facebook ads. Smart roofers pause paid ads during storm-driven peaks and rely on inbound organic traffic and referrals, then restart ads when CPL settles back down (usually 4–6 weeks post-event).
Roofing close rates sit at 10–20% on average, so a $35 CPL times 5–10 leads per job means your cost per roofing job is $175–$350 on lead cost alone (not counting overhead, labor, materials). With an average roofing job at $3,000–$8,000, that's a 4–20x multiple, which works if your labor margin is healthy.
One underused lever: emergency messaging. A roofing ad that says "Storm damage? Same-day inspection—FREE" pulls CPL down 15–25% vs. generic "We Fix Roofs" copy because the intent is immediate and measurable. See our emergency contractor messaging guide for more.
Electrical: $20–45 Per Lead (Trade Work With Tight Close Rates)
Electrical CPLs run $20–45 per lead in most markets, with a tight range because electrical work is relatively consistent year-round and call-to-close rates are predictable. An electrician in Phoenix averages $28–38 CPL; one in rural Iowa averages $15–25 CPL. The variance comes from market density and the breadth of services (a company advertising "emergency panel upgrades" to homeowners in specific ZIP codes pays less than one with broad "electrical repair" messaging).
Electrical contractors often struggle with CPL because they're targeting too broadly. If your targeting is "anyone aged 35–65 interested in home improvement within 20 miles," you're bidding against plumbers, HVAC guys, and general contractors. You get tire-kicker clicks. Narrow to "homeowners within 8 miles of your address who recently engaged with home maintenance content or have a Zillow home estimate," and CPL drops 25–35% and lead quality (close rate) climbs.
Close rates for electrical are 6–12%, lower than HVAC or plumbing, because many inquiries are DIY-curious homeowners looking for price checks on simple work (switching outlets, installing fixtures) that don't pencil out for a service call. Smart electrical companies exclude these with copy that signals "we're for big jobs: rewiring, panel upgrades, EV charging install, new home construction"—not "we replace your light bulbs." This moves CPL up slightly ($25 to $32) but close rate jumps from 6% to 14%, netting you a better cost per job.
When Lower CPL Doesn't Mean Better ROI
Here's the trap: a cheap lead that doesn't convert is the most expensive lead you can buy. A contractor running $16 CPL HVAC leads with a 1% close rate spends $1,600 in ad cost to land one job. Another contractor running $32 CPL leads with a 12% close rate spends $267 in ad cost per job. The first one is buying noise. The second one is buying money.
This happens when you optimize for CPL instead of cost per job (also called cost per booked appointment or cost per acquisition). Facebook's default is to minimize your overall spend, which means it will find cheap clicks and conversions. But cheap clicks often come from people who are curious, browsing, or price-shopping—not ready to book.
To fix this: measure close rate on every lead source (tag leads "Facebook Paid" in your CRM), then calculate cost per job. If your close rate is below 5%, your targeting or messaging is broken. Likely culprits:
- Audience too broad: You're bidding against tire-kickers. Tighten geography to 5–8 miles and add behavioral targeting (recent movers, home maintenance interested, high income).
- Ad copy signals low-budget work: "Low price!" "Quick fix!" "$49 special!" attracts bargain hunters, not qualified jobs. Rewrite to signal quality and professionalism (before/after photos, years in business, certifications).
- Lead form is too short: If your form only asks for name and phone, you're getting 30–40% looky-loos. Add a required field like "What's the issue?" or "What's your timeline?" to filter intent. Abandonment goes up 5–10%, but close rate jumps 20–30%, netting better cost per job.
- Your follow-up is slow: A lead that sits in your inbox for 8 hours before you call is 50% less likely to convert than one you call in 15 minutes. If you're not calling within an hour, your close rate suffers. Fast follow-up is worth more than cheaper leads.
Market Saturation and Geographic Density Effects on CPL
A plumbing CPL that runs $22 in Cleveland, Ohio runs $48 in San Francisco because San Francisco has 5x the population density, 3x the average home value, and 8–10 competing plumbing companies bidding on the same audiences. Population density and local competition are the biggest CPL movers after your targeting and creative.
Rural and small-town markets have a counterintuitive advantage: lower CPL, lower volume, lower close rates. A plumber in a town of 15,000 pays $14–18 CPL but gets 3–6 leads per month. A plumber in Denver pays $28–35 CPL but gets 40–80 leads per month. The rural plumber's issue isn't CPL—it's volume. The Denver plumber's issue is waste (they need to aggressively filter for quality to avoid paying for tire-kickers).
If you're in a small market and CPL is too high relative to your monthly volume, try these levers:
- Expand your service radius by 10–15 miles and absorb the travel time. This doubles or triples your addressable audience and CPL typically drops 20–30%.
- Retarget harder: Run more ads to past customers and website visitors (who are free to reach repeatedly). This shifts your budget away from expensive cold audiences and lowers blended CPL.
- Use lookalike audiences built from your best customers (highest close rate, highest job value) instead of "general interest" audiences. Lookalikes cost 10–20% more per click but close 25–40% higher, netting better cost per job.
- Run seasonal campaigns: In your off-season, pause all paid ads and shift budget to organic and referral. In peak season, invest heavily. This avoids paying peak CPLs in slack months.
How to Test if Your CPL Is Actually Good for Your Trade
Run the math: take your monthly ad spend ÷ number of leads ÷ your close rate % = cost per job. If you spent $2,000 in ads, got 75 leads, and closed 12%, you got 9 jobs for $222 cost per job (not counting lead follow-up time or delivery cost).
Then compare to your job value and margin. If your average job is $2,500 with 30% margin ($750 profit), then $222 in ad cost leaves you $528 profit per job after ads. That's healthy. If your average job is $800 with 25% margin ($200 profit), then $222 in ad cost costs you $22 per job—you're losing money.
This is why solar companies can tolerate $80 CPL (high job value) and HVAC service companies can't (low job value per service call, but high repeat/customer lifetime value). A solar company making $5,000 gross profit per install can spend $80 per lead × 8 leads per job (12.5% close rate) = $640 in ad cost per job. An HVAC company making $150 gross profit per service call cannot.
If your cost per job is worse than what you'd pay a referral partner (5–20% of job value is typical), either raise your close rate (fix messaging, targeting, or follow-up) or lower your CPL (refine audience, pause high-CPL dayparts, use creative refresh to fight fatigue).
When Facebook Ads CPL Benchmarks Don't Apply to Your Business
Facebook ads are the wrong channel if:
- Your service area is under 10,000 people and you're the only player. You don't need Facebook ads; you need a Yellow Pages listing and Google Local Services ads (free). Spending $500/month on Facebook to reach an audience of 2,000 in a town where everyone knows you is waste.
- Your close rate is under 3% even after you've optimized targeting, messaging, and follow-up. This signals that your ICP (ideal customer profile) and Facebook's audience overlap poorly. A home security company targeting renters in a college town will never close well. Pivot to a different geography or audience segment, or abandon paid ads.
- Your job value is under $300 and repeat customer rate is under 40%. Cheap one-off services (small appliance repair, minor locksmith calls, basic cleaning) don't generate enough margin to justify paid ads. Referral programs, organic search, and local reputation work better.
- Your competitors offer a significantly cheaper price and you can't differentiate on quality, speed, or brand. If three other plumbers are running the same "$49 drain cleaning" ad and you're premium-priced at $149, you'll pay 50% more CPL and close 50% less. Facebook is a demand-matching platform; it doesn't create demand where price mismatch exists.
- Your market is hyper-seasonal (e.g., snow removal, Christmas tree farms) and your season is 4–8 weeks. The fixed overhead and learning cost of Facebook ads (3–4 weeks to optimize) doesn't pencil out against your peak window. Use Google Local Services ads instead—they scale up and down instantly.
How Leadria Cuts Your CPL by Generating Your Own Ads in 2 Minutes
Most contractors overpay on CPL because they're either hiring agencies ($2,000–$5,000/month) or running generic, untested creative. A generic "We Fix Roofs" ad with a stock photo costs the same as "Storm damage? Free same-day inspection. Serving 3 neighborhoods, licensed 15 years." The second one closes at 18%; the first at 6%. Same CPL, 3x better cost per job.
The math is cruel: if you're paying an agency $3,000/month to run your ads, your CPL needs to be under $18 just to break even on their fee before you make a dime of profit. If your natural CPL for your trade is $28, the agency's fee adds 11% to your blended acquisition cost.
A better path: describe your business to an AI, and it writes the ad copy, generates the visual, sets your Meta targeting, and publishes to Facebook and Instagram. Leads land in Leadria with a phone number, ready to call. You get your first 7 days free, no credit card, so you can test your CPL and close rate before you pay anything. Writing, designing, targeting, and launching takes about 2 minutes. Test 5 variations of ad copy in the time it'd take you to email an agency once.
The result: your CPL stays in-range (no agency overhead inflating it), you control the messaging (higher close rate), and you can test variations fast (faster optimization). Contractors using this model report CPL 10–20% lower than agency-managed campaigns because the feedback loop is tighter and the creative is fresher.
Start with a $500 test budget, generate 3 different ad variations, run them for 1–2 weeks, then calculate your cost per job on each one. Take the winner and scale. You'll know in 14 days whether Facebook ads work for you at a CPL that makes financial sense. No contract, no guessing, no $15,000 commitment to an agency before you've proven the unit economics.
Final Checklist: Is Your CPL Healthy for Your Trade?
- Know your trade's CPL range: HVAC $15–40, plumbing $20–50, solar $30–100, roofing $25–60, electrical $20–45.
- Calculate your cost per job, not just CPL: CPL ÷ close rate % = cost per job. Optimize for this metric, not raw CPL.
- Measure close rate by lead source and tag every Facebook lead in your CRM. If it's under 5%, fix your audience, copy, or follow-up.
- Refresh creative every 2–3 weeks to fight fatigue and keep CPL flat as your audience sees more impressions.
- Tighten your audience radius to 5–10 miles around your service area and layer in behavioral signals. This drops CPL 20–30% most of the time.
- Test lower budget ($500–$1,000) for 2 weeks before scaling. You'll know whether the unit economics work before you spend $5,000.
- Call leads within 15 minutes of submission. Speed of follow-up is worth 20–30% improvement in close rate, which matters far more than squeezing CPL down another $3.
- Pause ads in your off-season and scale in peak season to avoid paying peak CPLs during low-demand periods.
- Compare cost per job to your referral cost (typically 5–20% of job value). If Facebook is cheaper, scale. If it's more expensive, slow down and optimize before spending more.
