What it is
A lead-gen platform sells you the homeowner's phone call. You pay per lead, per booked appointment, or a monthly subscription, and the platform feeds you people who clicked "I need my AC fixed." The pitch is always the same: more calls, full calendar, grow your business. Sometimes that's true. Sometimes you're paying $75 a lead for tire-kickers who also called four other shops, and you're lighting money on fire while feeling busy. The only way to know which one you've got is the math — customer acquisition cost, or CAC, in plain field terms.
Why it matters
"It feels like it's working" is how shops talk themselves into unprofitable marketing for years. The phone rings, so it must be good, right? But a ringing phone that costs you more per job than the job earns is worse than a quiet one — you're paying to lose money at volume. CAC math turns the gut feeling into a number: once you can calculate cost per acquired job and stack it against gross profit per job, the decision makes itself, platform by platform.
The four numbers you need
Everything comes down to four inputs. Track these and the rest is arithmetic.
- Cost per lead (CPL) — what you pay the platform for one lead, all-in. If it's a $600/month subscription that delivers 40 leads, your CPL is $15. If it's pay-per-lead, it's whatever they charge per lead. Roll the monthly fee in either way.
- Close rate — of the leads you get from this platform, what fraction turn into a paid job. Not your overall close rate — this platform's. Shared, low-intent leads close worse than your referrals, and that difference is the whole story.
- Average ticket — the average revenue of a job you win from this source.
- Gross profit margin — the share of that ticket left after the direct cost of doing the job (the part, the labor, the fuel). This is the money the job actually contributes — not revenue, not net profit.
The math (a worked example)
Let's run real-feeling round numbers. Say a platform charges you a flat $25 per lead.
Step 1 — Cost per acquired job. Leads aren't jobs. Most don't close. If your close rate on this platform's leads is 20% (1 in 5), then it takes 5 leads to land 1 job:
`` Leads needed per job = 1 ÷ close rate = 1 ÷ 0.20 = 5 leads Cost per acquired job = 5 leads × $25 = $125 ``
So this platform's real cost to put one paying job on your books is $125 — that's your CAC for this source. The $25 sticker price was never the real number; the four leads that didn't close still cost you.
Step 2 — Gross profit per job. Say the average ticket from these leads is $450, and your gross margin on that work is 50% (after the part, labor, and fuel that the job directly consumed):
`` Gross profit per job = $450 × 50% = $225 ``
Step 3 — The verdict. Compare:
`` Gross profit per job $225 CAC per job - $125 ----------------------------- Contribution per job $100 ✓ profitable ``
You spend $125 to make $225 of gross profit, netting $100 per job toward overhead and profit. That platform is a keeper — it's roughly a 1.8x return on gross profit, and you'd want to feed it more.
Now change one number and watch it flip. Same platform, but these leads are shared and low-intent, so your close rate is only 8%:
`` Leads needed per job = 1 ÷ 0.08 = 12.5 leads Cost per acquired job = 12.5 × $25 = $312.50 ``
`` Gross profit per job $225.00 CAC per job - $312.50 ------------------------------ Contribution per job -$87.50 ✗ losing money every job ``
Identical lead price. Identical ticket. The only thing that changed was close rate, and now you lose $87.50 on every single job you "win." Same busy phone, opposite outcome. That's why CPL alone tells you nothing — close rate and ticket size are what decide it.
How to decide per platform
Don't judge "lead-gen" as one thing — judge each platform separately, because they perform completely differently. Platform A's leads might close at 25% on a $500 ticket and crush it; Platform B's might close at 6% on a $200 diagnostic and bleed you. Run the three-step math on each source's own numbers, and set a CAC ceiling: cost per acquired job should stay comfortably under gross profit per job, with room left over. If a source's CAC creeps toward where contribution hits zero, it's dead weight.
Two adjustments. Credit lifetime value only when it's real — a customer who becomes an agreement holder or repeat caller justifies a higher first-job CAC, but most low-intent lead-gen is one-and-done, so don't bank on stickiness you won't get. And account for the shared-lead haircut: if five shops get the same lead, your effective close rate craters and CAC balloons. The "cheap" lead sold five times over is often the expensive one.
How to track it
You can't manage what you don't measure, and most shops measure none of this. Keep it simple: tag every lead with its source when the call comes in (without that, your numbers are blended mush); track lead → booked → closed → ticket per source in a spreadsheet; and compute CAC (spend ÷ jobs won) and contribution (gross profit − spend) monthly. Green sources get fed, red sources get cut — but watch the trend, not one month. A single slow month isn't a verdict; three months of negative contribution is.
The headaches & how to handle them
Shared leads and the race to answer. Many platforms sell the same lead to several contractors, so speed-to-answer becomes everything and your close rate suffers no matter how good you are. Factor that lower close rate into your CAC and don't pay premium prices for non-exclusive leads.
Junk and unqualified leads. Wrong numbers, renters who can't authorize work, people price-shopping a $39 tune-up — all drag close rate down and CAC up. If a platform's junk rate is high, your real CPL is far above the sticker. Some platforms credit bad leads if you report them promptly; use that, but know it only trims the waste, it doesn't fix a fundamentally low close rate.
Tips & gotchas
The sticker price per lead is a trap; cost per acquired job is the only number that matters. A $15 lead at a 5% close rate costs $300 a job; a $40 lead at a 30% close rate costs $133 — the cheaper lead is the expensive one. Close rate is the lever that decides everything, and it's mostly your speed, your phone skills, and the intent quality of the leads, so two shops on the identical platform get opposite results. A busy phone is not the goal — profitable jobs are.
Bottom line
A lead-gen platform is worth it only when your cost per acquired job comes in comfortably below your gross profit per job — and you can't know that without the math. Track four numbers per platform (cost per lead, close rate, average ticket, gross margin), turn them into cost per acquired job and contribution, and judge each source on its own. Feed the green ones, cut the red ones. Same lead price, a 12-point swing in close rate, and a profit machine becomes a money pit — so measure it, don't feel it.