How we check

Where our numbers come from

No made-up numbers, no guesses passed off as data, and we never sell leads. Here is how every number on this site gets picked, checked and labeled.

Our pledge

  • We never sell leads. We don't take money from lead sellers to rank them or to be listed.
  • Every number has a source and a date. If we can't find a public number, the page says "no public data yet" instead of guessing.
  • Paid placements are labeled. Any sponsor or partner is marked as paid and never changes the numbers.

Where numbers come from

Mostly published studies from firms that run ads for contractors, lead-price trackers, trade magazines, and help pages from Google, Angi and Thumbtack. Next: anonymous numbers from contractors like you, published only as totals.

How we check them

  • We re-open every source and match the number to the page. The "last checked" date on each number is the day we did that.
  • When a source changes its number, we update it and show the old value below.
  • We drop anything we can't confirm, and anything from before 2024 unless it's labeled as history.
  • Small samples are called out (for example, "3 campaigns").

Words we use

  • Price per lead (cost per lead, CPL): what you pay for one call, form or message.
  • Price per click: what one ad click costs. It usually takes several clicks to get one lead.
  • Cost per signed job: price per lead ÷ the share of leads you close.
  • Median: the middle number. Half paid more, half paid less.
  • Middle 80%: leaves out the cheapest and priciest tenth.
  • Homeowner / storm and insurance / commercial: tags for the type of work, because lead prices aren't comparable across them.

Why most sources aren't clickable

Many sources are agencies and lead sellers. We name the publisher, the date and the website so you can look them up, but we don't send you to their sales pages. Primary sources like Google, government data and industry surveys are linked.

Every number and when we last checked it

