Cost per signed job is the number that decides the year. It is what you paid a source divided by the jobs you actually signed from it, and it is almost never close to the cost per lead on the invoice. Illustration only, no vendor implied: a $60 lead that signs one time in twenty costs $1,200 per signed job. A $150 lead that signs one time in four costs $600. The cheaper lead cost twice as much. Close rate does that, and close rate is mostly set by how many other roofers got the same homeowner.
Two ways to write it. Both give the same answer when your records are clean.
Use the second one. It does not depend on you estimating a close rate correctly, and it catches the leads that came in and quietly went nowhere.
Close rate is worth breaking into three pieces, because a lead source can fail you at any of them and the invoice looks identical either way.
Illustrative arithmetic, made-up figures, substitute your own. Say you buy 100 leads at $75, so $7,500 out the door. You reach 60. You quote 30. You sign 6. Close rate is 6%. Cost per signed job is $7,500 ÷ 6 = $1,250. Now put the job against it: if the average signed job is $11,000 at 30% gross margin, that job carries $3,300 of gross profit, so the source contributed $2,050 per job before overhead, before your truck, before your time. That last number is the one to rank sources by.
Run the same 100 leads with 12 signed instead of 6 and cost per signed job drops to $625. Nothing about the price of the lead changed. The homeowner just had fewer people to call back.
The homeowner fills in one form and the same record is sold to several contractors, sometimes four or five, often within seconds of each other. There are 130,481 roofing and siding contractor businesses in the US as of 2024 (IBISWorld), so a marketplace never has trouble finding four more to sell the same homeowner to. The list price is low and the close rate carries the damage. Speed of response becomes the whole game; the roofer who dials in ninety seconds is bidding against the roofer who dials in twenty minutes, and the homeowner is now price-shopping whether or not she planned to. This suits a company with a dedicated person answering the phone on the first ring during business hours and a pricing model that survives being compared. It punishes an owner who returns calls from the truck at 6pm.
Same intake, one buyer. Price per lead is higher and close rate is usually the reason people pay it. Two things to verify before you believe the word exclusive: exclusive for how long, and exclusive to what territory. Some vendors sell a lead once, then resell it as an aged record ninety days later. Others define exclusivity by ZIP code, which means the homeowner one street over went to a competitor. Ask for both definitions in writing. This suits companies with a decent sales process and enough job value to absorb a higher cost per lead; if your average ticket is small, the arithmetic gets tight fast.

Records that are weeks or months old, sold cheap because someone already worked them. Contact rate is the first thing to collapse; phone numbers go stale, the roof got fixed, the homeowner has fielded eleven calls already. Close rate on the ones you do reach can be respectable, because the people still answering are the people who never got the problem solved. This is a volume-and-patience play. It suits a company with idle phone capacity and a real follow-up system, and it is genuinely one of the more affordable roofing leads options if you measure it on cost per signed job over a full quarter instead of on any single week.
The vendor qualifies the homeowner and patches the call straight to you. Contact rate is effectively 100%, which removes the biggest leak in the funnel and is why the per-unit price is high. The risk moves to qualification quality. A transfer that arrives with a renter, a homeowner outside your service area, or someone shopping insurance rather than a roof still bills. Ask what the vendor’s disqualification criteria are and what the credit policy is on bad transfers, then track your own dispute rate for a quarter. This suits companies that can pick up on demand during set hours.
You pay for a phone call over a minimum duration, not a form fill. Economics sit close to live transfers with one difference: the caller usually chose to call, which lifts intent. Duration thresholds are where the model gets gamed, so read the billing trigger carefully. A 60-second minimum can bill you for a wrong number that took a while to end. This suits companies that trust their phone script more than their follow-up.
Address lists built from hail and wind swaths, sold for canvassing and direct mail. These are not leads; they are targets, and the arithmetic changes because you supply the labor. Cost per signed job has to include the canvasser’s day, the mail piece, and the drive time. Close rate can be high because the damage is real and the neighbors are talking. Volatility is the cost: no storm, no season. This suits crews that can mobilize into a market fast and an owner who is honest about counting labor as a real expense.

| Source | Exclusivity | Close-rate pressure | Speed to first job | Cost behavior over time | Who owns the asset |
|---|---|---|---|---|---|
| Shared marketplace | None; resold to several | High; you are one of four bids | Days | Flat to rising as more buyers enter | Vendor |
| Exclusive vendor | Contractual; verify terms | Moderate | Days | Flat, priced per unit | Vendor |
| Aged lists | Usually none | Very high at contact stage | Weeks | Low per unit, high labor | Vendor |
| Live transfer | Single buyer per call | Low at contact, moderate at quote | Same day | Highest per unit, stays there | Vendor |
| Pay per call | Single buyer per call | Moderate | Same day | Per unit, billing rules matter | Vendor |
| Storm lists | Rarely exclusive | Depends on canvassing labor | Weeks, seasonal | Cheap data, expensive labor | Broker |
| Owned search | Total; the call comes to you | Lowest; homeowner picked you | Months | Falls per job as rankings hold | You |
Pull these from records, not memory. Last full quarter, split by source.
Then compute in this order, one source at a time:
One caution on sample size. Under roughly 30 leads from a source, the close rate you calculate is noise; two lucky signs will make a bad source look excellent. Give it a quarter, or give it 30 leads, whichever comes second.
It pays nothing in month one. Technical fixes, service and city pages, and review work take months to move, and the first invoice arrives long before the first call does. If payroll is 60 days out and thin, buy leads; that is what bought leads are good at. Owned search is the wrong tool for an emergency.
What it does after the ramp is different in kind. The homeowner who searches and calls you was not sold to anyone else, so the exclusivity is structural rather than contractual. Cost per signed job falls as rankings hold, because the same work produces more calls. And the pages, the reviews, and the rankings stay yours when you stop paying; a lead vendor’s pipeline stops the day the card declines.
The search surface itself is moving. Whitespark data reported by Search Engine Journal found AI Overviews appear in 68% of local searches, compared with 39% that show a local pack (Search Engine Journal). The generated answer is now more common than the map. Being the roofer those answers cite is a different job from ranking blue links, and it is early enough that most of your competitors are not doing it.
Do the quarter’s arithmetic first. Some of the roofing lead generation companies you are already paying will turn out to be your best contributor per job, and the cheap ones will turn out to be the expensive ones. The math decides, not the pitch.
NetPageTwo runs the owned search side of that list. Visibility is $489 a month: technical and on-page SEO, AI search optimization, a monthly strategy meeting, email support. Visibility + Revenue is $1,297 and adds conversion work, unlimited landing pages, bi-weekly calls, and Slack. Month to month, 14 days notice, no contract. There are no roofing case studies to show you; the service has not run in this trade yet, and pretending otherwise would be the first thing you should distrust. Bring last quarter’s numbers to the call and we will run the arithmetic above on your actual sources before anyone talks about scope.
Related: roofing SEO work.