← All posts
Lead generationCost per leadMay 11, 2026Clint Research Team

How to Calculate Cost Per Lead for Home Service Contractors

Cost per lead is widely used and frequently miscalculated. Here is the correct calculation by channel, the common errors that inflate or deflate the number, and why cost per booked job tells you more.

9 min read

Key takeaways

  • Cost per lead is miscalculated in most contractor accounts because of double-counted calls, organic leads mixed into paid campaigns, and shared-lead pricing on Angi and Thumbtack.
  • Shared leads on Angi and Thumbtack can cost 40 to 60 percent less per lead than exclusive leads but convert at a fraction of the rate, producing a higher cost per booked job.
  • Cost per booked job is the number that actually predicts revenue. CPL is useful only as an input to that calculation.
  • Referral leads have near-zero acquisition cost but require accounting for program overhead to be compared accurately against paid channels.
Contents
  1. 01What "lead" means and why you need to define it
  2. 02Cost per lead calculation by channel
  3. 03Channel comparison table
  4. 04Why cost per booked job is more useful
  5. 05How Clint Connects Ad Platform Data with CRM Booking Data
  6. 06Sources
  7. 07Frequently Asked Questions

Every home service contractor tracks cost per lead. Very few of them calculate it correctly for every channel they run, and almost none of them use it to make the decision it is actually suited for.

Cost per lead is useful for one thing: measuring how efficiently a channel gets strangers into a conversation. It is not useful for predicting revenue, evaluating channel ROI, or deciding where to put the next dollar. That calculation requires cost per booked job. But you cannot get to cost per booked job without first getting cost per lead right, and most shops have not gotten it right.

This post walks through the correct calculation per channel, the common errors, and why cost per booked job is the number you should ultimately be reporting.

What "lead" means and why you need to define it

Before calculating cost per lead, you need a single working definition of what a lead is. Without one, any two people pulling the same report will get different numbers.

A working definition for home service businesses: a lead is a unique inbound contact from someone who has not previously been a customer, expressing interest in a service. That definition excludes:

  • Existing customers calling for repeat service (those are retention contacts, not leads)
  • Vendor calls, wrong numbers, and solicitations
  • The same person contacting through multiple channels on the same inquiry (count once)
  • Form submissions that are duplicates of a call already logged

This sounds obvious. In practice, most contractor CRM data has 10 to 25 percent of "leads" that fall into the excluded categories, which inflates reported lead count and deflates reported CPL. A shop claiming 120 leads at $40 CPL may actually have 90 real leads at $53 CPL once duplicates and non-leads are removed.

Define the standard, apply it consistently, and recalculate from there. For the CRM-side tagging hygiene that makes any of this possible, see how to track lead source in a service CRM.

Cost per lead calculation by channel

CPL formula: total monthly Google Ads spend divided by total conversions attributed to Google Ads.

The two common errors:

Error 1: Organic leads counted in paid conversions. If your Google Ads conversion tracking fires on the same "thank you" page as your organic search, every organic form fill gets counted as a paid conversion. The fix is to use Google Ads tracking numbers (different from your main number) and Google Ads-specific landing pages or conversion events that only fire when a paid click precedes them.

Error 2: First-ring and connected-call double-counting. Some call tracking setups count both the first ring (any call attempt) and a "connected call" (answered and over 60 seconds) as two separate conversions. If both event types are imported as conversions in Google Ads, every booked call is counted twice. Check your conversion actions in Google Ads and make sure you are counting one event per unique call, not both ring and connect.

Correct Google Ads CPL: (monthly spend) / (unique inbound contacts from paid clicks, with organic and duplicate calls excluded).

Google LSA

CPL on LSA comes directly from the LSA dashboard. Google charges per lead, and the dashboard shows the cost per lead for each lead type. This is the most transparent CPL calculation in paid search.

One error to check: duplicate LSA listings. If your business has two verified Google Business Profiles in the same area, Google may have created two LSA listings. Leads from both count against your budget but aggregate reporting shows only total spend, not per-listing performance. Check for duplicate listings in the LSA dashboard under "Manage accounts."

Benchmark CPL for LSA by trade: HVAC $45 to $90, plumbing $35 to $75, electrical $40 to $85, roofing $50 to $120, cleaning $20 to $50. For the LSA channel ROI deep-dive, see Google LSA ROI for home services.

Facebook Ads

CPL formula: total Facebook Ads spend divided by leads generated from Facebook, where a lead is a form fill, direct message, or tracked call originating from a Facebook ad click.

The primary error in Facebook CPL: counting all form fills including low-intent leads generated by broad audiences. Facebook's lead generation forms are easy to fill and easy to abandon. A "lead" who filled a form in three seconds from a broad audience is not the same quality as a lead who clicked through to your website and called.

Segment Facebook CPL by lead type: form fills vs. call clicks vs. landing page conversions. Form fill CPL will be much lower. Call click CPL will be much higher. Average the wrong mix and the number is misleading.

Angi and Thumbtack

Angi and Thumbtack have two fundamentally different lead pricing models that produce different CPL and different conversion economics.

Shared leads are sold to multiple contractors simultaneously. The same lead contact is delivered to 3 to 5 contractors who compete for the job. Shared lead CPL runs $25 to $60 for most home service trades. Conversion rate to booked job typically runs 10 to 20 percent because the customer is comparison-shopping and often books whoever responds fastest.

