Cost per Booked Job: The Number You Can Actually Use
Cost per lead stops too early. How to calculate cost per booked job, find where leads are lost, and compare channels fairly.
Cost per booked job is total marketing cost divided by the number of jobs that entered the schedule from that marketing. It is more useful than cost per lead because a form submission does not pay the crew, and a phone call that nobody answers is not a customer. Calculate it by channel, keep the definition of “booked” consistent, and compare it with the gross profit that a typical completed job produces.
The calculation is simple. The input is where businesses get lost
Start with one channel and one period. Add the money required to run that channel during the period, then divide by the jobs booked from it.
Cost per booked job = channel cost ÷ jobs booked from that channel
Channel cost should include the costs needed to make the channel work. For paid search, that usually means ad spend and management. For an organic program, it may include the work used to create and maintain the pages that generated the enquiries. Do not mix every overhead expense in the company into the number. The goal is to compare acquisition paths, not rebuild the full profit-and-loss statement.
The harder input is jobs booked. Every enquiry needs a source, an outcome, and a date. If the lead record says only “Google,” there is no reliable way to know whether the person clicked an ad, found a map listing, or came through an ordinary search result. If the outcome stays blank, there is no way to separate a booked estimate from a wrong number.
A small, consistent lead record beats a complicated dashboard with missing outcomes. Our guide to tracking phone leads from marketing shows how to keep the source attached when the enquiry arrives by phone.
Why cost per lead can reward the wrong campaign
Imagine two campaigns running in the same month.
| Campaign | Spend | Leads | Booked jobs | Cost per lead | Cost per booked job |
|---|---|---|---|---|---|
| A | $2,400 | 40 | 8 | $60 | $300 |
| B | $2,400 | 20 | 10 | $120 | $240 |
Campaign A appears twice as efficient when the report stops at the lead. Campaign B books more work from the same spend. A decision based on cost per lead would move money toward the weaker campaign.
Those figures are examples, not benchmarks. The acceptable number depends on the economics of the business. A campaign for small repair calls cannot carry the same acquisition cost as one for larger projects. Even within one service, labor, material, travel, callbacks, and close rate change what the business can afford.
This is why a “good cost per lead” found in an industry article rarely settles the question. The business needs its own booked and completed job data.
Use a short outcome ladder instead of one conversion bucket
A useful lead record follows the customer through a few clear outcomes:
- Enquiry received. A real person called, submitted a form, or started a conversation.
- Qualified. The requested work, service area, timing, and basic fit match what the business accepts.
- Appointment booked. A real time is on the calendar.
- Estimate delivered. The business inspected or scoped the work and gave the customer a decision.
- Job sold. The customer accepted.
- Job completed. Revenue and direct cost are known.
Not every company needs all six for daily reporting. Every company does need enough of them to show where the leak occurs.
If enquiries are strong but qualified leads are weak, the campaign is attracting the wrong work. If qualified leads are strong but appointments are weak, the intake process is losing people. If appointments are strong but sold jobs are weak, the issue may be pricing, estimating, follow-up, or fit. One cost-per-lead number hides all three problems.
Keep the source attached when a lead moves
Attribution often breaks after the first contact. The form records the campaign, but the scheduler creates a new contact without it. A call-tracking platform records the source, but the estimate lives in another system. The job is sold weeks later and credited to “repeat customer” because that is the only field the office can see.
The source does not have to be perfect to be useful. It has to be preserved. A workable hierarchy is:
- Keep the original acquisition source on the contact.
- Record later touches separately instead of overwriting the original.
- Use one agreed label for each channel.
- Mark unknown when the source is genuinely unknown.
- Audit a sample of calls and forms against the CRM each month.
Unknown is an honest category. Guessing distributes unattributed jobs across channels and makes every result look cleaner than it is.
For a lean version of the full measurement setup, use the one-page marketing measurement plan. It is enough to connect spend, enquiries, booked work, and revenue without turning the office into an analytics department.
Separate booked jobs from completed jobs
Cost per booked job is fast enough to manage marketing. Cost per completed job is closer to cash. Keep both.
A booked job can cancel, fail financing, change scope, or turn out to be work the company should not take. If one channel books cheaply but produces a high cancellation rate, its early number is flattering. If another channel produces fewer bookings but better completion and margin, its value appears later.
The comparison should follow the same cohort. Do not divide this month’s spend by every job completed this month if many of those jobs came from leads generated earlier. Tag leads by the month they entered, then let that group mature. A longer sales cycle needs a longer wait before the final number is trustworthy.
This prevents the common end-of-month error where a strong week of completed old jobs makes a weak new campaign look profitable.
Compare the number with gross profit, not revenue alone
Revenue can make an expensive campaign look safe. Gross profit shows what remains after the direct cost of doing the work.
Suppose one service brings in meaningful revenue but consumes most of it in material and labor. Its acceptable acquisition cost is lower than the same invoice amount on a service with a wider margin. The clean decision test is not “Did revenue exceed ad spend?” It is “After direct job costs and acquisition cost, did this work contribute enough to cover overhead and profit?”
You do not need precise job costing on every lead to start. Group completed jobs by service, calculate a conservative typical gross-profit band from your own records, and compare the acquisition cost with that. Improve the model as the records improve.
Read changes in the right order
When cost per booked job rises, do not assume the ad platform became more expensive. Break the change into three parts:
- Traffic cost: Did it cost more to produce a visit or call?
- Lead conversion: Did fewer visitors become enquiries?
- Booking rate: Did fewer enquiries make it onto the schedule?
Each points to a different repair. Higher traffic cost may call for tighter queries, geography, or channel mix. Lower site conversion may point to the page, the offer, or a broken form. Lower booking rate may point to response time, missed calls, qualification, or calendar capacity.
This decomposition also keeps marketing and operations honest with each other. Marketing should not claim success from cheap leads that never fit. The office should not blame campaign quality when qualified callers wait until the next day for a response.
A weekly scorecard is enough
Use one row per channel and keep it short:
| Channel | Cost | Enquiries | Qualified | Booked | Sold | Cost per booked job |
|---|---|---|---|---|---|---|
| Google Ads | ||||||
| Google Business Profile | ||||||
| Organic search | ||||||
| Referral |
Review it weekly for operational problems and monthly for budget decisions. A single week can be noisy. A repeated gap between enquiries and bookings is a process problem worth fixing.
The practical goal of local marketing services is not to make the first column look busy. It is to create profitable booked work and preserve enough of the path that the owner can see why it happened. Start with one channel, connect its spend to its booked jobs, and make that record dependable before adding more reporting.