Now booking Q3: fractional marketing teams for growth-stage homebuilders.

Back to case studies
Roofing, Paid Media, Strategy

$838K in Estimates They Can Finally Trace

August 30, 20267 min read
$838K in Estimates They Can Finally Trace — case study
Estimates Delivered

$838K

Estimates Delivered

Winning Channel ROAS

4.7X

Winning Channel ROAS

Blended ROAS

2.7X

Blended ROAS

Roofing is one of the most competitive and expensive categories in Utah to advertise in, where every contractor bids against the next for the same homeowner and clicks run $20 to $30 apiece. Our team built Brady Roofing a channel strategy around where their kind of work actually converts, instead of where the bidding is loudest. $838K in estimates put in front of homeowners on $45K in spend.

Brady Roofing replaces and builds roofs across Salt Lake County and the Wasatch Back. Copper Rock became their marketing team, built the reporting that showed what their pipeline was really made of, and turned $45,086 in spend into 38 booked inspections and $838,182 in estimates sitting in front of homeowners over five months.

01

The Pain

Roofing is one of the hardest categories in Utah to buy attention in. Nobody shops for a roofer until something has already gone wrong, which means every contractor in the state is competing for the same homeowner in the same narrow window. Clicks run $20 to $30 apiece, so it's a market where you can spend serious money and still feel like you're guessing.

The symptoms look the same at almost every roofing company we talk to. Some weeks the phone rings and some weeks it goes quiet, with no obvious reason for the difference. September through November is when the year gets made, so the pipeline has to be full before the weather turns. And the lead count sitting on a monthly report never quite squares with the amount of work actually moving through the business, which leaves an owner trying to make budget decisions on a number they don't fully trust.

02

The Problem

Attribution in roofing is genuinely difficult, and not because of anything a contractor is doing wrong. A homeowner watches a video in July, searches the company by name in September, calls the office directly, and lands in the CRM as a phone call with no source attached to it. Referrals routinely begin as ads that someone forgot they saw. Jobs close 30 to 90 days after the click that created them, so the spend and the revenue almost never appear in the same reporting period. Add those together and the number an owner can see will always be smaller than the number marketing is actually producing.

When our team built a source level view of the full funnel, the real picture came into focus. Brady's cost per lead was running under the market rate for a Utah roofing homeowner, and the large majority of the inbound arriving at the office was marketing sourced rather than word of mouth. The demand was there and the channels were performing. What was missing was the proof, and without proof there was no confident basis for putting more behind the work that was already winning.

That gap between what marketing was producing and what anyone could see is exactly where the growth was being left on the table.

03

The Approach

We ran this like a marketing department rather than a vendor. Strategy, paid media, SEO, and video sat in the same working sessions with Brady's leadership every two weeks, looking at the same numbers and making the calls together.

Shared visibility came first. Our team built a full performance funnel by source that followed every dollar from spend to lead to qualified lead to inspection to estimate, pulled straight from their CRM, and then we walked the leadership team through how to read it. That single piece of work reframed the entire account, because it moved the conversation off lead count and onto estimate volume and contract value, which is where a roofing company actually makes its money.

It also set the standard we hold ourselves to. Marketing's job is to put a qualified homeowner in front of a crew and a real estimate in their hands, and the estimate is the last step in that chain marketing owns. Everything past it belongs to the sales floor. So we measure our work in inspections booked and estimate dollars delivered, and we build the plan to maximize those two numbers rather than the ones that flatter a report.

From there we matched the channel mix to how roofing buyers genuinely behave. High intent search captures the homeowner who already knows they have a problem, and it's the most contested and most expensive place a roofer can stand. Social reaches that same homeowner months earlier, while the roof is aging and the decision is still forming, and it does it for a fraction of the cost. Organic listings and the map pack own the searches that happen the morning after a windstorm. We weighted the plan toward the places where Brady's particular job profile was converting, and we made those calls on close rate and contract value instead of on cost per lead.

Staying disciplined about service value mattered just as much as lead price. Local Service Ads produced the cheapest leads in the account by a wide margin, but they also produced the smallest jobs, averaging $3,800 against roughly $13,500 everywhere else, because that channel is built for quick repairs and service calls. Brady is built for full replacements, custom and metal systems, and larger scale work. Filling their calendar with the cheapest lead available would have kept crews moving on jobs that don't move the business, so we deliberately pulled back from it. A cheap lead is only cheap if it turns into the kind of work you actually want.

We also put real creative weight behind the plan. Our video team wrote the scripts and shot on Brady's roofs with Brady's crew, and instead of polished brand spots we made the content homeowners are already searching for. One video walks through what to look for on your own roof from the driveway, since most people never get up there. Another explains what a tear off actually involves and where corners tend to get cut. Others feature named projects with the crew on site, explaining the system they installed and why it was the right call for that home. Performance from each round fed directly into the next set of scripts, so every shoot built on what had already converted. Educational content beat sales content in every test we ran, because it does the work paid media can't do on its own, which is earn a homeowner's trust before they ever pick up the phone.

Finally, we answered the commercial versus residential question with data instead of opinion. It's a fair thing for any roofer to weigh when deciding where to point a budget. What Brady's numbers showed is that the commercial work the account won came through the same campaigns generating residential demand, because it's one pool of homeowners, property managers, and decision makers rather than two audiences needing two separate strategies. The plan didn't need to be split. It needed to be funded and given room to compound.

$838K in Estimates They Can Finally Trace — the work
“"You've proven it, so let's scale it."”
Chase L., Managing Partner
04

The Results

Over five months, $45,086 in spend produced 135 leads, 58 qualified homeowners, and 38 booked inspections, which put $838,182 in estimates in front of buyers. That works out to $18.59 in estimate value for every dollar spent, at a cost of roughly $1,186 per inspection in a market where a single click runs $20 to $30.

The channel detail is where the strategy shows up. Organic search and Google Business Profile carried no ad spend at all and still generated $427,792 of that estimate pool, more than half the pipeline, which is the compounding return on the content and local search work. Social turned $11,611 in spend into $97,889 in estimates, better than eight dollars of quoted work for every dollar in, at a cost per lead well under the market rate for a Utah roofing homeowner.

What closed on top of that pipeline is the sales floor's story rather than ours, but it's worth noting the economics held up there too. Brady converted $121,800 in revenue from this work for a 2.7X blended return, with social returning 4.7X on its own and closing 40% of the inspections it booked.

The lasting change is what Brady can see now. They can read their pipeline by source, they know what a lead is worth and what a job is worth on every channel, and they can forecast revenue from their own numbers instead of from a feeling. Marketing stopped being a line item they had to take on faith and became a system they can steer.