Judge a roofer marketing agency by booked jobs, not clicks. Ask for three numbers tied to your own records: qualified leads by source, estimate-to-close rate by source, and customer acquisition cost per booked job. If a partner can only show impressions, traffic and rankings, they are reporting activity, not roofs your crews installed.
Most monthly marketing reports share the same problem. They arrive full of green arrows: impressions up, sessions up, rankings up. Then you look at the board in the office, and the number of signed contracts has not moved. Clicks are easy to buy and easy to inflate. Signed roofs are not. The partner that deserves your next contract is the one willing to be measured on the second number.
TruLata is an AI marketing platform for service businesses that sell inside a defined geographic service area, and roofing contractors are among them. It is built around the scorecard in this article: leads counted from your own forms, each tied to its source and to the outcome your team records. These questions work the same way whether your marketing runs through an outside partner, an in-house marketer or a platform.
Why are website clicks the wrong way to judge a roofer marketing agency?
A click tells you that someone landed on a page. It does not tell you whether that person owns a home in your service area, needs a roof, or will ever pick up the phone. Roofing traffic includes plenty of visitors who will never become customers:
- Homeowners two counties outside the area your crews actually cover
- DIY researchers comparing shingle colors with no intention of booking an inspection
- Job seekers looking for crew positions
- Vendors, suppliers and other contractors checking your pricing pages
- Bots and automated crawlers that inflate session counts
Impressions sit even further from revenue. An impression means a listing or ad was displayed, not that anyone noticed it. A campaign can multiply impressions just by widening its targeting, which often makes lead quality worse.
None of these metrics is useless. They are diagnostic. If calls drop in a given month, traffic and ranking data help explain why. They belong underneath the business numbers, not on top of them. Roofing Contractor's breakdown of the marketing metrics roofers need makes the same point: the contractors who keep gaining market share "aren't necessarily spending the most on marketing." They are measuring the right things.
What should a roofer marketing agency report instead?
Five numbers separate a partner that grows roof contractor sales from one that grows a dashboard. Each should be reported by source, every month, and checked against your own records.
1. Qualified leads, defined before the campaign starts
A lead is not automatically a good lead. The same Roofing Contractor article recommends defining a quality lead by service area, project type, budget and customer intent, so campaigns can be tuned to attract the right jobs instead of simply more inquiries. Put that definition in writing before any money is spent. A practical version includes:
- Geography: the specific ZIP codes or towns your crews will drive to
- Job type: full replacement, repair, insurance claim, commercial, or whichever mix you want more of
- Decision authority: a homeowner or property manager, not a renter
- Exclusions: services you do not offer, such as gutter-only work if you do not do it
Once the definition exists, the partner's report should count against it. "We generated more leads" means little. "We generated more leads that met your written definition" can be checked.
2. Leads by source, with real attribution
You need to know whether each inquiry came from your Google Business Profile, paid search, Local Services Ads, organic search, referrals, social media or a yard sign. Roofing Contractor points to tracking phone numbers and UTM parameters as the way to identify which channels perform best. Add a simple office habit to that: ask every caller how they found you, and record the answer. When the tracking data and the caller's answer disagree, the disagreement tells you something too.
3. Estimate-to-close rate by source
This is the number most reports leave out, and it matters most. Estimate-to-close rate is signed contracts divided by estimates delivered, calculated per channel. As an illustration, if a channel produced 25 estimates and 8 of them became signed contracts, its estimate-to-close rate is 32 percent.
The rate has to be calculated by source because channels behave differently. A referral from a past customer usually arrives already trusting you. A homeowner who clicked a search ad may be collecting three bids. Blending those together hides which channel is doing the work.
4. Customer acquisition cost per booked job
Cost per lead is useful. Cost per booked job is what pays the bills. To calculate it, take everything a channel cost in a period (ad spend, management fees, purchased leads, and any tools tied to that channel) and divide by the signed jobs that channel produced in the same period.
The difference matters. Cheap leads that never close can be the most expensive leads you buy, while a channel with a higher cost per lead can turn out to be your cheapest source of signed work. Account for the lag between first contact and signature, especially on insurance work, by reviewing on a rolling quarter as well as month to month.
5. Speed to first response
This number sits partly with your office, but a good partner reports it anyway: the time from form submission or missed call to first real contact. A lead that waits goes cold, and homeowners rarely wait for a callback before contacting the next roofer. If your office is losing estimates to slow follow-up, no campaign will fix it, and an honest partner will tell you so instead of buying more traffic.
How do you turn those numbers into a monthly scorecard?
Build one scorecard with a row for each channel and these columns:
- Qualified leads (against your written definition)
- Estimates delivered
- Contracts signed
- Estimate-to-close rate
- Total channel cost
- Cost per booked job
- Median response time
Then set three rules. First, the signed-contract column comes from your CRM or job pipeline, not from the partner's own tracking. Second, the partner explains every month why the weakest channel is still funded, or proposes moving that budget elsewhere. Third, traffic and ranking data appear only as supporting evidence for movement in the columns above. A partner that pushes back on this format is telling you which numbers it would rather not show you.
How should storm damage marketing be measured?
Storms distort every metric. Inquiry volume spikes, call tracking lights up, and it becomes tempting to celebrate the raw count. Storm damage marketing needs its own row on the scorecard, with stricter rules than your retail campaigns:
- Separate the channel. Track storm campaigns apart from year-round marketing so a hail event does not make an ordinary month's search campaign look brilliant.
- Filter by geography. Storm searches pull inquiries from far outside the affected area. Only count leads from the ZIP codes you serve and the neighborhoods the storm actually hit.
- Track the full chain. Inquiries become inspections, inspections become approved claims, approved claims become signed contracts. Report each step, because the drop between them shows where the work is breaking down.
- Refuse shared leads as "qualified." An inquiry sold to several contractors at once is a race, not a lead. Count it separately if you buy it at all.
- Watch reputation afterward. Post-storm customers leave reviews that shape the next storm's results. Asking every completed job for a review is part of the campaign.
What questions should you ask a roofer marketing agency before you sign?
A short conversation reveals whether a partner thinks in booked jobs or in clicks. Ask these directly:
- How do you define a qualified lead, and will you put that definition in our agreement?
- Can you show an anonymized report from a current roofing client with estimate-to-close rate and cost per booked job by source?
- Whose accounts hold the ad spend, call tracking numbers, analytics and website? Ours or yours?
- How does outcome data get from our CRM back into your reporting, and how often?
- How often does someone review the ad account, and what triggers a change?
- What happens to our data, numbers and history if we end the contract?
- What is the minimum term and notice period?
Pay attention to how each question is answered as well as what is said. Specific answers with examples suggest a partner that already works this way. Long explanations of why booked jobs are "hard to attribute" suggest one that does not.
What red flags suggest an agency is selling activity, not roof contractor sales?
- The report leads with impressions or reach. If the first page is about visibility, the business numbers are either missing or unflattering.
- Leads are counted in the partner's system only. If you cannot reconcile their lead count against your own forms and phone records, you cannot verify it.
- No outcome field exists. If nobody records which leads became estimates and which became contracts, close rate cannot be measured.
- Ad accounts sit under the partner's ownership. Your spend history should belong to your company.
- Every month is a success. Real campaigns have weak channels. A partner that never reports one is not looking closely.
- Long lock-in with vague deliverables. Confidence in results usually shows up as flexible terms.
How does TruLata track roofing company leads from first click to booked job?
TruLata puts the scorecard above on one screen. Its marketing for roofing contractors runs search, ads, content, outbound and email from your TruLata dashboard, and the dashboard refreshes when you open it, so you are reading current numbers rather than a report assembled at month end.
The core of it is the lead count. TruLata counts leads from your own forms, server-side, and records each lead's source. Your team sets the outcome, so roofing company leads can be followed from inquiry to estimate to signed job, and estimate-to-close rate becomes a number you can read rather than a guess.
Around that count, the platform shows:
- Ads: Google Ads spend and cost per lead, with a daily watch on the account and a history of changes.
- Jobs and revenue: the job pipeline from your connected booking platform and payments from Stripe, so booked work sits next to the leads that produced it.
- Search visibility: rankings, queries and reviews for the local searches homeowners run when a roof starts leaking.
- AI visibility: whether ChatGPT, Gemini, Claude, Grok, Manus, Google AI Overviews, Perplexity, Meta AI and DeepSeek mention your company when homeowners ask them for a roofer.
- Outbound: for commercial roofing, prospect emails to property managers leave from a review-first queue, and every send is logged.
Billing is flat monthly and month to month, with no setup fee. That is the same standard this article asks of any partner: earn the next month with the numbers from this one.
Where should a roofing company start?
Start this week. Write your qualified lead definition, add an outcome field to every lead in your CRM, and ask whoever runs your marketing for estimate-to-close rate and cost per booked job by source for the last quarter. If you want to see that scorecard working on one screen, open the live TruLata demo and follow a lead from its source to a signed job.

™



