How do I measure ROI on marketing for my roofing company?

How do I measure ROI on marketing for my roofing company?
Trace Gordon
Written byTrace GordonChief Executive Officer, Founder

Measure marketing ROI for your roofing company by recording where every lead came from, matching each lead to the jobs it closed, and comparing that revenue to everything you spent to get it, including ad spend, fees, software and your own time. ROI is revenue from marketing, minus marketing cost, divided by marketing cost.

The formula is simple. The hard part is the data. Most roofers can tell you what they spent last month, but they cannot say which calls came from Google Ads, which came from a yard sign, and which came from a neighbor's referral. A rough sense of what is working leads to rough decisions about where to spend. TruLata is an AI marketing platform for local service businesses that counts every lead from your own site with its source and shows what each channel cost on one dashboard. This guide covers how to measure ROI yourself, the tools roofers usually weigh, and how to choose among them.

What does ROI on roofing marketing actually mean?

Marketing ROI tells you whether a channel returned more money than it cost. The working version for a roofer is: (revenue from closed jobs attributed to a channel, minus total cost of that channel) divided by total cost of that channel. A result above zero means the channel paid for itself. A result below zero means it cost more than it brought in, at least during the period you measured.

Cost per lead

  • Channel cost divided by leads
  • Looks good on a report
  • Cheap leads may never sign

Cost per closed job

  • Channel cost divided by closed jobs
  • Affects your bank account
  • Fewer leads that close can win

Two numbers support that calculation. Cost per lead is total channel cost divided by leads from that channel. Cost per closed job is total channel cost divided by jobs that actually closed. Cost per lead looks good on a report, but cost per closed job is what affects your bank account. A channel that brings in cheap leads that never sign can do worse than one that brings in fewer, more expensive leads that close. Our guide to marketing ROI and revenue tracking covers how those numbers connect.

How do I track ROI step by step?

You can run this process with a spreadsheet, but every step has to happen every time. If one step gets skipped, the numbers stop being reliable.

Five steps, in order

  1. Identify each channelSeparate phone numbers and UTM tags
  2. Record the sourceLog date, channel, and contact at arrival
  3. Connect leads to jobsMark won and enter contract amount
  4. Count every costSpend, fees, printing, and staff hours
  5. Pick the right windowReview by quarter and season

1. Give every channel a way to identify itself

Use a separate tracking phone number for each major channel: Google Ads, Meta ads, your Google Business Profile, direct mail, and truck wraps. Add UTM tags to every link you run in ads and emails so your website forms can record the source. If a lead arrives without a source, you cannot assign its revenue to any channel.

2. Record the source at the moment the lead arrives

Each form fill and call should be logged with its date, channel, and contact details. Asking "how did you hear about us?" is useful as a backup, but homeowners often guess or remember wrong. Recorded source data should come first. For more on how to set this up, see our article on tracking where every lead came from.

3. Connect leads to signed jobs

When an estimate turns into a contract, mark the original lead as won and enter the contract amount. This step is the one most often skipped, and skipping it reduces ROI back to guesswork. Use the same customer name or phone number in your lead log and your job records so the two can be matched.

4. Count every cost

Include ad spend, agency or software fees, design and printing, review platform costs, and the hours you or your staff spend managing marketing. If you leave out half the costs, every channel will look more profitable than it really is.

5. Measure over the right window

Roofing has a long and uneven sales cycle. Insurance claims, financing, and homeowners getting several bids can all push a signed contract weeks past the first call. Look at ROI by quarter and by season, not week by week, and do not cut a channel based on a single slow month.

What makes marketing different for roofing contractors

Roofing demand does not move at a steady pace, so a measurement method that works for a plumber or a dentist can give misleading results for a roofer. A few facts about the trade explain why.

Why roofing ROI swings

  • Winter and summer seasons
  • Hail, storms, and record rains
  • Uneven commercial demand
