Cost per booked job: what good looks like

Cost per booked job is the marketing metric that actually matters for a contractor: not what you paid to generate a lead, but what you paid to put a job on the board. Here is how to build a target from your own numbers, why lead-source averages mislead, and how to watch the figure in real time before ad spend quietly outpaces revenue.

By Datacube content engineAutogeneratedJune 24, 2026

Definition

Cost per booked job = total marketing spend ÷ number of jobs booked from that spend

Cost per booked job measures what you paid, across one channel or all channels combined, to convert a homeowner into a scheduled appointment. It is a downstream metric: it starts where cost per lead stops, and it factors in the conversion work your CSRs do between a caller and a booked slot. For a home-service company, cost per booked job is often more actionable than cost per lead because two channels can generate the same CPL while delivering very different booking rates.

The full KPI definition lives on the cost-per-booked-job KPI page. This page is about setting a sensible target and tracking it by channel and season.

Warning

Data visibility gap: your ad platform shows CPL, not cost per booked job

Google Ads, Meta, and most lead-gen platforms report cost per lead. Your CRM or job-management system holds the booked-job count. Unless those two data streams are connected in a single view, you cannot calculate cost per booked job without building a spreadsheet after the fact. Most operators discover this gap when they try to compare channels: Google looks expensive per lead but books at 70 percent, while an aggregator looks cheap but books at 25 percent. The real cost per booked job tells a completely different story.

Why cost per lead is not enough

Imagine an HVAC company running two channels in August. Google Search Ads deliver leads at $85 each, which sounds steep. Local Services Ads (LSA) deliver leads at $42, which looks like a win. But when the CSR team books those leads, the Google callers book at 72 percent and the LSA callers book at 38 percent.

Google: $85 ÷ 0.72 = $118 per booked job. LSA: $42 ÷ 0.38 = $111 per booked job. The gap narrows to almost nothing once you account for conversion. And if the Google jobs average a higher ticket, the channel that looked overpriced is suddenly the most efficient dollar in the budget.

That is why a cost-per-booked-job target must be set by channel, not as a single blended number. A blended average will always obscure the channel worth doubling down on and the one worth cutting.

Sample channel breakdown: CPL versus cost per booked job (illustrative HVAC company)

ChannelCost per leadBooking rateCost per booked jobAction signal
Google Search Ads$8572%$118High intent; protect budget
Local Services Ads$4238%$111CPL looks cheap; cost per job is similar
Referral / word of mouth~$0 direct85–90%Near zeroProtect reviews and referral programs
Membership / repeat customer~$0 direct90%+Near zero (covered by membership fee)Membership ROI is enormous; track separately
Aggregator / lead-gen platform$30–$5525–40%$75–$220Wide range; audit booking rate before scaling

Info

Quick example: a plumbing company's real cost per booked job

A plumbing company spends $8,400 in a month across Google Ads and an aggregator, generating 140 leads total. Of those, 82 become booked jobs. Cost per booked job: $8,400 ÷ 82 = $102. If the average ticket is $380 and gross margin is 55 percent, the company earns about $209 in gross profit per booked job before any tech or material cost. At $102 per booked job, the marketing math works. At $200 per booked job, it becomes a serious conversation about channel mix, pricing, or booking-rate coaching. These are illustrative numbers; your trade, market, and pricing will produce different figures.

Illustrative cost per booked job ranges (starting points only)

There is no single correct number. Cost per booked job varies by trade, season, market size, service type, ticket size, and how you define a booked job. Use these illustrative ranges as a conversation starter, not a report card. Always compare to your own prior period first.

  • Cost per booked job vs. ticket and marginAs a rough internal check: if marketing cost per booked job is under 10–15 percent of your average ticket, the channel is usually worth keeping
    Good
    Current
    Your shop
    Target
    Under ~10–15% of avg ticket
  • Watch zone: cost approaching 20% of ticketProfit per job is compressing; investigate booking rate and channel mix before adding spend
    Watch
    Current
    Your shop
    Target
    ~15–20% of avg ticket
  • Action zone: cost exceeds 20% of ticketMarketing is eating margin; review channel efficiency, CSR booking rate, and average ticket together
    Poor
    Current
    Your shop
    Target
    Over ~20% of avg ticket
  • Blended cost per booked job (all channels)A blended number is a starting point; always break it out by channel to find the real story
    Watch
    Current
    Your shop
    Target
    Set from 90-day baseline
  • Referral and repeat cost per booked jobIncluding these in a blended average will pull it down and mask paid-channel inefficiency; report separately
    Good
    Current
    Near zero
    Target
    Track to understand true channel value

Formula

Cost per booked job = total channel spend ÷ booked jobs from that channel

The key decision is scope: are you calculating by channel, by campaign, by trade, or across the whole company? Start by channel so you can act on the number. Exclude referral and repeat calls from the paid-channel calculation, or report them in a separate row. Re-run the calculation monthly, and compare the same month year-over-year to account for seasonal demand swings.

Worked example: $8,400 spend ÷ 82 booked jobs = $102.44 per booked job for the month.

What cost per booked job looks like on a marketing dashboard

When ad-platform spend data and CRM booking data are consolidated in one place, cost per booked job becomes a live number you can watch through the day. These tiles illustrate a marketing board with call and booking data connected.

Dashboard preview

Dashboard figures are illustrative. Actual values depend on your ad spend, CRM, and booking data.

How to set and improve your cost per booked job target

  1. 01

    Pull 90 days of spend and booked jobs by channel

    Export ad spend from each platform and booked-job counts from your CRM or job-management system. Match them by date range and source. This is your baseline; most shops discover their true cost per booked job is 30 to 50 percent higher than the cost per lead they have been reporting.

  2. 02

    Calculate by channel, not blended

    Run the formula for each channel separately. Google Ads, LSA, an aggregator, direct, and referral will produce very different numbers. The channel with the lowest CPL is rarely the channel with the lowest cost per booked job.

  3. 03

    Set a channel-level target from your own baseline

    Take each channel's 90-day average cost per booked job and set a 5 to 10 percent improvement target. Borrowing industry averages without knowing your own baseline will produce a number that is either too easy or impossible given your trade, market, and team.

  4. 04

    Pair it with booking rate and average ticket

    Cost per booked job alone does not tell you if the channel is profitable. Add average ticket and gross margin per job. A channel that costs $180 per booked job but books $900 average-ticket service calls may outperform a channel with a $90 cost per booked job but $280 average tickets.

  5. 05

    Watch it monthly and compare year-over-year

    Seasonal demand swings make month-over-month cost comparisons misleading. Compare August to August, not August to May. A real-time dashboard that shows MTD cost per booked job alongside prior-year MTD lets you act during the month, not after the books close.

Owner takeaway

  • Cost per booked job is more actionable than cost per lead because it captures your CSR team's conversion work, not just the ad platform's delivery.
  • Always calculate by channel. A blended average will hide the channel worth scaling and the one draining budget.
  • Compare cost per booked job to your average ticket and gross margin, not to a borrowed industry number.
  • Most operators cannot calculate this in real time because ad spend and booked jobs live in different systems. Connecting those data streams is the first practical step.

Cost per booked job benchmark FAQs

See your ad spend and booked jobs side by side in one dashboard

Datacube can consolidate marketing spend from your ad platforms and booked-job data from your CRM into a real-time marketing dashboard, so cost per booked job, booking rate, and channel ROAS are live numbers, not end-of-month spreadsheet calculations. See what your marketing board could look like.