Exclusive leads (Angi's Instant Booking and similar products) deliver the lead to one contractor. CPL runs $80 to $200 depending on trade and market. Conversion rate to booked job runs 40 to 60 percent because the lead has committed to schedule.

Do not average shared and exclusive leads into a single CPL. Calculate separately. A shop spending $1,000 on shared Angi leads at $30 CPL and booking 12 percent of them has a cost per booked job of $250. The same $1,000 on exclusive leads at $150 CPL and booking 50 percent has a cost per booked job of $300. The shared leads look like the winner on CPL. They are not on cost per booked job. The full debate is in are Angi leads worth it.

Referral

Referral cost per lead is not zero, but it requires some estimation.

Calculate referral lead cost by summing:

  • Customer appreciation gifts or referral bonuses paid out
  • Referral discounts given on services (use margin lost, not face value)
  • Estimated CSR time spent managing the referral program (hours x hourly rate)
  • Any software used for referral tracking

Divide total program cost by total referral leads generated. Most shops running an active referral program see referral CPL land at $5 to $20. Shops with informal referral programs where no gifts or discounts are offered run near zero acquisition cost per lead.

Repeat customer outreach

Existing customers reached through email or text campaigns are not new leads, but they generate inbound contacts that convert to booked jobs. CPL equivalent for this channel: total cost of the outreach campaign (email platform, text message costs, discount offers) divided by inbound contacts generated.

Typical range: $3 to $15 per contact generated. Conversion to booked job runs 15 to 40 percent depending on recency and offer.

Text Clint: "what is my cost per lead from each channel this month, and how does it compare to last month"

Channel comparison table

ChannelTypical CPL RangeBooking RateTypical Cost per Booked Job
Google Paid Search$45 to $12035 to 55%$82 to $343
Google LSA$30 to $8055 to 70%$43 to $145
Facebook Ads$60 to $18020 to 35%$171 to $900
Angi Shared Leads$25 to $6010 to 20%$125 to $600
Angi Exclusive$80 to $20040 to 60%$133 to $500
Thumbtack$25 to $6512 to 22%$114 to $542
Referral Program$5 to $2065 to 85%$6 to $31
Repeat Customer Outreach$3 to $1515 to 40%$8 to $100

These ranges are broad because trade, market density, and execution quality all shift the number. Use them as a starting point, not a target. Your actual numbers from your CRM and ad platforms are the only numbers worth optimizing.

Why cost per booked job is more useful

Cost per lead tells you how efficiently you get people into a conversation. It does not tell you how much you paid for revenue.

Two contractors can run the same CPL from Angi. One books 18 percent of those leads. The other books 42 percent. The first has a cost per booked job almost 2.5x higher than the second. If both contractors report CPL to their operations manager as the headline marketing metric, the first contractor looks like it is performing just as well as the second. It is not.

The downstream consequences: budget allocation decisions are made on a metric that does not reflect booked-job economics, so dollars move toward channels that look efficient on CPL but are inefficient on the number that actually matters. To set the budget envelope itself, see the home service marketing budget guide.

Cost per booked job requires one additional data point: a lead source field on every job record in the CRM. Everything else is math.

Text Clint: "show me cost per booked job by lead source for the last 90 days"

How Clint Connects Ad Platform Data with CRM Booking Data

Clint reads job records from the CRM including lead source tags, booking dates, and invoice totals. It can calculate cost per booked job by source when the CRM has lead source fields populated.

It can answer: "How many jobs booked from Angi last month and what was the average ticket?" Or: "Which lead source had the highest booking rate in Q1?" Or: "Show me all jobs tagged Google LSA in the last quarter with their invoice amounts."

For channels where spend data is not in the CRM (Google Ads, Facebook), Clint works from the job-side of the equation. You provide the spend number, Clint provides the booked-job count and revenue, and the math is instant.

Text Clint the question, get the answer. No spreadsheet required.

Sources

Frequently Asked Questions

4 questions home service owners actually ask about this.

  • 01What is the most common cost per lead calculation error?

    Double-counting calls. Most contractor call tracking setups fire multiple conversion events per call (ring, connect, duration over 60 seconds). If more than one of those events is imported into Google Ads as a conversion, every answered call inflates conversion count and deflates reported CPL. Audit your conversion actions and ensure only one event fires per unique inbound contact.

  • 02Should I compare CPL across channels directly?

    Not without adjusting for booking rate and ticket size. A $35 CPL from Facebook that books 15 percent and a $35 CPL from LSA that books 65 percent are not equivalent. Always translate CPL to cost per booked job before making channel allocation decisions.

  • 03Are Angi leads worth the cost?

    Exclusive Angi leads in competitive trades produce cost per booked job in the $133 to $500 range depending on booking rate. For trades with average tickets above $400, that is often a positive ROI channel. Shared Angi leads require a 30-plus percent booking rate to be competitive with LSA on cost per booked job. Most shops run below that on shared leads because of the simultaneous multi-contractor delivery model.

  • 04How do I get lead source data into my CRM?

    Ask during booking. Train every CSR to ask "how did you hear about us?" on every new customer call and tag the job before ending the call. In Jobber and Housecall Pro, source tagging is a field on the job or customer record. In ServiceTitan, it is a first-class field. The discipline is not a software problem. It is a booking process problem.

See Clint in action

Clint is the pre-built AI for home service shops. Connect your CRM, email, and phone system in minutes and the agents run on your real data.