Cost per booked job is the total you spend on a marketing channel in a period, divided by the number of jobs that channel booked in the same period. It's the single most useful number a trades owner can track, because it connects marketing spend directly to work on the schedule. Clicks, impressions and rankings are all steps on the way; booked jobs are the destination.
This guide shows you how to calculate it, how to set a budget from it, and the traps that make it look better or worse than it really is.
Why clicks and leads aren't enough
A click is someone looking. A lead is someone asking. A booked job is someone paying. The gap between them is where most marketing money disappears.
Suppose two ad campaigns each cost $1,500 a month. Campaign A brings 60 calls; Campaign B brings 30. A looks twice as good. But if A's callers are mostly price shoppers and wrong-area enquiries, and it books 6 jobs, while B books 12, then B costs $125 per booked job and A costs $250. Judged on leads, you'd cut the better campaign.
How to calculate it, step by step
- Pick a period. A calendar month works for most trades.
- Add up the spend for one channel. Include ad spend and the share of agency or software fees that belongs to that channel.
- Count the jobs it booked. Only jobs that went on the schedule, not quotes sent.
- Divide spend by jobs.
Example: in March you spent $1,200 on Google search ads and $600 of your management fee relates to them, so $1,800 in total. Those ads produced 40 calls, 22 quotes and 11 booked jobs. Cost per booked job: $1,800 ÷ 11 = about $164.
How to set a budget from your own numbers
Work backwards from the profit on a typical job.
- Average job value: $900
- Gross margin: 40%, so $360 gross profit per job
- Share of gross profit you'll spend to win a new job: say 35%, so $126
Your target cost per booked job is about $126. If a channel delivers jobs below that, scale it. If it runs well above that for two or three months despite adjustments, cut it or change it.
Now turn that into a monthly budget. If you want 20 extra jobs a month at $126 each, you can spend about $2,520 a month across all channels and still hit your target. If that seems low compared with what agencies quote, the gap tells you something: either the target needs to rise (perhaps because repeat customers make the first job worth more), or the plan needs to be smaller and more focused.
Comparing channels fairly
Different channels behave differently, so compare them over the right time frame.
| Channel | How quickly it books work | How cost behaves over time |
|---|---|---|
| Search ads | Days | Steady; rises in busy seasons as competitors bid |
| Local Services Ads | Days to weeks | Per-lead pricing; depends on Google's screening and availability |
| Local search (map results) | Weeks to months | High at first, falls as visibility builds |
| Reviews program | Months | Low; improves conversion on every other channel |
| Website improvements | Weeks | One-off cost; lifts results from all traffic |
Organic channels look expensive in month two and cheap in month twelve. Judge them over at least six months. In our HVAC work, Roma Heating & Cooling grew organic traffic 400% in 12 months, which is the kind of curve that only shows up if you keep going long enough to see it.
The traps that distort the number
Counting quotes as jobs
A quote is not a booking. If your close rate is 40%, counting quotes makes your cost look 2.5 times better than it is.
Ignoring missed calls
If a third of calls go to voicemail and half of those never call back, your marketing is working harder than your numbers show. Fixing call answering can cut cost per booked job faster than any ad change. Missed-call text-back tools exist for exactly this reason.
Mixing new and repeat customers
A furnace maintenance customer who has used you for six years didn't come from last month's ads. Keep repeat work separate so it doesn't flatter the new-customer numbers.
Attribution by guesswork
"How did you hear about us?" is useful, but customers misremember. Use distinct tracking numbers for each channel, and treat the customer's answer as a second opinion.
Seasonal comparisons
Comparing January with July for a roofer, or a landscaper's April with November, tells you about the weather, not your marketing. Compare the same month year over year where you can.
What to do with the number each month
Once you're tracking it, a monthly review takes ten minutes:
- List each channel with its spend, calls, booked jobs and cost per booked job.
- Mark anything above your target in red.
- For each red line, decide: fix it (better landing page, better targeting), give it one more month, or cut it.
- Move the money from cut channels to channels below target.
That's the whole system. It's the same review we run with clients, and it's what our monthly reports are built around. In our HVAC work, this kind of discipline is how HVACDeal.ca reached 500+ leads at a 12:1 ROI.
A two-trade example
Numbers look different by trade, which is why no single benchmark works. Compare two companies spending the same $3,000 a month.
A drain-cleaning company averages $350 a job at 55% gross margin, so about $190 gross profit per job. To cover $3,000 it needs roughly 16 booked jobs just to break even on marketing. Volume matters, and fast call answering matters most.
A roofing company averages $11,000 a job at 30% gross margin, so about $3,300 gross profit per job. One booked job covers the month. But roofing sales cycles are longer, so it may take two or three months for a lead to become a job. The roofer should judge marketing over a quarter, not a month.
Same budget, very different maths, and very different ways of judging success.
Where to go next
If you want help setting this up, the services page explains how paid advertising and local search are tracked. The pricing page shows how plan fees fit into the budget maths, and the guide on choosing a marketing agency explains how to use this number to vet anyone you hire.
Frequently asked questions
What's a good cost per booked job?
There's no universal figure. A good cost per booked job is one comfortably below your gross profit per job, leaving room for overhead and profit. A $90 cost might be excellent for a $4,000 roof and terrible for a $180 service call.
How do I know which calls became jobs?
Use a separate tracking number for each channel and note the source when you book the job. Many field-service and booking tools let you tag the lead source; a spreadsheet works if you don't have one.
Should repeat customers count?
Track them separately. Marketing aimed at new customers should be judged on new jobs, but the lifetime value of a repeat customer is a good reason to accept a higher first-job cost.