Lead volume that moves on its own
  • Compare to same season last year
  • Tag storm-driven leads separately
  • Reward channels that hold off-season
  • Seasonality is built in. According to the U.S. Bureau of Labor Statistics, roofing work in northern states may be limited during winter, and roofers may work overtime during busy summer months. The same ad spend will produce very different ROI in January and July.
  • Weather drives demand spikes. Roofing Contractor's coverage of AccuWeather's forecast describes contractors kept busy by hail in the Midwest, Tornado Alley activity, and record rains. After a storm, leads can surge regardless of how well your marketing performs, which can make a channel look better than it really is.
  • Homeowners act on extreme weather. A homeowner survey cited by Roofing Contractor found that 71% of homeowners who made protective improvements did so to deal with the effects of extreme weather.
  • Quiet seasons show the weak spots. As Roofing Contractor notes, busy seasons can hide weaknesses. Slow months show which channels produce leads without help from a storm.
  • Commercial demand varies by sector. A 2026 outlook expects a flat construction year with uneven commercial roofing demand, while contractor backlog has rebounded.

For measurement, this means you should compare each channel to the same season last year, not to last month. You should also tag storm-driven leads separately so a hail event does not inflate a channel's results. A channel that holds steady in the off-season deserves more budget than one that only performs after a storm.

What tools do roofers use to measure marketing ROI?

Roofing owners usually weigh some combination of field service software, a CRM, an all-in-one platform, an agency, a do-it-yourself setup, or a platform that runs marketing and measures it together. Each one solves part of the problem. The question is which part you most need solved.

Tool and where it fits

OptionBest fit
  • Jobber and Housecall ProSmaller residential contractors organizing operations
  • ServiceTitanLarger trade businesses with dispatch and office teams
  • HubSpotBusinesses with someone to build pipelines and reports
  • GoHighLevelOwners who want to build their own funnels

Most of these options are good at either running marketing or recording jobs, and fewer do both in the same place. ROI requires connecting the two, so pay attention to where each option's data stops.

Jobber and Housecall Pro

These are field service management tools for scheduling, quoting, invoicing, and managing crews. They fit smaller residential contractors who want their operations organized. Their focus is running jobs, so you will likely still need to run the marketing and its source tracking somewhere else.

ServiceTitan

ServiceTitan is field service software built for larger trade businesses with dispatch and office teams. It fits companies with several crews and staff dedicated to operations. It is a substantial system to set up and run, and it does not handle the marketing work itself.

HubSpot

HubSpot is a CRM and marketing platform used across many industries. It fits businesses that have someone available to build pipelines and reports. It is a general-purpose tool, so you have to configure it to fit how roofing works.

GoHighLevel

GoHighLevel is an all-in-one platform often configured by agencies and technically minded owners. It fits people who want to build their own funnels and automations. The trade-off is that you or a contractor you hire does the building and maintenance.

Scorpion, Thryv, and Podium

These belong to the category of marketing services and customer communication tools for local businesses, covering areas such as websites, messaging, and reviews. They suit owners who want help with one or more specific channels. Check whether their reports show closed revenue by source or only activity.

A marketing agency

An agency runs campaigns on your behalf. It fits owners who want to hand the work off completely. The common limitation is that the agency reports on its own results, so check that lead counts come from your own forms and phones. Our comparison of an agency versus marketing software goes into more detail.

Doing it yourself

This means using tracking numbers, UTM tags, and a spreadsheet. It fits a disciplined owner with a small budget and a few channels. It depends on consistent data entry, and that tends to break down during a busy storm season.

TruLata

TruLata runs search, Google and Meta ads, content, outbound, and email on a schedule. It counts every lead from your own site with its source and shows what happened and what it cost on one dashboard. It was built by a team that ran a marketing agency and turned that work into software. It fits roofers who want the marketing and the measurement in one place. It is not a scheduling or invoicing tool, so job management stays in your field service software.

