A $38 lead sounds cheap. Then you close 1 in 12 of them and the job you booked cost you $456 in lead spend before you touched a tool.
That’s the whole argument. Not “lead services are a scam” and not “they’re free money.” It’s arithmetic, and most contractors never run it because the charges come in dribs — $22 here, $61 there — and never land in one line on the P&L.
Here’s how to run it on your own numbers, in about 20 minutes.
The funnel nobody shows you
A purchased lead is not a customer. It’s a phone number with a leaky pipe between it and your bank account. Four leaks:
- Contact rate. How many leads you actually reach. Wrong numbers, people who filled out a form at 11pm and forgot, people already booked.
- Appointment rate. Of the ones you reach, how many let you come look.
- Quote rate. Of the ones you visit, how many you actually bid (some are out of scope, out of area, or wanting something you don’t do).
- Close rate. Of the ones you bid, how many sign.
Multiply those four and you get your booking rate. Here’s a plausible set of numbers for a residential remodeler buying shared leads on a mainstream platform:
| Stage | Rate | Leads remaining |
|---|---|---|
| Leads purchased | — | 100 |
| Reached by phone or text | 65% | 65 |
| Agreed to an appointment | 55% | 36 |
| Actually quoted | 80% | 29 |
| Signed | 28% | 8 |
Eight jobs out of 100 leads. That is not a disaster — it’s roughly what shared-lead platforms produce for a trade where three other contractors got the same name at the same second. But it changes the math completely.
At an average $45 per lead, 100 leads cost $4,500. Eight jobs means $562 in lead cost per booked job.
Now put that against your gross profit
Cost per booked job is meaningless alone. You need it next to the gross profit on the average job that comes from that channel.
Three scenarios, same $562 acquisition cost:
| Channel job type | Avg ticket | Gross profit @ 35% | Lead cost/job | Profit after lead cost |
|---|---|---|---|---|
| Faucet replacement | $340 | $119 | $562 | -$443 |
| Water heater swap | $2,100 | $735 | $562 | $173 |
| Bath remodel | $14,000 | $4,900 | $562 | $4,338 |
Same platform. Same spend. One is a bleeding wound, one is marginal, one is excellent.
This is the single thing that decides whether paid leads work for you: the ticket size of the jobs the platform actually sends, not the ticket size you wish it sent. Platforms are very good at sending you the small stuff, because small stuff is what homeowners search for at volume.
Note also that “gross profit” here means after labor and materials but before overhead. If you haven’t separated those, start with the overhead math before you evaluate any marketing channel, or you’ll congratulate yourself on jobs that lost money.
The numbers you need to collect
Stop estimating. Pull the real ones. You need five fields and 30 days of history:
- Total spend on the platform last 90 days (include subscription, not just per-lead charges)
- Number of leads received
- Number you booked
- Total revenue from those booked jobs
- Total direct cost (labor + materials) on those jobs
From those:
- Cost per lead = spend ÷ leads
- Booking rate = booked ÷ leads
- Cost per booked job = spend ÷ booked
- Gross profit = revenue − direct cost
- Return = gross profit ÷ spend
A return of 3x is roughly where paid leads start making sense for a small shop — you’re spending $1 to produce $3 of gross profit, and that $3 still has to cover overhead and leave something. Below 2x, you are running a charity for a tech company. Above 5x, spend more.
If you’re not already tracking actual costs per job, a simple job costing sheet gives you fields 4 and 5 without extra work.
The costs that don’t show on the invoice
Platform spend understates the real cost. Add these:
Your unbilled time. Those 36 appointments from 100 leads? If each one costs you 45 minutes of driving plus 45 minutes on site plus 30 minutes writing the estimate, that’s two hours. 36 appointments × 2 hours = 72 hours. At a $40/hour fully-loaded cost to you, that’s $2,880 of your time spent to land 8 jobs — $360 per job on top of the $562 in lead fees.
Real cost per booked job: $922.
Against a $14,000 bath remodel, fine. Against a $2,100 water heater, you just turned $173 of profit into a $187 loss.
Response speed tax. Shared leads go to multiple contractors simultaneously. The one who calls in five minutes wins a hugely disproportionate share. That means either you answer the phone with your hands in a crawlspace, or you pay someone to, or you lose. A missed-call text-back setup is close to mandatory if you’re buying leads — otherwise you’re paying for names that a faster competitor converts.
Credit friction. Most platforms will refund obviously bad leads (disconnected number, wrong service, out of area). You have to ask, every time, within a window. Budget 10 minutes a week on disputes. Contractors who don’t dispute pay 10-20% more per usable lead than contractors who do.
The three cases where paid leads still win
Despite all of the above, there are situations where buying leads is clearly the right call.
1. You are brand new and have no other channel
Zero reviews, no website authority, no referral base. Your Google Business Profile will eventually outproduce any paid platform at a fraction of the cost — but “eventually” is six to twelve months of consistent work. Paid leads fill that gap.
Treat them as a review engine, not a profit engine. Buy leads, do excellent work, and convert every job into a review. Break-even on the lead spend is an acceptable outcome if you exit the period with 25 reviews. That’s the trade you’re making: cash now for organic ranking later.
2. Your average ticket is above roughly $5,000
Run the earlier table with your own numbers, but the pattern holds. When gross profit per job is in the thousands, a $600-$900 acquisition cost is a rounding error. Kitchen and bath remodelers, roofers, HVAC system replacement, whole-house rewires, foundation and basement work — these absorb lead costs easily.
The catch: you must filter hard at the phone stage. One hour spent qualifying on the phone saves five hours of driving to quote jobs that were never real. Ask budget range before you schedule. People who won’t give you one are a red flag, not a prospect.
3. You have a specific hole in the calendar
Paid leads are a faucet. You can turn them on for three weeks in February when your pipeline is thin and off in June when you’re booked eight weeks out. No other marketing channel responds that fast.
Used this way — tactically, with a hard monthly cap — the math is different, because the alternative isn’t a cheaper lead. The alternative is an idle crew. A job at break-even beats a day of paying people to sit.
What to do about the leads you already bought
Two fixes move the needle more than switching platforms.
Raise the contact rate. It’s the leakiest stage in the funnel and the easiest to improve. Call within five minutes. If no answer, text immediately — “Hi, this is Mike from Ridgeline Electric, you requested a quote on the panel upgrade. I can come Thursday morning or Friday afternoon, which works?” Then call again that evening and once the next day. Three attempts across two days will take a 50% contact rate to 75%. That alone takes 8 booked jobs to 12, and your cost per job from $562 to $375.
Raise the close rate with a better estimate. Shared leads are comparison shopping by definition. A one-line text quote loses to a written, itemized, professional document every time. Estimates that win jobs covers the format. Expect a lift of five to ten points on close rate, which is worth more than any discount you’d offer.
A 90-day decision framework
Don’t cancel on a hunch and don’t renew on a hunch. Do this:
| Week | Action |
|---|---|
| 1 | Set a hard monthly cap. Pick a number you’d be okay losing entirely. |
| 1 | Create a tracking sheet: date, lead source, contacted Y/N, quoted Y/N, won Y/N, revenue, direct cost |
| 1-12 | Call every lead within 5 minutes. Three contact attempts minimum. Dispute junk leads weekly. |
| 13 | Calculate cost per booked job and return on spend |
Then decide: return above 3x, increase the cap. Between 2x and 3x, keep it flat and work on contact rate. Below 2x after three months of genuinely fast response, shut it off and move that budget to reviews and your Google profile.
The platforms aren’t lying to you. They’re just selling you a number — cost per lead — that has almost no relationship to the number that pays your mortgage.
Your next step
Open your platform billing page right now and pull the last 90 days of total spend. Then count how many jobs on your calendar came from it. Divide. If that number is larger than a third of the gross profit on your average job from that channel, you have a decision to make this week, not next quarter.