Skip to content
Economics May 26, 2026 ← All posts

How Roofing Contractors Should Actually Think About Cost-Per-Acquisition

CPL is a vanity metric. Cost-per-acquired-customer is what makes or breaks a roofing operation. Here is the right way to model it.

By BoomReach Team

Most roofing contractors evaluate lead-generation programmes the wrong way. They compare cost-per-lead. The provider with the cheaper CPL wins. The lead bill goes down. The revenue goes down with it. The owner does not figure out why for six months.

The right metric is cost-per-acquired-customer — the amount you spend in marketing for every roof you actually sell. Two providers with very different CPLs can produce the same cost-per-customer because close rates differ. The provider with the higher CPL is often the better deal.

A simple model

Consider two providers. You are running 100 leads through each.

ProviderCost per leadClose rateCustomers acquiredTotal spendCost per customer
A$607%7$6,000$857
B$10028%28$10,000$357

Provider B costs 67% more per lead, produces four times the customers, and the cost-per-customer is less than half. Every $1,000 spent on Provider B brings in roughly three more closed roofs than the same $1,000 on Provider A.

If your average closed job is $14,000 with a 35% gross margin, Provider B is worth roughly $14,000 × 35% × 21 incremental customers = $103,000 of incremental gross profit per 100 leads. The “expensive” provider is not expensive. The cheap one is hiding the bill in your sales-team’s wasted time.

Why the cheap leads stay cheap

Cheaper leads almost always cost more per customer for one of three reasons:

  1. They are shared. You and three other contractors paid for the same homeowner. Even if you call first, you win 25–40% of the time, not 100%. Your effective close rate is shared with the other buyers.
  2. They are not qualified. No one verified the homeowner, the project, or the intent. You spend 20 minutes on a phone call to find out it is a renter, or that the project is 18 months out, or that there is no actual damage. Salary time is the real cost, not lead price.
  3. They are stale. The lead arrived in your inbox 90 minutes after the homeowner submitted. The homeowner has already booked someone. The lead provider got paid; you did not.

The right way to evaluate a lead source

Three numbers, in this order:

  1. Cost-per-acquired-customer — total marketing spend ÷ closed jobs from that source, over a 30-day window.
  2. Average ticket — what is the average closed job from that source? Some sources skew toward smaller repairs, others toward large re-roofs.
  3. Cost-as-percentage-of-revenue — cost-per-customer ÷ average ticket. Most healthy roofing operations want this under 8% for storm-claim leads and under 12% for re-roof.

If a lead source pencils out at under 8% on storm-claim, scale it. If it pencils out at 15% or worse, do not throw more money at the cheap CPL; figure out why the close rate is bad. Usually it is callback speed, lead quality, or sales process — not the marketing.

What BoomReach pricing looks like in this framework

Our subscription is $1,999 / month for 20 exclusive leads — an effective CPL of $99.95. If your close rate on warm exclusive leads is 25% (a conservative number on properly qualified leads), that is 5 closed jobs / month from the subscription, at $400 cost-per-acquired-customer. At an average ticket of $14,000, marketing cost lands at 2.9% of revenue.

If your close rate is 40% (which is achievable with a tight callback process and a quality lead provider), the math becomes $1,999 ÷ 8 = $250 per acquired customer. Marketing at 1.8% of revenue.

Compare those numbers against whatever lead source you are running today. If your current cost-per-customer is higher, the pilot will pay for itself. If it is lower, do not switch — keep doing what works. The math is the math.

Want to act on this?

Pilot BoomReach for $299. Five exclusive leads. Money-back.

If our leads do not meet your quality bar, you get a full refund. No setup, no contract.