Cost per booked job calculator
Enter your total marketing spend and the number of jobs your CSR team booked from that spend to see your cost per booked job in seconds. Then read how to watch it live by lead source instead of rebuilding the math each month.
Calculator
The cost hiding inside every marketing budget
Cost per booked job is what you actually paid, in marketing dollars, for each job your CSR team booked from inbound leads. Most home-service companies know their ad spend. Far fewer know how many of those calls turned into booked jobs, or what each booking cost after booking rate is factored in. The result is a marketing budget that looks productive on the ad platform but leaks money between the call and the calendar. This calculator takes two inputs, your total marketing spend and your booked jobs from that spend, and returns the number that connects them. Enter your own figures below. The formula works for any trade: HVAC, plumbing, electrical, roofing, garage door, or pest control.
Calculate your cost per booked job
Use the same period for both inputs. Marketing spend and booked jobs must cover identical dates or the number will not reflect a real relationship.
Cost per booked job
$125.00
Cost per booked job = total marketing spend divided by booked jobs. At the sample inputs, $25,000 spent to book 200 jobs is $125.00 per booked job. A lower number means more bookings for the same dollars; a rising number means fewer bookings or more spend, both of which deserve a closer look.
Figures are illustrative. Results vary by trade, season, market, booking rate, and channel mix. This calculator reflects marketing cost only and does not include CSR labor or overhead.
Formula
Cost per booked job = total marketing spend / jobs booked from that spend
Keep marketing spend and booked jobs inside the same date window. Count only jobs that came in as inbound leads from paid or earned marketing channels, not referrals or repeat customers, so you are measuring what the dollars actually produced. If you have booked jobs from multiple channels, sum the channel-level booking counts and the channel-level spend totals separately before dividing, or run the calculator once per channel to see which channel is cheapest per booking.
Some operators call this metric cost per acquired job or cost per booking. The formula is the same: spend divided by booked jobs.
Sample: cost per booked job by lead source
| Lead source | Spend (month) | Calls received | Booking rate | Jobs booked | Cost per booked job |
|---|---|---|---|---|---|
| Google Local Services | $8,000 | 160 | 78% | 125 | $64 |
| Google Search Ads | $12,000 | 140 | 55% | 77 | $156 |
| Social media ads | $5,000 | 60 | 35% | 21 | $238 |
| Blended (all three) | $25,000 | 360 | 62% | 223 | $112 |
Info
Invisible cost: blended rate hides your most expensive channel
In the table above, the blended cost per booked job is $112. That looks reasonable until you separate the channels. Social ads cost $238 per booking, more than three times what Local Services Ads cost. The blended number masks that entirely. Any operator optimizing on the blended rate would keep all three channels at the same level instead of pulling budget from social and shifting it where bookings are cheaper.
Warning
Common mistake: mixing cost types
Cost per booked job should reflect marketing spend only. Including CSR wages, phone system fees, or vehicle overhead in the numerator produces a number that mixes acquisition cost with operating cost. The result is not comparable across periods or channels and makes budget decisions harder. Keep the numerator to paid media, agency fees, and any spend that directly generates inbound leads.
Reading your cost per booked job trend
What good looks like is your own baseline holding or falling as booking rates improve and job volume grows. These signals are directional, not universal benchmarks: the right number varies by trade, market, and season.
- Cost per booked job vs prior periodHolding flat or falling while booked job volume stays steady or rises. Marketing dollars are producing at least as many bookings.Good
- Current
- Target
- Channel with cost per booked job 2x the blended averageThat channel may still be worth running for other reasons (brand, reach), but shift spend toward lower-cost channels before expanding it.Watch
- Current
- Target
- Spend up, booked jobs flatCost per booked job rising because more calls are not becoming bookings. Check CSR booking rate before adding more budget to ads.Poor
- Current
- Target
- Booking rate dropping while spend holdsCSR performance or call handling is eroding the marketing investment. Every percentage point of booking rate lost raises cost per booked job proportionally.Poor
- Current
- Target
- Cost per booked job falls with no spend changeCSR team booked a higher share of calls this period. Capture what changed: script, scheduling, offer, or something else you can repeat.Good
- Current
- Target
| Metric | Current | Target | Status |
|---|---|---|---|
| Cost per booked job vs prior periodHolding flat or falling while booked job volume stays steady or rises. Marketing dollars are producing at least as many bookings. | Good | ||
| Channel with cost per booked job 2x the blended averageThat channel may still be worth running for other reasons (brand, reach), but shift spend toward lower-cost channels before expanding it. | Watch | ||
| Spend up, booked jobs flatCost per booked job rising because more calls are not becoming bookings. Check CSR booking rate before adding more budget to ads. | Poor | ||
| Booking rate dropping while spend holdsCSR performance or call handling is eroding the marketing investment. Every percentage point of booking rate lost raises cost per booked job proportionally. | Poor | ||
| Cost per booked job falls with no spend changeCSR team booked a higher share of calls this period. Capture what changed: script, scheduling, offer, or something else you can repeat. | Good |
How to put the number to work
01 Pull the inputs from the same closed period
Use a complete week or month where you have final ad spend data and closed-out job records. Partial periods where invoices or ad charges are still pending will distort both inputs.
02 Run it per channel, then blend
Calculate cost per booked job for each lead source separately: Google Local Services, paid search, social, direct mail, or whatever channels you run. The blended number is useful for budgeting; the channel-level numbers are what drive decisions about where to shift spend.
03 Pair it with booking rate
Cost per booked job is the product of two things: cost per lead and booking rate. If your cost per booked job is rising, check both. A CSR team booking 5% fewer calls has the same effect on this metric as a 5% increase in ad spend. Fix booking rate before adding budget.
04 Compare it against average job revenue
Cost per booked job only matters in context of what each booked job is worth. If your average ticket is $350 and your cost per booked job is $200, your margin on acquisition is thin before any other operating costs. If your average ticket is $2,000, the same $200 is easy to absorb.
05 Move it off the spreadsheet
Once you are checking cost per booked job by channel every week, rebuilding the export stops keeping up. Connect marketing platform data and CRM booking counts to a live dashboard so the number updates as calls come in and jobs are booked, without a manual pull.
Related template
Track cost per booked job alongside your full marketing scorecard
Cost per booked job is one input to a marketing dashboard that actually drives decisions. The marketing ROI calculator for contractors pairs it with revenue per lead source, ROAS by channel, and booking rate so you see the whole picture in one view instead of juggling three reports.
- Cost per booked job by channel and period
- Booking rate broken out by CSR and lead source
- Revenue and ROAS per marketing channel
- Built to connect to ServiceTitan, Housecall Pro, Workiz, and ad platform data
Cost per booked job calculator FAQ
Replace this one-time calculation with a live number
This calculator tells you what cost per booked job was last month. A datacube dashboard tells you what it is right now, by channel, by CSR, and by location, so you can move budget and coach your team while the month is still open.
Keep exploring
Related
Go deeper
