If you don't know the most you can pay for a lead, Google Ads and Local Services Ads will decide it for you, and the number they pick is usually higher than your jobs can carry. Your break even cost per lead is simple to work out: the gross profit on an average job multiplied by the share of leads you actually book. Pay less than that and ads make money. Pay more and every lead loses it.
Owners post the painful version of this all the time. A plumber paying $50 a click for drain cleaning called it a total loss. A roofer was paying about $200 a lead on $10,000 a month. A carpet cleaner watched LSA leads go from $35 to $71 on a $175 job.
Here's the calculation, how to run it on your own numbers, what those owners' numbers look like through it, and how I use the result to choose between Google Ads, LSA or neither.
The break even cost per lead formula
You need three numbers from your own records, not from an ad platform:
- Average job value. What a typical job from ads is invoiced at. Not your best job, your typical one.
- Gross profit per job. The job value minus materials, parts, labor and fuel for that job. This is what's left to pay for marketing, overhead and profit.
- Close rate. Booked jobs divided by leads. If 10 people call and 4 book, that's 40%. Count every lead you paid for, including the ones you couldn't reach.
Then: break-even cost per lead = gross profit per job × close rate. If a job leaves you $200 and you book 40% of leads, you break even at $80 a lead. At $80 you've bought the job and made nothing on it, so your target should sit well below that. I usually set a working target at around half to two-thirds of break-even, so there's still profit after overhead.
For Google Ads, which charge per click, go one step further: maximum cost per click = maximum cost per lead × the share of clicks that become leads. If one click in ten turns into a call or form, a $40 target lead means you can't pay more than $4 a click.
How to calculate your number, step by step
- Pull the last three to six months of jobs. Use your invoicing software or job sheets, and only count jobs that came from paid ads if you can tell them apart. If you can't, start tagging them now and use all jobs as a first estimate.
- Work out the average job value per job type. Do it separately for the work you advertise. A drain unblock and a water heater install shouldn't share an average.
- Subtract the direct costs to get gross profit per job. Materials, parts, the tech's hours, fuel. Be honest: a number that's too high will tell you ads are working when they aren't.
- Count leads and booked jobs for the same period. Every call, form and message you paid for, and how many became jobs. Divide to get your close rate.
- Multiply gross profit by close rate. That's your break-even cost per lead. Write it down for each job type you advertise.
- Set your target and your stop point. Your target is what you aim to pay. Your stop point is break-even. If cost per lead passes the stop point for two weeks running, cut the budget or switch that job type off.

What owners' real numbers look like through the formula
The prices below are what owners reported paying. The profit and close rates are my assumptions, shown so you can see the method. Put your own numbers in their place.
| Situation | What they paid | Assumed profit and close rate | Break-even per lead |
|---|---|---|---|
| Carpet cleaning, $175 job | $71 a lead on LSA | $87.50 profit, 50% booked | $43.75 |
| Drain cleaning, $300 job | $50 a click | $150 profit, 60% booked | $90 (about $250 paid if one click in five calls) |
| Roof replacement | About $200 a lead | $4,000 profit, 20% booked | $800 |
| Small roof repair | About $200 a lead | $250 profit, 30% booked | $75 |
The carpet cleaner in a Reddit PPC thread about LSA lead costs doubling put it in one line: "$71 per lead isn't worth it for a $175 job." Through the formula, $71 only works if that cleaner books more than 80% of leads at a 50% margin. Very few do.
The plumber in a Reddit plumbing thread about paying $50 a click for drain cleaning called the result a total loss, and the maths shows why. To break even at $90 a lead while paying $50 a click, more than half of all clicks would have to turn into calls. That doesn't happen.
The roofing case is the interesting one. In a Reddit roofing thread about $200 leads on a $10,000 monthly budget, the same price per lead can be comfortable or ruinous. If those leads are replacements, $200 is well under break-even. If they're mostly small repairs, every one loses money. That's why I split the calculation by job type.
Close rate matters as much as price. A moving lead cost breakdown from MoveRight works through a $60 lead: at 40% contact and 25% close it takes 10 leads to book one move, so $600 per booked job. At 65% contact and 35% close, the same lead costs $264 per booked job. Better contact and close rates cut the cost per booked job by more than half without the lead price changing at all.
Google Ads, LSA or neither: how I use the number
Once you have break-even per job type, the choice gets much less emotional.
- Local Services Ads charge per lead, so compare the cost per lead directly with break-even. Remember that wrong-job and out-of-area leads are no longer refunded, which I explain in the post on the lsa refund policy. Add that waste to your real cost.
- Google Ads charge per click, so turn your maximum cost per lead into a maximum cost per click. If the keywords you need cost more than that, the campaign can't work however well it's managed. An HVAC owner in a Reddit Google Ads thread about planner estimates versus real click prices was quoted about $3.98 a click for a $3,000 monthly budget, while the keywords that mattered cost $50 to $100. Plan on the real price.
- Neither, when market prices sit above your break-even for the work you want. Then the money does more on your Google Business Profile, reviews and website. I compare the two in seo vs google ads for local businesses.
Lead platforms get the same test. Shared leads from Angi or Thumbtack look cheap until you divide by the few you book, which is the whole point of working out angi leads cost per job rather than per lead.
What changes by trade
Plumbing
Emergency and routine work have completely different numbers. A burst pipe at night books at a much higher rate than a quote request for a new fixture. Run them as separate campaigns with separate break-even figures, and don't let a busy emergency week hide that routine leads are losing money.
Roofing
Split replacement from repair, as the table shows. If you can't stop repair leads coming through a campaign priced for replacements, the blended cost per lead will look fine while the repairs quietly lose money.
Cleaning
Tickets are small, so break-even is low and price rises hit hard. A recurring client changes the maths, but only count repeat revenue if your records show clients from ads actually stay. Hopeful lifetime value is how cleaners talk themselves into $71 leads.
Appliance repair
Seasons swing hard. An owner in a Reddit appliance repair thread about ad costs in the slow season described Google Ads crushing a one-year-old company in its first quiet months. Work out break-even for slow months separately, when fewer calls mean each lead has to close better, and cut spend when the numbers say so.
Flooring
Flooring jobs take longer to close, so judge leads over months, not weeks. A contractor in a Reddit flooring thread about ads and agencies failing to keep a crew busy had tried Google Ads, Facebook Ads and several agencies. Without a break-even number per job type, it's hard to tell which of those failed and which just needed longer.
Mistakes that make ads look better or worse than they are
- Using revenue instead of gross profit. It makes almost any lead price look affordable.
- Counting leads instead of booked jobs. A cheap lead that never books is the most expensive kind.
- Blending job types. One average hides the job types that lose money.
- Ignoring missed calls. A lead you didn't answer still counts as a lead you paid for.
- Judging too early. Two weeks of data is noise, especially in seasonal trades.
- Not checking whether anyone saw the ads. An owner in a Help Community thread about paying for Google Ads and getting 11 views only found the problem after paying. Check impressions in the first week.
Where to start
Work out one break-even number this week, for the job type you advertise most. It takes an hour with your invoices and changes how you read every ad report after that. If you'd like it done with you, it's the first thing we set up in google ads management and across our paid ads management. And if the numbers say ads don't work for your trade right now, our plumbing company SEO, roofing company SEO and cleaning business SEO work builds the leads that don't carry a per-click price.
Written by Saifur Rifat, Founder & SEO Lead at SERP Squad.