Storm season winds down, and your inbox fills up. One email offers “exclusive roofing leads” at a flat price. Another offers a shared pool at a discount. Both lead with the same number: cost per lead. That’s not the number that decides whether the channel makes you money.
The number that matters is what you actually pay for one closed roofing job, after the leads that never pick up, the ones who already signed with someone else, and the ones that were never a real opportunity to begin with. Run that number honestly and buying roofing leads becomes arithmetic you can check against your own margin, before the September pitches start landing.
The Chain the Sales Email Skips
Here’s the chain that determines what a bought lead costs you. None of it shows up in the pitch.
Lead price is step one, and it’s the only number the seller quotes. Shared leads on the major lead-buying platforms typically get sold to three to five roofers at once for the same request. Whoever calls back first, or fastest, usually gets the real conversation. Everyone else paid for a lead they never had a fair shot at.
Contact rate is step two: how many of those leads actually answer or respond before they’ve already booked with someone faster. Appointment rate is step three: of the ones who talk to you, how many schedule an inspection. Close rate is step four: of those inspections, how many become a signed job.
Multiply the four steps together and you get the number that actually matters: cost per closed job, not cost per lead.
One Worked Example, Labeled Hypothetical
Here’s how that chain plays out, worked as a hypothetical to illustrate the math, not a promise about what your market will produce.
On the major lead-buying platforms, roofing sits at the expensive end of the pricing tiers precisely because it’s a bigger-ticket job, commonly running $90 to $150 or more per lead. Call it $100 a lead for this example. Ten leads costs you $1,000.
Not every lead answers. Say seven of ten respond; by the time you call, some already picked a competitor and some never intended to hire anyone. That’s a 70% contact rate.
Of those seven conversations, say four turn into a scheduled inspection. That’s an appointment rate a little over half.
Of those four inspections, say two turn into a signed contract. That’s a 50% close rate on the appointments you actually ran, a solid number for a sales process that’s working.
Run the whole chain and you booked two roofing jobs from ten leads: a 20% lead-to-close rate. Your $1,000 in lead spend produced two closed jobs. Cost per closed job: $500. That’s five times the number on the invoice, and it only shows up once you run the full chain instead of stopping at the price tag.
What “Exclusive” Actually Buys You
The other email in your inbox sells the fix directly: pay more, and the lead is yours alone. No race, no competing quotes landing in the same homeowner’s inbox at the same hour as yours.
That’s a real thing to pay for. Contact rate improves, because nobody else is calling that homeowner in the next ten minutes. Appointment rate improves for the same reason. Close rate improves some, though less than the pitch implies: exclusivity buys you the conversation, not the sale. The homeowner still shops on their own timeline and decides on your price and pitch.
What exclusivity doesn’t change is the price. Sellers who remove the race for you charge accordingly, and that charge runs well above the shared-lead price you just ran the math on. That’s the same seller economics behind the pitch itself: the going cost per click on roofing-lead keywords runs $24 to $48, real money a seller pays to reach you, and that cost is baked into whatever they charge back, shared or exclusive.
The honest question isn’t whether exclusive leads convert better. They usually do. It’s whether the better close rate clears the higher price once you run your own chain against it, same four steps, different inputs.
Why Roofing Makes This Math Different
Roofing has a quirk a lot of other trades don’t: one closed job is worth enough to make ugly lead math survivable. A single roof replacement often clears more revenue than several smaller service calls combined. That’s exactly why lead sellers can charge what they charge for roofing leads and still find buyers. The math has more room in it before it breaks.
That room is also the trap. A roofer chasing storm-season volume can absorb a $500 or $700 cost per closed job on one big-ticket replacement and still come out ahead on that job. What doesn’t show up is next storm season, and the one after, when the same seller charges you again for a homeowner whose contact you never owned. Compare that to what the same dollars build inside a full roofing marketing plan: your own ads pointed at your own landing page, plus the reviews and local trust that put you in front of a homeowner before the storm chasers ever land in their inbox.
Run the Chain Before the September Emails Land
None of this is an argument to cancel every lead subscription today. Bought roofing leads work fine as a filler channel, especially early on or in a slow month, as long as you’re the one deciding that with real numbers, not the sales email deciding it for you.
The math says this: rented leads have a ceiling. The price moves with the competition for your category, not with your loyalty, and none of what you spend builds anything still working for you next year. Run your own chain, your own lead price, your own contact rate, your own close rate, before the next round of pitches lands. If the number clears your margin with room to spare, that’s a defensible use of the channel. Just stop calling it cheap.
If you’d rather the math move in the other direction, where the channel gets cheaper every storm season instead of pricier, that’s what an owned system is built to do. See how Kodiak’s plans build a pipeline you own instead of one you keep renting.
