Cost per lead vs. cost per sale

How contractors who sell in the home should judge their marketing, with a worked roofing example.

By Closenture · Updated November 5, 2026 · 7-minute read

Money Map
Last 90 days · sample data
#SourceSpentLeadsSalesCost per leadCost per saleProfit
1Referrals$600155$40$120$23,900
2Google LSA$7,200809$90$800$36,900
3Door knocking$6,000606$100$1,000$22,350
4Angi$4,800962$50$2,400$4,300
5Home shows$5,500551$100$5,500−$1,125
6Facebook Ads$9,0002001$45$9,000−$4,275

Ranked by cost per sale, Facebook Ads is your worst: $9,000 for one roof. Put the next $1,000 into Google LSA, where a sale costs $800.

Profit = sold × 35% margin after materials, labor and commission, minus marketing.

Cost per lead tells you what a lead cost. Cost per sale tells you what a customer cost. For contractors who sell in the home, cost per sale decides profit: cheap leads that never sit or never buy end up costing more than expensive leads that close.

The five numbers, from lead to sale

Every lead source can be judged at five points on the way to a signed contract. Use the same 90 days for all of them, because a lead from this month may not buy until next month.

Cost per lead
spend ÷ leads. The number on the vendor’s invoice.
Cost per appointment
spend ÷ appointments set. Shows how many leads your setters can actually book.
Cost per ran appointment
spend ÷ appointments where the rep sat with the homeowner. Leaves out no-shows and cancellations.
Close rate
sales ÷ ran appointments. How often a visit from this source turns into a job.
Cost per sale
spend ÷ jobs sold. What one customer cost you. Compare it with the profit of one job.

A worked example: six sources, 90 days

Two roofers on an asphalt shingle roof
Retail roofing: paid leads, in-home appointments, same-day contracts.

A roofing company with an average job of about $14,000 and a 35% margin after materials, labor and commission. Profit below is sold × 35% − spend.

90-day example by lead source
SourceSpendLeadsApptsRanSalesCost per leadCost per apptClose rateCost per saleProfit
Google LSA$7,2008040349$90$18026%$800$36,900
Facebook Ads$9,00020050301$45$1803%$9,000−$4,275
Angi$4,8009630242$50$1608%$2,400$4,300
Door knocking$6,0006036306$100$16720%$1,000$22,350
Home shows$5,5005522161$100$2506%$5,500−$1,125
Referrals$6001512115$40$5045%$120$23,900

Ranked by cost per lead, Facebook Ads looks like the second-best source at $45 a lead. Ranked by cost per sale, it is the worst: $9,000 for one roof, a loss of $4,275. Google LSA costs twice as much per lead, $90, but a sale costs $800 and it left $36,900.

Look at cost per appointment too: Facebook and Google LSA tie at $180. The difference is what happens at the house. LSA visits close 26% of the time; Facebook visits close 3%.

What the example tells you to do

  • Move money into Google LSA. At $800 a sale it is the cheapest paid source by far.
  • Fix or cut Facebook Ads. The leads are cheap but they do not buy. Tighten the targeting or the form, or stop before the next bill.
  • Pay for referrals. $600 in referral bonuses brought five sales. A bigger bonus is still the cheapest marketing you have.
  • Rethink home shows. One sale for a $5,500 booth lost money at this close rate.

Your break-even cost per sale

The most useful single number: average job × gross margin. On a $15,000 job at a 35% margin, the break-even is $5,250. Any source where a sale costs more than that loses money on every job it brings, however cheap its leads look.

Rule of thumb: judge a new source after at least 90 days or 10 ran appointments, whichever comes later. Before that, one lucky sale can make a bad source look good.

The Closenture Money Map flagging sources that lose money and jobs under target margin
The Money Map reads these numbers for you and says which source to pause.

How to track it without a spreadsheet

  1. Every lead needs a source. Tag website forms with the ad click, and give each vendor its own lead webhook.
  2. Every appointment needs a result. Sold, no sale, one-leg, follow-up, not qualified or no-show. Without results, close rates are guesses.
  3. Every sale ties back to its appointment and its lead. That is how a sale is credited to the right source, setter and closer.
  4. Spend goes in by source and month. Or as a cost per lead for vendors that bill per lead.

That chain is what the Money Map in Closenture builds for you: each lead from its source to the result, the contract and the money collected.

Common mistakes

  • Judging too early. In-home sales lag. A source bought in March may close in April.
  • Counting duplicates. The same homeowner from two vendors is one lead. Credit the first, or the one that booked.
  • Leaving cancellations in. A job cancelled in the 3-day window is not a sale.
  • Ignoring commission and job cost. A source that sells low-margin jobs can lose money with a good cost per sale.
  • Blaming the source for a closer. Compare close rates by closer too, so one rep’s week does not decide a source’s fate.

Put in your own numbers

Take three of your lead sources and the last 90 days: what you spent on each, the leads it brought and the sales it closed. The table ranks them by what a sale really costs you.

What a sale costs you
SourceCost per leadCost per saleProfit

Profit = sales × average job × margin − spend. Nothing you type leaves your browser.

See the real Money Map in the live demo

Your numbers

Facebook Ads

Google LSA

Angi

  • Questions

  • There is no single good number. A lead is only as cheap as the sales it turns into. Work out your break-even cost per sale (average job × gross margin) and judge each source against that.
  • Cost per appointment counts every visit set. Cost per ran appointment counts only the visits where the rep sat with the homeowner, so no-shows and cancellations do not hide inside it.
  • At least 90 days or 10 ran appointments, whichever comes later. In-home sales take time to close, and a single sale can swing the numbers.
  • No. A job cancelled within the 3-day right to cancel should come off the source’s sales, or its cost per sale will look better than it is.

Book a demo

Show me where my money goes. Call me at .

We call you back, in English or Spanish, to set up a 20-minute demo with numbers like yours. Rather look first? Open the live demo or write to hello@closenture.com.