Cost per lead in plain English
CPL is the price tag on each inquiry. You spent this much on a channel; it produced that many calls and forms; divide one by the other.
It is useful because it is fast: you can calculate it from an ad dashboard and a call log. It is dangerous for the same reason: it stops at the inquiry and says nothing about whether anyone booked, bought or paid.
How do you calculate cost per lead?
Formula
Use the same period for both numbers and count unique leads. A homeowner who calls twice and fills a form once is one lead.
Worked example: CPL against cost per booked job
Example numbers for one month at an HVAC and plumbing shop:
| Channel | Spend | Leads | CPL | Booked jobs | Booking rate | Cost per booked job |
|---|---|---|---|---|---|---|
| Google search ads | $4,200 | 84 | $50 | 46 | 55% | $91 |
| Local Services Ads | $3,150 | 45 | $70 | 33 | 73% | $95 |
| Lead marketplace | $1,900 | 76 | $25 | 14 | 18% | $136 |
| Postcards to past customers | $1,100 | 22 | $50 | 17 | 77% | $65 |
By CPL, the marketplace wins at $25. By cost per booked job, it is the most expensive channel, because most of its leads never booked. The postcards, at the same CPL as search ads, are the cheapest booked jobs on the sheet. The next step past this table is revenue and margin per source, which is what customer acquisition cost brings in.
What counts as a lead?
Define it before you count it, and use the same definition for every channel. Pay-per-lead channels define it for you, and their definition sets what you are billed for.
Google Local Services Ads, for example, charges for calls you answer or return, missed calls during business hours where the caller stayed on longer than 20 seconds, messages, and booking requests in the US and Canada. Follow-up contact from the same customer within 15 days isn't charged again, and leads judged invalid or low quality aren't charged.1 Charged leads that are later judged low quality may be credited automatically, typically within 30 days, but credits are no longer given for "job type not serviced" or "geo not serviced" leads.2
For your own reporting, a common rule is: a lead is a unique person who contacted you about a job you could do, through any channel, in the period. Spam, wrong numbers, vendors and existing customers calling about an open job don't count.
Cost per lead vs CPC vs cost per booked job vs CAC
| What you divide spend by | What it tells you | |
|---|---|---|
| Cost per click (CPC) | Ad clicks | What attention costs on a pay-per-click channel |
| Cost per lead (CPL) | Unique inquiries | What an inquiry costs, across any channel |
| Cost per booked job | Jobs booked from those leads | Whether the leads are real customers you can serve |
| Customer acquisition cost (CAC) | New paying customers won | What it costs to win a customer, including selling costs |
Why do pay-per-lead prices vary?
Google says Local Services Ads lead prices may vary by location, job type, lead type and bidding mode, and message leads usually cost less than phone leads.1 Marketplace prices vary too. That is why a single "average CPL for HVAC" figure means little: your price depends on your city, your job types and how you bid.
Common mistakes with cost per lead
Check your CPL report for these
- Counting the same person twice across calls and forms
- Including existing customers calling about an open job
- Comparing a month of spend with a different month of leads
- Ignoring disputed or credited lead charges
- Leaving out agency or software fees for the channel
- Judging channels on CPL alone
To see what happens after the lead, connect leads to jobs and, for Google Ads, send completed sales back with offline conversion imports, which report what happens after an ad results in a click or call.3 Lead-marketplace specifics, including credits, are covered in Angi leads for contractors.
How does cost per lead work across channel types?
The formula is the same everywhere, but what you pay for, and what you can control, changes by channel:
| Channel type | You pay for | What sets your CPL | Example channels |
|---|---|---|---|
| Pay per click | Clicks | Click price × clicks per lead | Google Search ads, social ads |
| Pay per lead | Each lead | The channel's lead price, your bid, disputes and credits | Local Services Ads, lead marketplaces |
| Flat cost | A campaign or item | Total cost ÷ the leads it produced | Postcards, door hangers, vehicle wraps |
| Little or no direct cost | Time and goodwill | Effectively zero in CPL terms | Referrals, repeat customers |
Flat-cost channels need a fair time window: a vehicle wrap keeps producing calls for years, so spread its cost over its life rather than the month it was paid.
Cost per lead in TradesWork
In TradesWork, every lead and the job it becomes share a campaign, so cost per booked job by source is a report rather than a guess: your spend on the source divided by jobs booked from that campaign. The lead inbox also shows median speed and booked rate by source for the last 30 days, and any number in reports opens to the leads or jobs behind it.
Footnotes
-
Google Local Services Help, How leads work. ↩ ↩2
-
Google Local Services Help, About automated Local Services Ads lead credits. ↩
-
Google Ads Help, About offline conversion imports. ↩