OptionWhat it isBest forOne honest limit
Jobber / Housecall ProField service management softwareSmaller residential contractors organizing jobsBuilt to run jobs, not marketing
ServiceTitanField service software for larger trade businessesMulti-crew companies with office staffA substantial system that does not run marketing
HubSpotGeneral CRM and marketing platformTeams with someone to build reportsNeeds configuring to fit roofing
GoHighLevelConfigurable all-in-one platformOwners or agencies who like to buildYou do the building and maintenance
Scorpion / Thryv / PodiumMarketing services and customer communication toolsHelp with specific channelsCheck whether reports show revenue by source
Marketing agencyOutsourced campaign managementOwners handing off all the workOften reports on its own results
Do it yourselfTracking numbers, UTMs, and a spreadsheetSmall budgets with few channelsBreaks down when data entry slips
TruLataAI marketing platform that runs and measures marketingRoofers who want marketing and ROI in one placeNot a scheduling or invoicing tool

Which one to choose if...

The right choice depends on where your measurement currently breaks down. Match your situation to one of the options below.

  1. Check last quarterCan you see leads, closed jobs, and cost per channel?
  2. Find where it breaksMatch your situation to an option
  3. Fix that gap firstPick the tool that closes it
  • If your scheduling and invoicing are a mess: start with field service software such as Jobber, Housecall Pro, or ServiceTitan, depending on your size.
  • If you have an office manager who enjoys building reports: HubSpot or GoHighLevel can work.
  • If you want to hand everything off and still trust the numbers: an agency can work, as long as lead counts come from your own systems.
  • If you run one or two channels and keep good records: a do-it-yourself spreadsheet setup is enough for now.
  • If you want marketing that runs on a schedule and ROI you can see without assembling it yourself: TruLata, alongside the job software you already use.

Whichever you choose, the test is the same. Can you see, for last quarter, the leads, closed jobs, and total cost for each channel? If the answer is no, that gap is the problem to fix first.

How does TruLata show roofing marketing ROI?

TruLata records leads from your own website forms and attaches the source to each one, so your counts do not depend on a vendor's own report. Spend and results for each channel appear together on your TruLata dashboard, so cost per lead is shown directly rather than calculated by hand at the end of the month.

How TruLata shows ROI

  • Your own website forms
  • Search, Google and Meta ads
  • Content, outbound, and email
TruLata dashboard
  • Spend and results per channel
  • Cost per lead shown directly
  • Storm season vs off-season view

The platform also runs the work: search, Google and Meta ads, content, outbound, and email. Prospect emails go out from a review-first queue, and every send is logged. Because the same system runs the campaigns and counts the leads from your own forms, you can see in one place which channels performed during storm season and which held up in the off-season.

Ready to see where your roofing leads really come from? Open TruLata's live demo and see how a full quarter of leads, sources, and costs looks on a single dashboard.

FAQ

Questions, answered.

How do I measure ROI on marketing for my roofing company?

Track the source of every lead, match each lead to the jobs it closed, and total all marketing costs for each channel. Then divide (closed revenue minus cost) by cost. Review the results by quarter and season, because roofing demand rises and falls with weather.

What is a good way to track which marketing brings in roofing jobs?

Give each channel its own tracking phone number and add UTM tags to every ad and email link, so forms record the source automatically. Then mark each lead as won or lost when the estimate closes. Asking customers how they heard about you is a backup, not a replacement.

Why does my roofing marketing ROI change so much month to month?

Roofing demand depends on season and weather. Work slows in northern winters, and storms bring sudden surges. Compare each channel to the same season last year, and tag storm-driven leads separately so a hail event does not distort your results.

Should I measure cost per lead or cost per closed job for my roofing company?

Measure both, but make budget decisions based on cost per closed job. Cheap leads that never sign can cost more overall than fewer leads that close. Cost per lead helps you spot problems early, and cost per closed job tells you whether a channel actually pays.

How long should I wait before judging a roofing marketing channel?

Give a channel at least a full quarter, and ideally compare it across seasons. Roofing sales cycles can run long because of insurance claims, financing, and homeowners getting several bids. Cutting a channel after one slow month often means cutting it before its leads have had time to close.

See it running
before you decide.

TruLata runs your website, search, ads, content, outbound and email for service businesses. The demo is the real product on a fictional company, with your name and email in front of it.

Start 7 days free Open the live demo

No card. It ends on its own after 7 days unless you add one. See pricing.