If you're spending money on Google Ads or Facebook Ads to generate construction leads, your ROAS (return on ad spend) tells you whether that spend is actually profitable. For most contractor businesses, 3x–6x ROAS is a healthy range — meaning for every $1 spent on ads, you're bringing in $3–$6 in job revenue.
But the "good ROAS" number is different for every trade. A roofing contractor with a $15,000 average job and 45% gross margins needs a very different minimum ROAS than a handyman averaging $400 tickets at 35% margins. The break-even math is what matters — not the benchmark.
Rule of thumb: Break-even ROAS = 1 ÷ your gross margin %. If your jobs net 40% gross margin, you break even at 2.5x ROAS. Every dollar above that multiplier is profit.
Enter your ad spend, revenue, and margins to see your current ROAS, break-even threshold, and profit per campaign dollar — free, no login needed.
Open ROAS CalculatorROAS is the simplest marketing metric there is:
Spend $2,000/month on Google Ads, close $10,000 in work directly traceable to those ads — your ROAS is 5x. Simple.
Where contractors go wrong is two things: attribution and margin blindness. Attribution is hard because most homeowners call after seeing an ad, not after clicking one — so Google's "conversion" numbers undercount by 30–60%. Margin blindness is more expensive: a 4x ROAS looks great until you realize your gross margin is 22% and you're actually losing $80 for every $1,000 in attributed revenue.
Your break-even ROAS is the minimum multiplier that keeps you profitable. Below this number, every campaign dollar accelerates losses. Above it, every dollar is margin.
| Trade | Typical Gross Margin | Break-Even ROAS | Target ROAS |
|---|---|---|---|
| Roofing | 35–45% | 2.2x–2.9x | 4x–7x |
| HVAC | 40–55% | 1.8x–2.5x | 3x–6x |
| Kitchen Remodel | 30–40% | 2.5x–3.3x | 4x–8x |
| Bathroom Remodel | 35–45% | 2.2x–2.9x | 4x–7x |
| ADU / Room Addition | 25–35% | 2.9x–4.0x | 5x–10x |
| Plumbing | 45–60% | 1.7x–2.2x | 3x–5x |
| Electrical | 40–55% | 1.8x–2.5x | 3x–5x |
| Flooring | 30–40% | 2.5x–3.3x | 4x–7x |
| Painting | 40–55% | 1.8x–2.5x | 3x–6x |
| Handyman / General | 30–40% | 2.5x–3.3x | 4x–6x |
Note: These margins exclude owner labor. If you're billing your own time at market rate, deduct it from gross margin before calculating your break-even ROAS.
Google Ads and Facebook Ads serve very different roles in a contractor's funnel — and they produce very different ROAS numbers because of it.
| Channel | Avg. Contractor ROAS | Best For | Watch Out For |
|---|---|---|---|
| Google Search (exact match) | 4x–8x | Bottom-funnel, job-ready leads | Branded keyword cannibalization |
| Google Local Services Ads | 5x–12x | High-intent local leads, pay-per-lead | Lead quality varies by category |
| Google Display | 1x–3x | Brand awareness, retargeting | Low direct conversion; support play only |
| Facebook / Instagram (cold) | 1.5x–3x | Before/after creative, seasonal promos | Hard to attribute — use UTMs |
| Facebook / Instagram (retargeting) | 4x–9x | Website visitors who didn't convert | Audience size limits in small markets |
Give your clients a reason to stay on your page. The TradeCalcs ROAS widget embeds in one line, captures leads automatically, and costs $9 once — no monthly fee.
Get the ROAS Calculator — $9You can't calculate ROAS without knowing which revenue came from which ad channel. The minimum setup: use UTM parameters on all ad links, track call source (CallRail or similar), and tag every closed job with its lead source in your CRM or job management software.
Ad spend = everything you paid the platform. Include management fees if you use an agency — agencies often show ROAS against platform spend, not total cost, which inflates the number by 25–50%.
Example: $12,000 in jobs attributed to Google Ads, $2,400 total cost (platform + management) → ROAS = 5x.
If your gross margin is 38%: break-even ROAS = 1 ÷ 0.38 = 2.63x. Your 5x ROAS is nearly 2x your break-even — the campaign is healthy.
5x ROAS × 38% margin − 1 = $0.90 profit for every $1 spent on ads. Meaning every dollar you put in returns $1.90 in cash (the $1 back plus $0.90 profit).
For service contractors, a single job ROAS is the floor — not the ceiling. A homeowner who hires you for a $3,000 bathroom remodel and then calls you for a $12,000 kitchen two years later has an actual lifetime value 5x higher than the first job. If you're optimizing purely to first-job ROAS, you'll underinvest in the channels that deliver the best repeat customers.
| Scenario | First-Job Revenue | 5-Year LTV | True ROAS (LTV basis) |
|---|---|---|---|
| Roofing (replace + gutter + repair) | $14,000 | $21,000 | 1.5x implied multiplier on first-job ROAS |
| HVAC (install + 2 service calls/yr) | $8,500 | $11,200 | 1.3x implied multiplier |
| Remodeling (kitchen → bath → ADU) | $18,000 | $52,000 | 2.9x implied multiplier |
| Plumbing (emergency + 2 remodels) | $900 | $6,400 | 7.1x implied multiplier |
Google Ads reports a "conversion value" that counts attributed revenue using its last-click model. This almost always overstates performance because it ignores calls that came in after someone saw (but didn't click) your ad. Apply a 25–40% haircut to Google's attributed revenue number when calculating true ROAS.
Ad spend generates leads. Not all leads close. If you spend $500 to generate 10 leads and your close rate is 30%, your true cost per acquisition is $167 — not $50. ROAS calculations must use closed job revenue, not lead pipeline value.
If your average ticket is $250 (handyman, minor repairs), chasing Google Ads ROAS is usually a losing game. Google Search CPCs in home services hit $8–$22 per click in competitive markets. At a 3% conversion rate, that's $267–$733 per lead — which already blows past your ticket value before the close rate. Lower-ticket services perform better on Facebook with a strong creative offer, not keyword-intent bidding.
Paste your ad spend and revenue into the TradeCalcs ROAS calculator and see your break-even threshold, current profit margin, and how much more you can scale before returns compress.
Open Free ROAS CalculatorFor most contractor trades on Google Ads, a 3x–6x ROAS is a healthy operating range. High-ticket trades (roofing, HVAC, ADU) can be profitable at 2x–3x because gross margins on large jobs absorb more ad cost. Service trades with tickets under $1,000 typically need 5x+ to stay cash-flow positive after close rate is factored in.
Break-even ROAS is the minimum return on ad spend needed to cover cost of goods. It's calculated as 1 ÷ gross margin %. A 40% gross margin means you break even at 2.5x ROAS. Any campaign running below that number is costing you money even if leads are coming in.
ROAS = Attributed revenue ÷ total ad cost (including management fees). To be accurate: attribute revenue only from jobs you can trace back to the ad channel (CRM tags, UTMs, call tracking), and include all costs paid to generate that revenue — not just the platform spend.
CPA (cost per acquisition) is simpler to track for trades with consistent ticket sizes — HVAC installs, plumbing emergencies. ROAS gives more signal for trades with wide ticket ranges (remodeling, roofing) because a $500 CPA on a $3,000 job and a $500 CPA on a $30,000 job are completely different profit outcomes. Use both: CPA to manage lead volume, ROAS to validate profitability.