Cost Per Booked Job Calculator
CPL is a vanity metric. The number that actually runs your business is cost per booked job. Input your CPL, follow-up rate, and close rate to see yours in real time.
Your Funnel Numbers
Average cost to generate one lead. Home service range: $10-$35.
What % of leads actually book on your calendar. 30-50% is typical with good follow-up.
What % of appointments turn into paying customers. 25-45% typical for home services.
Cost Per Booked Job
$179
Effective close rate: 14.0% — of every 100 leads, ~14 become paying customers.
Workable
$150-$300 per booked job is healthy for most home service trades. Watch CPL drift.
Want this number lower?
Book a free strategy call — we'll audit your funnel.
Common Questions.
Why does cost per booked job matter more than cost per lead?
A $15 lead that closes 8% of the time ($188/job) is worse than a $30 lead that closes 25% of the time ($120/job). CPL alone can be misleading — a lower CPL sometimes means lower-intent leads. Cost per booked job captures the full funnel.
What's a good cost per booked job for home services?
Under $300 is healthy for most trades. Under $150 is excellent. Over $500 usually means follow-up speed, creative, or offer needs work. Trade matters too — roofing $125-$300, HVAC $100-$200, plumbing $70-$165.
How do I improve my cost per booked job?
Three levers, biggest-impact first: (1) improve speed-to-lead — contact within 5 minutes boosts close rate 3-5x; (2) tighten appointment-setting script + booking friction; (3) improve offer so more leads self-qualify before becoming appointments.
Does this tool factor in management fees or just ad spend?
Just ad spend (CPL). Management fees are separate — add ~$1,500-$2,500/mo to your total cost of ownership on top of this calculation. For total cost per customer, divide total monthly spend by booked jobs.
Why does my actual CPBJ differ from what I calculate here?
Usually one of three things: (1) you're averaging conversion rates over too short a window — 14+ days is needed to smooth out weekly variance; (2) you're counting unqualified leads in your CPL (fake form fills, wrong numbers); (3) team follow-up quality varies by day/week — measure your best week vs your worst week and the gap reveals your follow-up variance. Clean these three before trusting the math.
What should I do if my cost per booked job is above $300?
Three-step fix, in order: (1) FOLLOW-UP: implement automated SMS + call within 5 minutes of lead submit (usually lifts close rate 50-100%); (2) OFFER: use the Offer Grader tool to identify weak offer elements that are attracting price-shoppers; (3) CREATIVE: rotate in 2-3 new creative variations to break out of audience fatigue. Most contractors jump to #3 first — that's backwards. Fix #1, #2 before wasting money on new creative.
How does this compare to my industry's typical cost-per-acquisition?
Use this as a self-benchmark, not external comparison. Industry CPA reports average across hundreds of accounts at all skill levels — a $400 'average' includes both $150 winners and $800 underperformers. Your goal: beat your own previous quarter's CPBJ, then beat that quarter's. Comparing to 'industry average' often produces complacency at mediocre numbers. Aim for top-quartile performance in your own trade, not average across all trades.
How should I weigh cost-per-booked-job against the lifetime value of the customer?
Always weigh against LTV, not first-job value. A $400 cost-per-booked-job looks expensive on a $1,200 first invoice (ROAS 3x) but if that customer averages 3 jobs over 5 years at $1,200 each ($3,600 LTV), the real ROAS is 9x. For trades with strong customer retention or recurring revenue (HVAC service contracts, lawn care, pest control), a higher CPBJ is justified by long-tail revenue. For one-time trades (roofing replacement, solar install), the first job needs to carry more of the math. Run the LTV Calculator (/tools/ltv-calculator) first to know your real LTV — most contractors discover their effective ROAS is 2-3x what they thought once the lifetime math is included.
What's the right way to calculate cost-per-booked-job when leads come from multiple ad platforms?
Build a unified attribution view, not platform-specific reports. Standard contractor stack: Meta + Google LSA + Google Search + organic. The calculation: TOTAL ad spend (across all platforms) ÷ TOTAL booked jobs that came from any paid source = blended cost-per-booked-job. Then segment per-platform to see which is most efficient: Meta-attributed CPBJ, LSA-attributed CPBJ, etc. Critical: don't double-count jobs across platforms. A customer who clicked your Meta ad, then later searched 'your business name' on Google and clicked LSA, gets attributed to LSA in last-click models — but Meta deserves credit too. Use a CRM source field that captures 'first touch + last touch' or run a quarterly survey of new customers asking 'what was the FIRST place you saw us?' to calibrate the multi-touch picture. Single-platform CPBJ numbers always understate Meta's contribution because Meta is usually upper-funnel.
Should I include management fees and creative production costs in cost-per-booked-job, or keep them separate?
For internal decisions: include them. For benchmarking against industry: exclude them. Two different views serve different purposes. INCLUSIVE CPBJ (ad spend + agency fees + creative production ÷ booked jobs): tells you the TRUE cost of every customer. Use this for pricing decisions and ROAS targets. EXCLUSIVE CPBJ (ad spend only ÷ booked jobs): standard industry metric for comparing campaign efficiency. Use this when an agency reports 'we hit a $150 cost per booked job' — to translate to your business reality, add their retainer + your creative costs. Example: agency says $150 CPBJ on $5K ad spend (33 jobs). Add $2K agency retainer + $500 creative = $7,500 / 33 jobs = $227 inclusive CPBJ. That's the real number for your bookkeeping. Track both numbers; report inclusively to yourself, exclusively to vendors.
How do I read my cost-per-booked-job trend line — is a 10% month-over-month rise a red flag?
Depends on context. Build a 3-tier alert system: (1) GREEN ZONE (CPBJ within 10% of baseline) — normal week-to-week noise; ignore; (2) YELLOW ZONE (CPBJ 10-25% above baseline for 3+ weeks) — early warning. Investigate creative fatigue, audience saturation, or seasonal drift. Don't change anything yet, but flag for review; (3) RED ZONE (CPBJ >25% above baseline for 2+ consecutive weeks) — actionable problem. Run the 60-minute diagnostic: check tracking, creative fatigue, landing page, follow-up speed. Compare CPBJ to baseline AND to last year's same-week CPBJ — if both are off, it's a real account issue; if only the recent baseline is off, it might be seasonal recovery toward last year's number (do nothing). Most contractors panic at green/yellow movements and pause campaigns unnecessarily — costing them learning-phase resets that take weeks to recover from. Trust the 3-tier system; act on red zone, watch yellow zone, ignore green zone.
What's the right way to set CPBJ targets for my team or agency — fixed or flexible?
Range-based, not fixed. Fixed targets ('hit $300 cost-per-booked-job') trigger panic + bad decisions when normal market noise causes a temporary spike. Range-based targets ('keep CPBJ between $250-$400') reflect reality + give the team room to optimize without panic-pausing campaigns. Build the range using your 90-day historical data: floor = best month's CPBJ; ceiling = worst month's CPBJ × 1.1 (10% margin for noise). Action triggers: (1) below floor for 14+ days = scale UP budget; (2) above ceiling for 14+ days = pause + diagnose; (3) within range = leave alone, focus on creative iteration not budget changes. Update the range quarterly as your data improves. Most contractors set a single 'target CPBJ' and treat any deviation as a problem — leading to constant fiddling that prevents algorithm stability. Range-based targets give you a stable operating zone with explicit triggers for action.
How does my CPBJ trend tell me whether to invest in better creative vs better follow-up vs better landing page?
Decompose CPBJ into its three components + identify which is dragging. CPBJ = (CPL) × (1 / lead-to-appointment rate) × (1 / appointment-to-job rate). Three diagnostic patterns: (1) HIGH CPL but normal close rate = creative + audience problem (refresh creative + try new audience); (2) NORMAL CPL but low lead-to-appointment rate = follow-up speed or qualification problem (audit response time + script); (3) NORMAL CPL + appointment rate but low close rate = sales presentation or pricing problem (review proposals + sales script). Most contractors see 'high CPBJ' and randomly try fixes; the decomposition tells you exactly where to invest. Run this calculator with both your numbers AND benchmarks for your trade — the gap between your numbers + benchmarks shows you which component is most off. Fix the biggest gap first, recalculate, then move to the next biggest. Sequential fixes vs random fixes = night-and-day difference in efficiency.
What's the right way to communicate CPBJ to my agency or in-house team without creating defensiveness?
Frame it as joint accountability, not blame. Three communication tactics: (1) SHARE THE FRAMEWORK first — get team buy-in on 'cost per booked job is the metric we optimize against' BEFORE introducing specific numbers. Explain why CPL alone is misleading; ask their feedback. Now you're aligned on metric definition; (2) PRESENT historical CPBJ as a SHARED context — 'Our 90-day CPBJ is $385. Last quarter it was $340. Let's understand what changed.' Not 'why is your CPBJ up?' Past-tense + we-language vs accusatory; (3) FOCUS the conversation on UPSTREAM levers, not blame — 'What can we test this month to drive CPBJ down?' is forward-looking + collaborative. 'Why didn't you hit target?' is backward + adversarial. The goal: team treats CPBJ as a shared metric to improve together, not a stick to beat them with. Most contractors share metrics in ways that make agencies defensive + start writing emails to justify rather than focusing on improvement. Frame it right + the conversation shifts from CYA to optimization.
How does my CPBJ math change when I have ROBOTIC repeat customers (HVAC tune-up subscribers, lawn-care recurring clients)?
Recurring customers dramatically lower CPBJ over their lifetime. Standard CPBJ (single-job math): ad spend ÷ booked jobs. Recurring-CPBJ (lifetime math): ad spend ÷ EXPECTED LIFETIME bookings from each customer. Example: $300 ad cost to acquire a pest-control customer who books quarterly visits at $150 each for 24 months = 8 booked services × $150 = $1,200 lifetime revenue from $300 acquisition. Effective CPBJ per service = $300/8 = $37.50. Massive difference vs single-job thinking. Implication for ad bidding: contractors with recurring services can bid 2-4x higher on Meta CPL than one-shot trades + still profit. Most pest-control / HVAC-maintenance / lawn-care contractors bid as if every customer is one-and-done; they're leaving 50-70% of growth potential on the table. Run this calculator with two CPBJ outputs: 'first-job CPBJ' (immediate breakeven) + 'lifetime-CPBJ' (long-term ad-bid ceiling). Use the first for short-term decisions; use the second to set max acceptable cost-per-booked-job in your scaling strategy.