The Math Nobody Runs: Cost Per Booked Job, Not Cost Per Click
Google Ads for home service trades runs anywhere from $15 to $85 per click depending on the trade and the metro, with roofing, HVAC replacement, and water damage sitting at the high end and smaller ticket trades like lawn care or handyman work sitting lower. A contractor spending $3,000 a month on search ads in a mid-size metro is typically buying somewhere between 40 and 150 clicks, and only a fraction of those clicks turn into a phone call or form fill. Run the numbers past that and a booked job through Google Ads commonly lands in the $150 to $600 range once you factor in clicks that never convert, tire-kickers, and the leads your competitors are also bidding on in real time.
Email and SMS follow-up to your own list works differently because there's no bidding war. You already paid to acquire that contact once, through a past job, a quote that didn't close, or a referral. The marginal cost of reaching them again is a platform fee, not an auction. A quoted-but-not-closed lead that gets a text three days after the estimate costs you the price of an SMS credit, not a bid. That's the entire argument in one paragraph: Google Ads buys strangers, follow-up harvests people you already paid for once.
The catch is follow-up has a ceiling. You can only reactivate the names already in your database. Once that list is worked, dollar four hundred and dollar four thousand behave the same way: flat. Google Ads has no ceiling except your budget and your close rate, which is exactly why the honest answer is sequence, not either/or.
- Google Ads cost per booked job: roughly $150 to $600+ depending on trade and market competitiveness
- Email/SMS reactivation cost per booked job: typically $10 to $60, mostly labor and platform fees, not media spend
- Quote follow-up cost per booked job: often under $20, since the lead already exists and just needs a nudge
Why Follow-Up Wins First: You Already Paid for the Lead Once
Every contractor we talk to has some version of the same list: names of people who got a quote and went quiet, past customers who haven't called in two or three years, and warranty or maintenance-plan customers who are due for a service call and don't know it. That list represents money already spent, on ads, on a truck roll, on an estimator's time, and it's sitting there earning nothing.
A roofer who quoted 40 jobs last year and closed 12 has 28 names that cost real dollars to generate and never got a follow-up text. An HVAC contractor with 300 past install customers has a maintenance-plan and tune-up list that, unworked, ages into silence. In both cases the acquisition cost is sunk. The only question left is whether you spend a little more to convert what you already paid for, or let it evaporate while you buy fresh clicks from Google to replace it.
This is also the fastest path to cash flow, which matters if the ad budget itself is tight. A quote-follow-up sequence timed to the trade's real buying window (same week for storm damage, 30 to 60 days out for a kitchen remodel decision, spring and fall for HVAC and lawn) routinely recovers jobs inside the first billing cycle, because the lead already knows your name, already got a number, and just needed a reason to say yes before hiring someone else.
None of this replaces new customer acquisition. It just means the cheapest jobs on the board are usually the ones already sitting in your phone.
When Google Ads Earns the Next Dollar Instead
Follow-up runs out of runway once the list is worked. If you've reactivated the dead customers, nudged every open quote, and put maintenance reminders on a schedule, and you still need volume, that's the point where Google Ads is the right next spend, not before it.
Google Ads also wins in specific situations follow-up can't touch: a contractor new to a market with no list yet, a trade with a short buying cycle where the customer is actively searching today (burst pipe, no AC in July, storm damage this week), or a business trying to expand into a new service line or zip code where there's no existing customer relationship to work.
The trades where Google Ads pulls its weight fastest are the ones with emergency or same-week intent: plumbing leaks, AC failures in peak summer, garage door and lock emergencies, storm and water damage. Someone searching "emergency plumber near me" at 9pm isn't on anyone's list yet; paid search is the only channel positioned to catch that exact moment.
| Situation | Fund first |
|---|---|
| You have 100+ past customers or open quotes never followed up | Email/SMS |
| List is worked, still need volume | Google Ads |
| New business, no customer history yet | Google Ads |
| Trade has same-day/same-week emergency demand | Google Ads (with follow-up running in parallel for repeat calls) |
| Seasonal trade between peak windows | Email/SMS (nurture and reminders) while ads pause or throttle |
The mistake we see most is a contractor pouring the whole budget into ads while the CRM sits untouched. That's paying full price for new strangers while ignoring a warm list that would've converted for a tenth of the cost.
What a Real 90-Day Split Looks Like
There's no universal ratio, but here's a realistic starting split for a contractor with an existing list and an existing ad account, built around fixing the leak first and then scaling acquisition.
- Weeks 1 to 4: Build and launch quote follow-up (automated nudges at day 1, day 4, day 10 after an unclosed estimate) and a reactivation sequence to past customers who haven't booked in 12+ months. Ad spend stays flat or pauses during setup so you're not paying for clicks while the follow-up engine isn't built yet.
- Weeks 5 to 8: Follow-up is running and converting recovered jobs. Redirect a portion of what those recovered jobs would have cost in ad spend back into a modest, targeted Google Ads campaign, aimed at the highest-intent keywords for the trade rather than broad match terms that burn budget on tire-kickers.
- Weeks 9 to 12: Both channels running together. Follow-up handles repeat business, maintenance reminders, and review requests on every closed job (each closed job re-enters the list instead of disappearing). Ads handle net-new demand. Budget split settles wherever the cost-per-booked-job data says it should, not wherever feels comfortable.
By day 90 you should have real numbers instead of a guess: what a booked job costs from follow-up versus what it costs from ads, for your trade, in your market. That number tells you where dollar 91 goes. Most contractors are surprised how much of the early win comes from names already in the phone, and how much less that costs to move than a fresh Google click.
The Compliance Line Google Ads Doesn't Have to Worry About
Google Ads has its own rules (policy violations, disapproved ads, account suspensions) but it doesn't carry the same legal exposure as SMS. Text messaging to customers is governed by the TCPA, and getting it wrong is not a slap on the wrist, it's statutory damages per violating text, plus the very real risk of your business number getting flagged as spam by carriers, which kills deliverability for every future message, marketing or otherwise.
The baseline rules any contractor doing SMS follow-up needs in place: documented opt-in before the first marketing text (a job invoice signature or a checked box on a quote form counts, a scraped phone number does not), a clear opt-out instruction on every message ("Reply STOP to opt out"), and a system that actually honors STOP requests immediately rather than relying on a spreadsheet someone updates weekly. Email carries lighter but real obligations under CAN-SPAM: a working unsubscribe link, honest subject lines, and your physical business address in the footer.
This is also where the generic all-in-one dashboard tools tend to fail contractors specifically. A template built for retail e-commerce doesn't know that a roofing customer's next relevant touch is a storm-season reminder eight months out, not a weekly promo blast, and blasting the same cadence to every trade is exactly what gets numbers flagged. The sequence has to match the trade's real buying cycle: maintenance plans on a schedule for HVAC, storm follow-up windows for roofing, seasonal reminders for lawn and landscaping, not one generic drip built for whoever bought the software license.
None of this is a reason to skip SMS. It's a reason to set it up once, correctly, with opt-in records kept and STOP handling automated, so the channel stays usable instead of getting your number burned after one bad campaign.
Why the Two Channels Aren't Really Competing for the Same Dollar
It helps to stop thinking of this as an either/or budget fight and see what each channel is actually built to do. Google Ads buys attention from someone who doesn't know your business exists yet and is actively typing a problem into a search bar. Email and SMS follow-up doesn't compete for that attention at all. It works a relationship that already started: a truck that already rolled, an estimate that already got written, a job that already got done.
That distinction is why comparing them on a single blended "cost per lead" number misleads more than it clarifies. A cold click from a paid ad and a warm text to a past customer aren't the same unit of demand, they're two different stages of the same funnel. One creates a customer relationship from nothing. The other extracts more value from a relationship you've already paid to create. Treating them as competitors for the same dollar is how contractors end up either overspending on ads while a warm list rots, or under-investing in acquisition because the list feels like free money that doesn't need reinvestment.
The businesses that get the most out of a marketing dollar treat this as a pipeline, not a fork in the road: Google Ads (and local SEO, and AI search visibility) fill the top of the funnel with new names, and email/SMS follow-up makes sure none of those names, or any of the ones already in the database from years of past work, get let go without at least one real attempt to close or reactivate them. Skipping the follow-up stage doesn't save money, it just means every new-customer dollar spent on ads has to work twice as hard, because there's no second chance built in when the first quote doesn't close on the spot.
Where this gets confused in practice is when a contractor sees a Google Ads dashboard with clean click and conversion numbers, and compares that to a follow-up sequence with no dashboard at all because nobody built one. The follow-up channel doesn't look competitive because it isn't being measured, not because it isn't working. Fixing that measurement gap, tracking recovered quotes and reactivated customers with the same rigor as ad conversions, is usually what settles the argument for good.
A Simple Test: Pull Your List and Count
Before deciding where the next dollar goes, run this five-minute audit. Pull your CRM, invoicing software, or even just your phone contacts and count three things: how many quotes went out in the last 12 months that didn't close, how many past customers haven't had a job or a call in over a year, and how many closed jobs in the last 90 days never got a review request or a referral ask.
If any of those three numbers is in the double digits, there is unworked, already-paid-for demand sitting in your business right now, and that's where the next dollar should go before it goes to Google. If all three numbers are near zero because you're already disciplined about follow-up, or because the business is brand new with no list yet, that's the signal Google Ads is the right next move instead.
Run the count trade-specific, too, because the shape of the list changes what you're looking for. A roofer's dormant list is mostly one-and-done customers from years back who might need a repair, a full replacement, or a referral to a neighbor after the next storm. An HVAC contractor's list has a built-in reason to re-contact everyone twice a year: seasonal tune-ups that customers expect a reminder for and often forget to schedule themselves. A landscaper's list might be full of seasonal contracts that lapsed without anyone asking why. The number of quotes and dormant customers matters less than whether you have a reason, tied to how that trade actually gets rehired, to reach back out.
This isn't a one-time decision. Re-run the count quarterly. A contractor who builds follow-up into every closed job (automatic review request, automatic 12-month check-in, automatic seasonal reminder) keeps that list from ever going stale again, which means more and more of next quarter's budget can shift toward net-new acquisition instead of playing catch-up on names that should have been worked months ago.