TradeFigureValuePublisherLast checked
RoofingAverage cost per billed lead, roofers$128.18 average · $114.57 median (typical $86.31–$141.81; 13 campaigns, last 3 months)was: $128.64 avg / $114.57 median (typical $84.79–$141.81)99 Calls LSA Cost Estimator99calls.com2026-10-20Checked, updated
RoofingCost per unique roofing lead (26 roofers)$91Roofing Data (Substack)roofingdata.substack.com2026-10-20Checked, unchanged
RoofingCost per lead by market size, slow season vs. storm seasonSmall towns $25–$45 slow season; big metros $55–$85 slow season, $100–$200+ in storm seasonRankLocallranklocall.com2026-10-20Checked, unchanged
RoofingCost per lead on non-brand searches like "roof repair near me" (15 roofers, $310k spent)$124 average; median $125; best quarter of accounts under $80; worst quarter over $256SearchLight Digitalsearchlightdigital.io2026-10-20Checked, unchanged
RoofingCost per lead when people search your company name / Google's automated "Performance Max" ads$44 name searches; $64 Performance Max (3 accounts)SearchLight Digitalsearchlightdigital.io2026-10-20Checked, unchanged
RoofingRoofing & gutters, middle-of-the-pack cost per lead (part of 3,211 home-service campaigns)$228.15LocaliQ 2025 Home Services Benchmarkslocaliq.com2026-10-20Checked, unchanged
RoofingRoofing search ads, middle-of-the-pack cost per lead (15–24 advertisers a month)$285 median (monthly medians $271–$368)99 Calls Google Ads benchmarks99calls.com2026-10-20Added today
RoofingReported cost per roofing lead (Angi publishes no price list)$50–$120+ per lead, ~ $300/yr membershipLeadTruffleleadtruffle.co2026-10-20Checked, unchanged
RoofingReported cost per shared roofing lead$45–$110 per leadService Hero Marketinggowithhero.com2026-10-20Checked, unchanged
RoofingPrice per lead or appointment from lead sellersno data yet—2026-10-20No public data
RestorationWater damage, average cost per billed lead (8 campaigns)$115.70 average · $98.74 median (middle 80%: $81.78–$278.87; 8 campaigns)was: $115.57 avg / $98.50 median (p10–p90 $81.78–$278.87)99 Calls LSA Cost Estimator99calls.com2026-10-20Checked, updated
RestorationDisaster restoration, average cost per billed lead (5 campaigns)$319.67 average · $355.03 median (middle 80%: $124.36–$445.85; 5 campaigns)was: $320.90 avg / $355.03 median (p10–p90 $125.89–$445.85)99 Calls LSA Cost Estimator99calls.com2026-10-20Checked, updated
RestorationWater damage: low / middle / high end (9 campaigns)$87 · $99 · $278AdGenius LSA benchmarkadgenius.com2026-10-20Checked, unchanged
RestorationWater damage, middle-of-the-pack cost per lead (21–29 advertisers a month)$637 middle for 2026 (month to month $498–$711); cheapest tenth ~$271, priciest tenth ~$1,346was: $637 median 2026; p10 ~$271, p90 ~$1,346; Sep 2026 median $49899 Calls Google Ads benchmarks99calls.com2026-10-20Checked, updated
RestorationReported Angi / HomeAdvisor water damage lead$15–$85HomeProCallshomeprocalls.com2026-10-20Checked, unchanged
RestorationPrice per lead or appointment from lead sellersno data yet—2026-10-20No public data
ConstructionRemodelers, average cost per billed lead (5 campaigns)$108.32 average · $102.56 median (middle 80%: $73.30–$127.49)99 Calls LSA Cost Estimator99calls.com2026-10-20Checked, unchanged
ConstructionGeneral contractors, average cost per billed lead (3 campaigns, small sample)$132.79 average · $56.37 median (middle 80%: $27.01–$140.28; 3 campaigns, small sample)was: $135.25 avg / $56.37 median (p10–p90 $27.01–$144.42)99 Calls LSA Cost Estimator99calls.com2026-10-20Checked, updated
ConstructionGeneral construction, middle-of-the-pack cost per lead$165.67LocaliQ 2025 Home Services Benchmarkslocaliq.com2026-10-20Checked, unchanged
ConstructionReported cost per general contracting / remodeling lead$40–$100+ per lead, ~ $300/yr membershipProLicensedprolicensed.com2026-10-20Checked, unchanged
ConstructionRemodeling leads, as reported by one agency's clients$87–$142Eclipse Marketingeclipsemarketing.io2026-10-20Checked, unchanged
ConstructionPrice per lead or appointment from lead sellersno data yet—2026-10-20No public data
RoofingTypical price: roof install/replace (25 leads) and roof repair (50 leads)$300 install/replace; $71.73 repair (typical price)Tack Tools Protacktoolspro.com2026-10-20Checked, unchanged
RoofingReported roofing lead price, big metros$45–$120 per contactThe Booking Flowthebookingflow.com2026-10-20Checked, unchanged
ConstructionReported general contractor / remodeling lead price$50–$150 per contactThe Booking Flowthebookingflow.com2026-10-20Checked, unchanged
RoofingExclusive hail/wind lead, one seller's posted price$175 per lead ($99 for first 3)StormLead (vendor)stormlead.co2026-10-20Checked, unchanged
RoofingStorm leads: shared vs. exclusive vs. confirmed appointment (one seller's figures)$30–$90 shared; $150–$400 exclusive; $200 per confirmed appointment ($175–$190 at volume)The Lead Giants (vendor)theleadgiants.com2026-10-20Checked, unchanged
RoofingExclusive roofing leads: replacement, storm/insurance, repair$75–$120 replacement; $150–$300+ storm/insurance; $50–$120 repairStoy Mediastoymedia.com2026-10-20Checked, unchanged
RoofingExclusive booked roofing appointment, one seller's posted pricefrom $180 per appointmentRainyLeads (vendor)rainyleads.com2026-10-20Checked, unchanged
RestorationFire & smoke damage cost per lead (only 25 leads; rough)$70599 Calls restoration report99calls.com2026-10-20Checked, unchanged
RestorationMold remediation cost per lead$16599 Calls restoration report99calls.com2026-10-20Checked, unchanged
RestorationWater damage cost per lead by year, middle (low–high)2024 $504 ($288–$882); 2025 $557 ($306–$1,104); 2026 Jan–May $676 ($347–$1,447)99 Calls restoration report99calls.com2026-10-20Checked, unchanged
ConstructionReplacement contractors, cost per lead that reached a salesperson (self-reported)$396 middle; 39% of firms paid $500+Qualified Remodeler 2026 Top 500qualifiedremodeler.com2026-10-20Added today

Flagged and left out

  • "water damage restoration dallas" cost per click: $0.30 (1,000 searches/mo) (Ahrefs Keywords Explorer (US), checked 2026-10-20). Implausibly low next to Houston ($16) and other metros ($19–$25); likely a data glitch. Not published.