Angi, HomeAdvisor and shared leads: the math nobody shows you
What you are really buying when you pay per lead, why the same homeowner is sold to several roofers, and when it still makes sense.
The pitch is clean: pay a set amount, get a homeowner who wants a roof. No ad accounts, no landing pages, no waiting.
The arithmetic underneath is less clean, and it is worth spelling out because the sales call never does.
Before going further, the full picture is here: Where roofing leads actually come from in 2026.
You are usually not the only buyer
This is the part that changes everything. On most shared-lead platforms, the same homeowner's details are sold to several contractors at once.
So a lead that costs you $60 is not a $60 lead. It is a $60 entry into a race against three or four other roofers who received the same phone number at the same minute.
Whoever calls first usually wins. Which means the real price of that lead is $60 plus being available to dial within minutes of the notification — and if you are on a roof when it arrives, you paid for someone else's job.
The arithmetic to run before you buy another one
Take your last sixty days of purchased leads and work out four numbers:
- What did you spend in total?
- How many turned into an actual conversation? Not a voicemail. A person.
- How many turned into an inspection?
- How many turned into a signed job?
Then divide total spend by signed jobs. That is your real cost per job — not the price on the invoice.
Contractors who run this for the first time are frequently surprised, because the number that gets quoted is cost per lead and the number that matters is cost per job. Between the two sits every unanswered call, every duplicate, and every homeowner who was only ever price shopping.
Where the model genuinely works
It is not a scam, and dismissing it entirely is a mistake:
- Filling a genuinely empty week. Turn it on, calls arrive today. Nothing else does that.
- Testing a new service area before committing ad budget to it.
- A crew with slack capacity where a marginal job at a thin margin still beats an idle day.
Where it fails as a foundation
Three structural problems, and the third is the one that matters:
You are buying a race, not a customer. Your close rate is capped by how fast you can dial, not by how good you are.
You compete on speed and price, not on being better. The homeowner has four quotes by dinner. Nothing about the channel lets you differentiate.
🔴 You never own anything. No domain, no ad account, no ranking, no list. The day the price rises or the algorithm changes, you have exactly what you started with. Every dollar you spent bought a job and nothing else.
Compare that with a search campaign in your own account: a job today, plus conversion history that makes next month cheaper, plus a page that keeps ranking, plus a customer record that produces referrals.
The honest comparison
| Shared leads | Your own search campaign | |
|---|---|---|
| Speed to first call | Today | 1–2 weeks |
| Setup effort | None | Real |
| Exclusive | ❌ No | ✅ Yes |
| Gets cheaper over time | ❌ No | ✅ Yes |
| You own the asset | ❌ No | ✅ Yes |
| Survives the vendor | ❌ No | ✅ Yes |
How to use them well
If you keep buying them, at least buy them properly:
- Dial within two minutes. Not ten. The race is real.
- Track your true cost per job, monthly, not cost per lead.
- Dispute the bad ones. Wrong numbers and out-of-area leads are refundable on most platforms and most contractors never bother.
- Cap the share of your revenue that comes from them. A company where most work arrives through a platform it does not control is one pricing change away from a bad quarter.
Use them as a tap you turn on when the schedule thins. Just do not build the house on them.