How to Calculate Google Ads ROI
for Service Businesses
The formula, the benchmarks, and the attribution method that actually tells you whether your Google Ads are working — not just spending.
Google Ads ROI for service businesses is calculated as (Revenue from Ads - Ad Spend - Management Fees) / (Ad Spend + Management Fees). A roofing company spending $3,000/month on ads plus a $600 management fee books 8 jobs at $6,000 average ticket, generating $48,000 revenue: ($48,000 − $3,000 − $600) / ($3,000 + $600) = $44,400 / $3,600 = 12.3:1 ROI on total investment including management fees.
The ROI Formula — Worked Example
Note: this formula measures revenue-based marketing return (similar to ROAS) — booked-job revenue against total ad investment. It does not subtract job-delivery costs (materials, labor, overhead), so it is not the same as profit-based ROI. For a profit view, apply your gross margin to the revenue figure before comparing it to investment — see the Break-Even CPL section below, which does account for margin.
The Google Ads ROI formula is simple, but most businesses use it wrong. They divide revenue only by ad spend, ignoring management fees. That inflates the apparent return. Use total investment in the denominator.
Here is how that formula plays out for a hypothetical plumbing company:
Monthly Investment
Ad spend: $2,000 | Management fee: $600 | Total: $2,600/month
Lead Volume
Clicks: 180 | Landing page conversion rate: 14% | Leads generated: ~25
Jobs Booked
Close rate from booked estimate to paid job: 35% | Jobs booked: ~8–9
Revenue Generated
Average job ticket: $420 | Jobs: 8.75 | Revenue from ads: ~$3,675
ROI Calculation
($3,675 - $2,000 - $600) / ($2,000 + $600) = $1,075 / $2,600 = 0.41
At first glance the first-job return looks thin. But this plumber charges for maintenance contracts. Read the next section to see why first-job ROI is the wrong metric for most service businesses.
Lifetime Value vs. First-Job Value — Why LTV Changes Everything
The plumbing company above shows only a modest return, after marketing costs, on a first-job basis. But consider what happens when you account for the full customer relationship over 3 years:
The value most businesses use to evaluate campaign performance. At $420 average ticket, a $104 CPL (from our example above) delivers only a modest 41% first-job return on total marketing investment (ad spend plus management fee) — not enough on its own to justify aggressive scaling.
Same plumber: customers average 2 additional service calls per year at $350 each for 3 years = $2,100 in repeat-service revenue, on top of (not including) the original $420 first job — so full lifetime revenue per customer is $420 + $2,100 = $2,520. The $2,100 repeat-service figure is what the ROI calculation below uses. Customer acquisition cost (CPL divided by close rate) is $104 / 35% ≈ $297. Against the $2,100 in repeat-service revenue, that is a net return of ($2,100 − $297) / $297 ≈ 6.1:1 — matching the repeat-service revenue-based calculation below, which excludes the first job. The campaign is performing well once repeat business is counted, not just the first job.
Calculating your LTV requires CRM data — average repeat bookings, average years retained, average upsell rate. If you do not have this data yet, 2.5x your first-job average ticket is a rough, illustrative starting point for repeat-service businesses — not an industry benchmark. Replace it with your real retention numbers as soon as you have them.
Repeat-Service Revenue-Based Return (Excluding the First Job)
((Repeat-Service Value per Customer x Close Rate x Leads) - Total Investment) / Total Investment
Plumbing example: (($2,100 x 35% x 25) - $2,600) / $2,600 = ($18,375 - $2,600) / $2,600 = $15,775 / $2,600 = 6.1:1 return on repeat-service revenue alone, excluding the first job — not 0.41:1 on the first job alone. Using full lifetime revenue instead ($2,520 per customer, including the first job) would produce approximately (($2,520 x 35% x 25) - $2,600) / $2,600 = $19,450 / $2,600 ≈ 7.5:1 under these same assumptions.
What Counts as Revenue from Ads — Proper Attribution
Before you can calculate ROI, you need to know which revenue actually came from Google Ads. Most businesses either over-attribute (claiming all revenue) or under-attribute (missing offline jobs). Here is the correct method.
Count: Form Submissions with UTM Tracking
Leads that came through your Google Ads landing page with UTM parameters tracked in your CRM. These are direct attribution — Google Ads drove the lead.
Count: Call Tracking Numbers from Ads
Calls to a dynamic number shown only to Google Ads visitors. Google Ads call extensions and call tracking tools like CallRail attribute these correctly to the campaign.
Count: Offline Conversion Imports
Jobs booked from Google Ads leads that were closed offline (phone quote, in-home estimate). Import these back to Google Ads via the Offline Conversion Import feature so the algorithm optimizes toward actual revenue, not just form fills.
Do Not Count: Organic or Direct Traffic Revenue
Revenue from customers who found you via Google Search (organic), direct type-in, referrals, or other channels should not be credited to Google Ads. Including it inflates your apparent ROI and makes it impossible to accurately judge campaign performance.
Do Not Count: Last-Click Attribution for Multi-Touch Journeys
If a customer clicked your Google Ad, left, then came back 3 weeks later via a direct link and booked, last-click attributes it to direct. Use data-driven attribution in Google Ads to get a more accurate picture across multi-session journeys.
Illustrative Campaign Inputs — By Vertical
The figures below are illustrative examples showing how the ROI formula plays out at different price points and close rates — they are not a verified industry study. Plug in your own numbers using the formula above for a figure specific to your business.
| Industry | Monthly Ad Spend | Avg CPL | Close Rate | Avg Ticket |
|---|---|---|---|---|
| Roofing | $2,500 | $90 | 28% | $9,500 |
| HVAC Replacement | $2,200 | $85 | 32% | $7,800 |
| Water Damage | $3,500 | $130 | 55% | $4,200 |
| Plumbing | $1,800 | $55 | 38% | $420 |
| Electrical | $1,800 | $60 | 35% | $550 |
| Window Replacement | $2,500 | $95 | 25% | $6,500 |
| Pest Control | $1,200 | $40 | 42% | $280 |
| HVAC Service/Repair | $1,500 | $65 | 45% | $380 |
These are illustrative campaign inputs only, not observed ROI outcomes — use the formula above with your own numbers to calculate a figure specific to your business.
The Break-Even CPL Formula — Know Your Ceiling
Before launching a campaign, calculate your maximum viable CPL. This tells you how much you can afford to pay per lead while still generating a positive return on a gross-margin basis — it does not subtract management fees or other overhead, so treat it as a ceiling, not your full-cost break-even point.
A common planning assumption is to target 40–60% of your break-even CPL, which leaves room as a cushion and for bidding more aggressively during peak season — treat this as a starting point, not a universal rule; the right ratio depends on your risk tolerance and growth goals. If your break-even CPL is $1,330 (roofing example), that assumption points to a target CPL of roughly $532–$798.
Why Vanity Metrics Mask True ROI
Google Ads dashboards are full of metrics that feel important but tell you nothing about whether you are making money. Here is what to ignore and what to actually watch:
The single most important number in any local service Google Ads account is CPL trended over time. If your CPL is decreasing month-over-month and your lead volume is stable or growing, the campaign is working. Everything else is context.