Your lead cost climbed 40% year-over-year while your close rate stayed flat. You’re throwing money at Google Ads because you don’t know what else to do, and your last agency promised “exponential growth” before vanishing in month four. You need a framework that ties every dollar—and every decision—to one number: how many booked jobs landed in your calendar this month.
This is the Local Lead Launcher playbook. It’s not about vanity metrics. It’s not about impressions, clicks, or “qualified leads.” It’s about the cost to book a job on your schedule, how to lower it, and how to compound that advantage every 90 days.
The Unit Economics You Actually Need
Stop measuring leads. Measure booked jobs.
A lead is a phone number. A booked job is a calendar slot with a homeowner who said yes to a time. Everything else is noise.
Your unit economics live in one ratio:
Cost-Per-Booked-Job = Total Marketing Spend / Number of Jobs Booked
For a $10M plumbing operation, your cost-per-booked-job usually sits between $120–$280, depending on your market, service type, and how tight your sales process is. HVAC runs similar. Roofing jumps to $200–$400 because the job cycle is longer and the decision tree deeper. If your cost-per-booked-job is north of $350 and you’re not in a high-margin specialty service (like commercial or insurance restoration), you have a leaking funnel, not a lead problem.
Most operators don’t know this number. They know how much they spent on ads. They don’t know how many jobs actually booked as a result. That’s why they keep writing checks to agencies.
The Math That Matters
Let’s build this out. Say you’re a $12M HVAC shop doing 3–4 service calls per crew per day. You close about 35% of indoor estimate opportunities. Your average job is $3,800.
If your cost-per-booked-job is $200, and you book 50 jobs per month from marketing, you’re spending $10,000 on marketing to generate $190,000 in revenue. Gross margin on those jobs: roughly $95,000. You’re reinvesting 10% to get 47.4% back. That compounds.
If your cost-per-booked-job is $450, you’re spending $22,500 for the same 50 jobs. Your gross margin shrinks to $72,500 after marketing spend. You’re reinvesting 23% for the same return. That breaks.
One number. One decision tree. Stop optimizing for leads. Optimize for booked jobs, and everything else follows.
The Four Layers of the Launcher Method
Lowering cost-per-booked-job isn’t one tactic. It’s four layers that stack. Remove one and the whole structure gets shaky.
Layer 1: Programmatic Local SEO
This is your cost-free (or nearly free) baseline.
You own your Google Business Profile. Your service area pages are written for humans, not algorithms (but they rank anyway). Your citations are clean across Yelp, Home Advisor, and 15 other directories. This takes 8–12 weeks to build, costs you $0 if you do it, or $500–$1,200 if you hire someone competent to layer it in.
Result: You capture 15–25% of your monthly booked jobs from organic search and GBP alone, at a cost-per-booked-job near zero (time only, if you’re doing it). You’re not dependent on the algorithm because you’re relying on feed velocity (regular posts and Q&A activity on GBP) and local authority signals (clean citations, on-page relevance).
This layer doesn’t scale fast. But it doesn’t stop working, and it doesn’t require paid media budget.
Layer 2: Paid Ads on Margin
Google Ads and Facebook fill the gap between what organic delivers and what your crew can handle.
The rule: Run paid ads only on jobs where the gross margin covers the cost-per-booked-job with room left over for overhead and profit.
Your average service call is $3,800. Gross margin is 50%, so $1,900 per job. Your target cost-per-booked-job is $200. That leaves $1,700 to cover crew wages, truck, parts, overhead, and profit on that job.
Your replacement system (furnace install or panel replacement) is $8,500 with 55% margin ($4,675). Your target cost-per-booked-job for that service is $350. You run a separate campaign, bid differently, and measure them separately.
Most operators run one ad account, one bid strategy, one landing page. They’re averaging the margin across service lines and wondering why high-margin work gets undercut by low-margin calls.
Split by service. Set cost targets per service line. If a service line can’t justify a cost-per-booked-job of $150, don’t bid on it. Let organic and referrals handle it.
Layer 3: Speed-to-Lead
A lead that sits in your inbox for 4 hours is worth half what it’s worth in 15 minutes.
Call answer rate drops 30–40% for every hour of delay. If 60 people called you yesterday and only 18 booked, you closed at 30%. If you called back those 18 people within 15 minutes of their inquiry, you might have closed 24. Same ad spend. Same leads. Different system.
Speed-to-lead means: Someone texts your number at 2 p.m. on a Wednesday. A human (not a bot) or an intelligent routing system acknowledges them in under 2 minutes. Appointment setter or crew lead calls back within 8 minutes. Time to book: 12 minutes.
This requires: A phone number that’s monitored and forwarded in real time, not a contact form that lands in a folder. An appointment system that’s open and visible to everyone. Criteria for who answers (best closers take priority calls). Weekly tracking of answer rate, call-to-book rate, and cycle time.
Cost to implement: $400–$800 one-time (call routing and tracking software like CallRail or JoinMyVS), then $100–$200 monthly. The ROI hits in month one. One extra booked job per week (from faster answer time) is $10,400 per year in gross margin at a $200 cost-per-booked-job.
Layer 4: Reporting
You measure cost-per-booked-job by channel, by day, by service line, and by rep.
Google Ads drove 18 booked jobs last month at a cost-per-booked-job of $240. Organic GBP drove 8 at $0. Facebook drove 6 at $310. Your inside sales rep closed at 42%, your outside rep at 29%. Your emergency calls close at 28%, your planned-replacement jobs at 56%.
This isn’t vanity. This is inventory. You now know where to shift budget (Facebook is expensive, pull $500 back, test different messaging). You know which rep to coach (outside rep needs objection-handling training). You know which service line to push (emergency calls aren’t margin-efficient, double down on planned work).
Most operators report on 10 metrics and understand zero of them. You report on one: cost-per-booked-job by channel and rep, every week. That’s the dashboard.
When to Invest Where
You have $1,500 a month to spend on marketing. You’re at $12M revenue and growing slowly. Where does it go?
- Weeks 1–4: Build Layer 1. Spend $500 to clean up Google Business Profile, add 10 service area pages, and build citations. This takes 8–12 weeks to compound but costs almost nothing. Start this now; results lag.
- Weeks 2–6: Implement Layer 3. Set up call tracking and speed-to-lead systems ($400 one-time, $150 monthly). Train your team on the new process. Baseline your current answer time and close rate. This move typically lifts booked jobs 12–18% from the same ad spend inside 30 days.
- Weeks 4–12: Test Layer 2 (Paid Ads). Once you know your cost-per-booked-job baseline (from the speed-to-lead lift), run $1,000 per month on Google Ads, split 70% to your highest-margin service line, 30% to test. Track cost-per-booked-job per service line. If one service climbs above $350, pause it. If one lands below $180, add budget.
- Weeks 8+: Optimize and Compound. Layer 1 is now feeding 12–18% of your booked jobs at zero marginal cost. Layer 3 is running smoothly, and your answer time is under 8 minutes. Layer 2 (paid ads) is tuned and running at target cost-per-booked-job. Now you shift the remaining $400 of budget (as Layer 1 scales) into a second paid channel (Facebook, or local YouTube ads) and test.
The sequence matters. Don’t run ads before you’ve fixed your answer time. You’ll burn money on leads that don’t convert. Don’t ignore Layer 1 because it’s “slow.” Free jobs compound over 6 months and stay free forever.
How Compounding Works
Month 1: You book 30 jobs from all sources. Cost-per-booked-job is $280 (bloated). You spend $8,400 on marketing.
Month 2: You’ve implemented speed-to-lead and cleaned up GBP. Same ad spend ($8,400), but now 38 jobs book (you closed harder on inbound calls). Cost-per-booked-job drops to $221. You also have 4 jobs booking purely from organic search (Layer 1 starting). Real booked jobs: 42.
Month 3: Organic is now feeding 6–7 jobs per month. Your paid ads are tuned per service line. You’re booking 48 jobs from a still-flat $8,400 spend. Cost-per-booked-job is now $175. You could cut spend to $6,000 and still book 36 jobs, pocketing $2,400 in margin. Or you hold spend and run 48 jobs through your crew.
Month 6: Organic climbs to 12–15 jobs per month. Your speed-to-lead advantage is sticky (new habits embed). You’ve tested a second paid channel. You’re now booking 55–60 jobs per month from $8,400 spend. Cost-per-booked-job is $140–$155. Your margin on those jobs (after marketing) is $80,000–$95,000 per month, not $30,000.
The compounding isn’t fast. It’s reliable. And unlike agencies that hold you hostage with retainers, each layer keeps working whether you pay for it next month or not.
The Cost-Per-Booked-Job Ceiling
You will hit a ceiling where cost-per-booked-job stops dropping. For most $5–$20M home-service shops, this happens around $130–$180 depending on service type and market.
That’s not failure. That’s maturity. At that point, adding budget doesn’t lower cost (you’re not finding cheaper channels). Adding budget just increases volume, which you might not have crew bandwidth to handle.
When you hit the ceiling, the choice is clear: Cap your marketing spend, maximize profit on booked jobs (tighter closeout, better follow-up), or grow crew capacity to absorb more volume. Most operators don’t think in these terms until the ceiling hits them. By then, they’ve already spent a year chasing lower cost-per-booked-job and left profit on the table.
What to Do This Week
Pick one action.
- Calculate your current cost-per-booked-job. Pull your marketing spend for the last 30 days. Count the number of jobs that booked (scheduled and confirmed, not estimates given). Divide. If you don’t know booked jobs by source (which marketing channel led to that job), start tracking this now. Use CallRail, JoinMyVS, or even a Google Sheet. You can’t optimize what you don’t measure.
- Audit your Google Business Profile. Is it claimed? Is it complete (hours, photos, services listed)? When was the last post or Q&A activity? If you haven’t posted in 60 days or answered a question in 90 days, your GBP is sleeping. Wake it up. Post once a week. Answer every question within 48 hours. This costs nothing and feeds Layer 1.
- Test your answer time. Call or text your business number right now. How long before someone responds? Then text a follow-up 30 minutes later. How long that time? If it’s more than 15 minutes on average, you’re losing 30% of inbound calls. This is a crew problem and a systems problem, not a lead problem. Fix it before you add more leads.
Do one. Report the number. The playbook builds from there.
Receipts
Three operators. Three numbers that didn’t exist before us.
Operator confidentiality means we don’t name names publicly. We’ll connect you with the operator on a 1:1 reference call after the diagnostic.
$9M HVAC operator with two underutilized markets. We rebuilt local SEO + LSA + speed-to-lead in 45 days. Q1 booked 842 jobs above prior-year baseline.
Multi-market HVAC · LLL since 2025
Plumbing operator leaning 90% on referrals. We launched paid + programmatic SEO across two metros. Q1 added $1.9M attributable.
Multi-metro plumbing · LLL since 2025
Roofing operator with $480 cost-per-booked-job. We rebuilt LSA + landing pages around storm triggers. CPBJ down 43% in 90 days, same spend.
Regional roofing · LLL since 2025
Common questions
Do you really not gate this with an email?
No. If you read it and decide to call us, great. If not, the playbook still helped you. That is the trade.
Ready to swap dashboards for a calendar full of jobs?
30-minute strategy call. We pull your numbers, find the bottleneck, give you the plan. No deck. No pitch. No follow-up sequence.