Every marketing agency in America wants to talk about “impressions,” “engagement,” and “brand lift.” Those are vanity metrics. They don’t pay your guys on Friday.
Here’s the only ROI formula that matters for a trades business:
ROI = (Revenue from Marketing - Marketing Cost) / Marketing Cost
If you spent $5,000 on Google Ads in March and closed $25,000 in jobs that came from those ads, your ROI is (25,000 - 5,000) / 5,000 = 4.0x. For every dollar in, you got four out.
Sounds simple. Most trades businesses can’t actually compute it. Here’s why — and how to fix it.
The four numbers you need
You can’t run this formula if you don’t track these four things:
- Source of every lead. When someone calls or fills out a form, you log where they came from. Google Ads, Google organic, referral, repeat customer.
- Conversion rate, lead → quote. Of every 10 leads, how many do you actually quote?
- Close rate, quote → job. Of every 10 quotes, how many close?
- Average job value. What does a typical project pay you?
A simple spreadsheet (or any half-decent CRM) handles this. We set up dozens of trades businesses on Jobber, Service Titan, or even just a Google Sheet — and it changes everything.
A worked example
Picture a typical Montana roofing outfit spending $4k/month on Google Ads with no idea what’s coming back. The phone rings sometimes, so it feels like it’s working.
When you actually tag every lead and run the math, here’s what realistic mid-range trade numbers look like at that spend:
- $4,000/mo ad spend
- ~40 leads/mo from ads
- ~24 of those get quoted (60% lead → quote)
- ~7 of those close (29% close rate)
- Avg. job value: $9,200
- Revenue attributable to ads: ~$64,000/mo
- ROI: ~15×
15× is a great campaign. Most trades businesses spending that money never know.
The kicker shows up when you decompose the spend by campaign. It’s common to find half the leads coming from one campaign and the rest being dead weight. Kill the dead campaigns, double spend on the winner, and inside two months you’re typically pulling 3-4× the attributable revenue off the same or slightly higher ad budget. 25×+ ROI.
The trap: lead quality
Not all leads are equal. A “lead” who needs a $200 patch job costs you the same to acquire as a lead who needs a $40,000 commercial reroof — but the ROI is wildly different.
The real number you should track over time isn’t ROI on leads. It’s ROI on closed revenue per channel. Some channels send you junk. Some send you gold. The data will tell you in 60 days flat.
Plain-English ROI tracking — the 1-hour setup
If you want to start tracking this Monday morning, here’s what we do for clients:
- Set up dynamic call tracking (CallRail or built-in Google Ads call extensions). Each campaign gets its own number.
- Tag every form on your site with hidden source fields (Google Tag Manager, 30 minutes).
- Build a one-row-per-lead Google Sheet with columns: Date, Source, Lead Type, Quoted ($), Closed ($).
- Review every Friday for 10 minutes. Sum the closed column by source. Divide by spend. You have your ROI.
That’s the system. It costs maybe $50/mo in tools. It will completely change how you spend marketing dollars within a quarter.
What’s a “good” ROI?
Rough benchmarks for Montana trades:
- Google Ads: 4–8x is healthy. Below 3x, something’s broken (bad targeting, bad landing page, or too-low margins).
- Local SEO: 12x+ once it kicks in (low ongoing cost, high lead quality).
- Facebook Ads: 2–4x for trades. Don’t expect more.
- Direct mail: 5–10x in rural Montana zip codes, surprisingly.
If you’re below those benchmarks consistently, the issue is almost never “the ads.” It’s the website doing the converting (or not).
If you want to find out what your real ROI is — and where the dollars are leaking — that’s exactly what our free ROI audit shows you. Three pages. Plain English. No sales pitch. Request yours here.
Like This?
Get a free ROI audit.
We'll show you exactly where your site is leaking money — and what fixing it is worth.