Cost per booked job: judging home services lead sources
Cost per lead flatters bad sources. How to measure cost per booked job across lead sources, and stop paying for leads you cannot attribute.
Cost per lead is the wrong number for a home services business. A lead is a phone call. A booked job is a truck in a driveway. The gap between them is where most of the waste sits, and it is different for every source.
Cost per booked job is simple to define: everything you paid for a source in a period, divided by the jobs that source put on the schedule. Getting it right takes discipline about both halves of the fraction.
Count the full cost of each source
Media spend alone understates the cost. For each source, add:
- Media or lead fees. Paid search clicks, Local Services Ads charged leads, marketplace lead fees.
- Management fees. Agency retainers or percentage-of-spend fees attributable to that source.
- Tools. Call tracking numbers, landing page software and anything else that exists only to serve that source.
Know how each source charges. Google's Local Services Ads help page says you pay per lead, and a missed call during business hours counts if the caller waits more than 20 seconds. Angi's 10-K describes lead fees paid by service professionals for consumer matches whether or not they end up serving the customer. You pay for some leads you never had a chance to book.
Define a booked job and hold to it
Pick one definition and use it across every source and market. A good one: an appointment on the schedule with a customer name, address and time window. Track completed and invoiced jobs as a second stage, because some sources book well and cancel badly.
Do not let each agency define its own conversion. An agency reporting form fills or calls over 60 seconds is reporting activity, not jobs.
Tie every job to a source
Attribution is plumbing. It needs three pieces.
A unique tracking number per source, per market. Every paid source gets its own number, and so does every organic channel you want to measure. Calls are most of the volume in this business and they are the easiest thing to tag.
Click IDs captured in the job record. For paid search, store the Google click ID with the customer record when the lead comes in. Google's offline conversion import uses that ID, or hashed customer data through enhanced conversions for leads, to send booked and completed jobs back to the ad account. That lets the bidding optimize for jobs instead of calls. Google says these uploads move to its Data Manager API from June 15, 2026, so check that your setup has moved.
A source field the CSR must fill. When the tracking data is missing, ask the customer and record it. Keep "unknown" as a value so you can measure how big it is.
Build the table
Run it monthly, per source, per market:
| Source | Total cost | Leads | Booked jobs | Cost per booked job | Avg. ticket |
|---|---|---|---|---|---|
| Source A (illustrative) | $12,000 | 160 | 64 | $188 | $540 |
| Source B (illustrative) | $9,000 | 210 | 42 | $214 | $310 |
| Unknown | n/a | 95 | 30 | n/a | $420 |
The numbers above are invented to show the arithmetic, not benchmarks. Notice what they reveal. Source B produces more leads at a lower cost per lead, but books fewer jobs at a lower ticket. On cost per lead it wins. On cost per booked job, and on revenue per dollar spent, it loses.
Add average ticket or gross margin per job when you can. A $200 booked job on a replacement lead is a bargain. The same cost on a tune-up is not.
Fix the phones before you judge a source
A source's cost per booked job is partly a measure of your own call handling. Invoca's 2026 home services report found only 52% of inbound calls were answered by a person, and 55% of businesses do not ask leads to book. Invoca's 2025 cross-industry report put the lead rate on answered paid search calls at 39%.
If half the calls go unanswered, every source looks expensive. Measure answer rate and booking rate by source before you cut one. Otherwise you will cut a good source to fix a staffing problem.
Stop paying for leads you cannot attribute
This is the rule that saves money: no attribution, no budget.
- New sources start tagged. No source goes live without its own tracking number and a way to report booked jobs.
- Unknown has a ceiling. If the unknown bucket is above roughly a fifth of booked jobs (our working threshold, not an industry benchmark), fix attribution before you add spend anywhere.
- Sources that will not report get capped. If a vendor cannot or will not tie its leads to jobs within 60 days, hold its budget flat and then cut it.
- Claim your credits. Google says it reviews charged Local Services Ads leads over 30 days and credits invalid or duplicate ones automatically, and you can flag poor leads through the feedback survey. Check the charge status column every month.
Watch for double counting
The same homeowner often searches your brand, clicks an ad, sees a marketplace listing and then calls. Two sources will claim the job. Deduplicate by phone number and address, and choose one attribution rule (first touch or last touch) for the whole business. Google's help page notes that repeat contact from the same number within 15 days is not charged again by Local Services Ads, so a repeat caller is not always a repeat cost, but it is never a second job.
Be skeptical of sources that perform best on brand terms. If people were already searching for your company by name, the source may be taking credit for demand you created.
The next step
Take the last 90 days in one market, build the table above, and size the unknown bucket. That one exercise tells you which sources to protect and which to cap. Our piece on home services vendor cost covers the rest of the stack, and our marketing cost work runs the same analysis across a platform.
Sources: LocaliQ, Search advertising benchmarks for every industry, Google Local Services Ads Help, How leads work, Angi Inc., Form 10-K for fiscal 2025, Google Ads Help, About offline conversion imports, Invoca, Home services lead conversion benchmarks report 2026, Plumbing & Mechanical, Home services call performance report.
How do you calculate cost per booked job?
Add everything paid for a lead source in a period, including media or lead fees, agency fees and tools, and divide by the jobs that source put on the schedule. Use one definition of a booked job across every source and market.
Why is cost per lead misleading in home services?
Sources differ in how many leads turn into jobs and at what ticket size. A source with cheap leads can book fewer and smaller jobs, so it costs more per dollar of revenue.
How do you attribute phone leads to a booked job?
Give each source its own tracking number, store Google click IDs with the customer record, and have call takers record the source when tracking is missing. Booked jobs can then be imported back to Google Ads as offline conversions.
Can you get credit for bad Google Local Services Ads leads?
Google says it reviews charged leads over 30 days and automatically credits invalid or duplicate ones, and you can flag poor leads through a feedback survey. Credits are not available in health care verticals.
Finding value a business did not know it had is the part of this work we enjoy most. Fifteen minutes is enough for us to tell you whether your agency terms are worth reopening before 2027 budgets lock.