Every home-service owner sets a marketing budget. Most of them set it badly.
The two usual methods are gut feel — “let’s try $3,000 a month and see” — and copying a flat rule someone repeated online: spend X% of revenue on marketing. Both feel responsible. Both mislead. Gut feel has no relationship to whether the spend pays. And a flat percentage treats a $12,000 HVAC install and a $200 drain clean as if they live by the same rule, which they don’t.
There’s a better way, and it isn’t complicated. You set a home-service marketing budget by working backwards from your own unit economics — average ticket, margin, close rate, the most you can pay to book a job, and how many jobs you want — to the number you actually need. The percentage benchmarks then become a sanity check, not the starting point. Here’s the full method.
Why ”% of revenue” misleads (and where it’s still useful)
The benchmarks aren’t wrong, they’re just blunt. Across the home-service industry the common ranges are:
- ~5–8% of gross revenue for a mature business in maintenance mode — full schedule, defending position.
- ~10–15% for a business in growth mode — expanding territory, hiring, taking share.
- ~15–20%+ for a new business under about two years old, buying its way into a market from a standing start.
Useful as a gut check. Dangerous as a starting point. A flat percentage misleads in three predictable ways:
- It ignores your ticket and margin. Revenue isn’t profit, and average tickets swing enormously by trade — a drain clean runs $180–$300, an HVAC install $5,000–$12,000, a roof replacement $9,000–$30,000. A trade with a fat ticket and a fat margin can profitably spend a very different number than one running $200 service calls at thin margins — even at the same revenue.
- It anchors to where you are, not where you’re going. If you want to grow 40% next year, last year’s revenue is the wrong base. A growing business that budgets off trailing revenue starves itself.
- It says nothing about whether the spend works. You can hit “8% of revenue” perfectly and still light the money on fire if it’s in the wrong channels with no tracking.
So use the percentage to sanity-check the number you build — if your bottom-up math says spend 35% of revenue and you’re not a brand-new business in land-grab mode, something’s off. But don’t start there.
Step 1: Find your max CAC (the most you can pay to book a job)
Everything starts with one ceiling: the most you can afford to pay to acquire a booked job — your max CAC, also called cost per booked job. Set this first and the budget falls out of it.
Work in gross profit, not revenue. Revenue pays your costs; only profit can pay for marketing.
- Start with the average ticket. Say it’s $500. (Use your real per-trade average — that drain clean and that HVAC install are not the same budget.)
- Apply your gross margin. At a 50% margin, you keep $250 of profit on that job before any marketing cost.
- Decide what share of that profit you’ll trade to win the job. Many home-service owners cap a first-job CAC at roughly 20–40% of gross profit — here, $50–$100 to book a $500 job. This is an operator rule of thumb, not a published standard; pick the share that keeps the job profitable for you.
- Adjust for lifetime value. If your customers come back — maintenance plans, repeat repairs, referrals — a customer is worth several jobs, not one. That lets you pay more on the first job because you’ll earn it back later. If it’s one-and-done, hold the line.
That number — call it $75 per booked job in this example — is your ceiling. Every channel either books jobs under it or it doesn’t earn its budget. You can also express it as a target return on ad spend (ROAS): a $75 cost to win a $500 job is a ~6.7x revenue ROAS before repeat work — a useful second lens when a platform reports revenue, not cost-per-job.
Plain version: Max CAC = (average ticket × gross margin) × the share of profit you’ll trade per job. It’s a cost-per-booked-job ceiling, not a cost-per-lead one.
Step 2: Multiply by the jobs you want
Now the budget is arithmetic instead of a guess.
Budget ≈ (max CAC × target booked jobs) + testing reserve
If you want 50 extra booked jobs a month and your max CAC is $75, the core acquisition budget is 50 × $75 = $3,750/month. Add a testing reserve (more on that below) and you have a number grounded in your economics, not someone’s blog post.
Two honest caveats. First, this is the acquisition portion — pure cost to win jobs. Brand work, your website, content, and tools (your CRM, call tracking, analytics) sit alongside it and should be budgeted too; don’t pretend the acquisition number is the whole marketing budget. Second, the target has to be realistic for your market — there’s a ceiling on how many “buy now” searches exist in your service area in a given month. You can’t always buy 50 more jobs just because the math allows it. That ceiling is exactly why channel mix matters.
Step 3: Allocate by intent and stage — capture demand first
Not all spend is equal. The fastest payback comes from reaching people who are already trying to hire — the ones typing “near me,” “emergency,” and your trade plus city. So fund channels in order of buyer intent, then expand.
Fund first — capture existing demand (high intent, fast payback):
- Google Business Profile + the Map Pack — start here, because it’s free. A complete, review-rich Google Business Profile with consistent NAP is the single biggest free demand-capture surface in home services; it’s what puts you in the local Map Pack when someone searches “plumber near me.” Budget the time (and review-generation effort) before you budget a dollar of paid.
- Local Services Ads — Google’s pay-per-lead units at the very top of local results, gated by the Google Guaranteed badge (background check, license and insurance verification) that drives their high conversion. As of mid-2026 the blended cost per lead runs around $55–$65, higher in competitive HVAC, roofing, and restoration metros and for emergency calls. The average book rate is near 44% — but a booked call isn’t a paid customer. Only ~20–23% of LSA leads become paying customers, so the true cost per paying customer is roughly $233–$315 depending on trade, several times the headline per-lead price. Don’t confuse book rate with close rate, and watch booked jobs, not leads.
- Google Search Ads — for the keywords LSA doesn’t cover and for tighter control over which jobs you bid on. Decide your brand vs non-brand split here (defending your own name is cheap; buying new demand costs more). Note that Google increasingly pushes spend into Performance Max, its automated campaign type that spans Search, Maps, and more — it can work for local advertisers, but only with clean conversion data feeding it, so don’t hand it your budget before your tracking is solid.
Expand next — compound or create demand (slower or lower intent):
- Local SEO — slow to start and it won’t book a job this week, but over months it produces leads at a low marginal cost and stops you renting 100% of your visibility. Fund it as a steady monthly investment once paid is working, not as your opener.
- Meta Ads (Facebook and Instagram) — cheaper leads, but lower intent: these people weren’t searching for you, so you’re interrupting and nurturing, not catching a ready buyer. Home-service Meta cost per lead has climbed to around $34 and rising, partly because Apple’s App Tracking Transparency (ATT) capped opt-in tracking near 25–30% and pushed platforms toward modeled conversions. A “$40 Meta lead” that closes at 8% is more expensive per job than a “$90 Google lead” that closes at 20% — cheaper leads can cost more per booked job. Treat Meta as a test-and-scale channel, and run it with the Meta Conversions API sending server-side, first-party events; pixel-only setups now capture only ~40–60% of conversions, so they under-report and overpay. CAPI recovers most of that gap, not all of it.
Weigh as separate budget lines: pay-per-lead marketplaces — Angi, Thumbtack, and Yelp — sell shared leads at a price you should compare against your own Google/LSA cost per booked job, not take on faith. And don’t forget the cheapest CAC most owners have: referrals and Nextdoor word-of-mouth. A referral program and an active neighborhood presence book jobs at a fraction of paid CAC and deserve a line in the plan.
A rough early-stage split: the majority of paid budget on Google Search + LSA, a steady monthly line for SEO, and a smaller test budget on Meta. But “rough” is the operative word — the right mix is whatever your tracking shows is booking jobs under your max CAC, not whatever a template says.
Step 4: Respect the minimum effective spend per channel
This is the mistake that quietly wastes more money than overspending: starving a channel below the floor where it can work.
Spreading $1,500 across LSA, Google, Meta, and SEO so each gets a sliver does nothing well. A Google Ads campaign needs enough budget to gather conversion data and let the bidding learn; an LSA budget too small to stay visible during business hours just blinks on and off; an SEO investment too thin to publish and earn links never compounds. Below a certain floor, the spend isn’t a small result — it’s no result, and you conclude “that channel doesn’t work” when really you never funded it past the starting line.
The honest rule: better to fully fund two channels than to half-starve four. Pick the highest-intent channels you can afford to run properly, get them past their effective floor, prove the cost per booked job, and only then add the next one. Sequencing beats sprinkling.
Step 5: Hold back a testing reserve
A budget that’s 100% committed to what’s already running can’t improve. Carve out a testing reserve — roughly 10–20% of the budget — for the next channel, a new landing page, a different offer, a new service line, a city you’re considering.
Most of it should sit on proven channels; the reserve is how you find the next proven channel before the current ones plateau. Without it, you’re locked into today’s mix and blind to tomorrow’s. A clean test needs enough budget to reach significance (back to the minimum-effective-spend point) and a clear before/after on cost per booked job — otherwise you’re not testing, you’re guessing with extra steps. And the test only means something if a tested page actually converts; if you’re sending paid clicks to a weak page, fix the landing page before you blame the channel. Speed matters as much as the page: with home-service leads, speed-to-lead is decisive — contacting a new lead within ~5 minutes (and using missed-call text-back so no call dies) is the difference between a paid lead that books and one that ghosts.
Step 6: Budget around seasonality
Most home-service demand isn’t flat, and a 1/12-per-month budget fights your own market. Use Google Trends to map your trade’s real peaks in your area instead of guessing.
- HVAC spikes in summer and winter; shoulder seasons are quiet.
- Roofing follows storms and dry-weather installs.
- Plumbing has a steadier baseline with weather-driven emergency surges.
The move is to concentrate spend into the peaks, where buyers are ready and every dollar books more jobs, and pull back (without going dark) in the troughs. There’s a real debate about advertising in the off-season to capture cheaper, less-contested leads — sometimes worth it, sometimes just paying for clicks that don’t book. Let your tracking settle it per channel rather than guessing. The point is simple: an annual number divided evenly by twelve ignores when your customers actually buy.
A simple worked example
Put it together for a plumbing business that wants to grow.
- Average ticket: $500
- Gross margin: 50% → $250 gross profit/job
- Max CAC (40% of gross profit): $100/booked job
- Goal: 40 additional booked jobs/month
Core acquisition budget: 40 × $100 = $4,000/month.
Testing reserve (15%): ~$700/month → working budget around $4,700/month, before website, content, and tools.
Allocation (capture demand first):
- Google Business Profile + Map Pack: $0 paid (time and review effort — fund it first anyway)
- LSA + Google Search: ~$3,000 (the high-intent core)
- Local SEO: ~$1,000 (steady, compounding)
- Meta test: ~$700 (the reserve, run with the Meta Conversions API)
Sanity check against the benchmark: if this business does $700,000/year, ~$4,700/month is about 8% of revenue — squarely in the normal growth range. The bottom-up number and the benchmark agree, which is exactly what you want. If they’d disagreed wildly, that’s your signal to re-check the inputs.
Then watch the only number that matters: cost per booked job per channel, and payback period — how long until the profit from those jobs covers the spend that won them. For high-ticket trades with repeat customers, payback can be near-immediate on the first job; for thin-margin, one-and-done work, you need it fast or the budget bleeds. If a channel’s cost per booked job drifts above your $100 max CAC, you cut or fix it — not after the quarter, but now.
The meta-point: no tracking, no real budget
Here’s the part most budget advice skips, and it’s the part that makes everything above real or fake: without conversion tracking, every number on this page is a guess.
The entire method depends on knowing your true cost per booked job per channel — not cost per click, not cost per lead, but cost per job that actually landed on the calendar. That takes a real stack, not an abstraction:
- Call tracking (e.g., CallRail) with dynamic number insertion, because home-service leads are overwhelmingly phone calls — a “conversion tracking” setup with no call tracking is a half-truth.
- Google Analytics 4 and Google Tag Manager to capture form fills and tie sessions to channels.
- Your CRM / field-service software — ServiceTitan, Housecall Pro, or Jobber — as the system of record for which leads actually became booked, closed, paid jobs. Without it you can’t attribute revenue to a channel at all.
- Offline conversion import / Enhanced Conversions for Leads, the Google mechanism that feeds closed and paid jobs back into bidding so the platform optimizes for revenue, not form-fills. This is the “cost per booked job, not cost per lead” idea operationalized.
One caution worth naming: the attribution model you pick (last-click, data-driven, multi-touch) changes which channel gets credit for the same job — so compare apples to apples, and lean on first-party, server-side data given privacy limits like ATT and Consent Mode. If you can’t attribute booked jobs to the channel that produced them, you can’t tell which spend to scale and which to kill. You end up feeding whatever looks busy — the channel with the most clicks or the cheapest leads — instead of the one quietly booking profitable jobs.
So conversion and call tracking isn’t an optional add-on to the budget — it’s the prerequisite for having a budget at all. Get it in place first: track form fills and calls, tie them to your CRM, watch cost per booked job. Then the backwards math is grounded in your real numbers instead of being budgeting theater. Set the ceiling, fund the high-intent channels properly, hold a reserve, respect seasonality — and let the tracking, not your gut, tell you where the next dollar goes.
FAQ
What percentage of revenue should a home-service business spend on marketing? The common benchmarks are roughly 5–8% of gross revenue for a mature business in maintenance mode, around 10–15% when you’re actively growing or hiring, and 15–20%+ for a new business under two years old that’s buying its way into a market. But the percentage is a sanity check, not a budget. The honest way to set the number is to work backwards from your unit economics: take your average ticket, your gross margin, your close rate, and the most you can afford to pay to book one job (your max CAC), then multiply by how many jobs you want. A flat percentage misleads when your ticket, margin, or growth goal is far from average — a $12,000 HVAC install and a $200 drain clean can’t run on the same rule of thumb.
How do I calculate the most I can spend to acquire a customer? Start with the gross profit on a job, not the revenue. If your average ticket is $500 and your gross margin is 50%, you keep $250 before marketing. Decide what share of that profit you’re willing to give up to win the job — many home-service owners cap a first-job CAC at 20–40% of gross profit, so $50–$100 here. If your customers come back (maintenance plans, repeat repairs, referrals), you can pay more, because lifetime value is several jobs, not one. That ceiling is your max CAC (cost per booked job), and you can pressure-test it against a target return on ad spend (ROAS). Your budget is max CAC times the number of jobs you want, plus a testing reserve. Set the ceiling first; the budget falls out of it.
How should I split my marketing budget across channels? Fund channels by intent and stage. First capture the demand that already exists: a fully optimized Google Business Profile (free, in the Map Pack), Local Services Ads, and Google Search Ads reach people actively looking to hire right now, so they pay back fastest. Once those are profitable and near their effective ceiling, expand into channels that compound or create demand — local SEO (slow but cheap leads over time) and Meta Ads (cheaper, lower-intent leads you have to nurture). Weigh pay-per-lead marketplaces (Angi, Thumbtack, Yelp) and your referral and Nextdoor word-of-mouth as separate budget lines. A rough early-stage split is the majority of paid budget on Google and LSA, a steady monthly investment in SEO, and a smaller test budget on Meta — but the right mix depends on your trade, your ticket, and what your tracking shows is actually booking jobs, not impressions.
Why does conversion tracking matter for setting a budget? Because without it, every budget number is a guess. The whole backwards method depends on knowing your real cost per booked job per channel — not cost per click or cost per lead, but cost per job that actually got on the calendar. That means call tracking (CallRail) on your phone numbers, GA4 and conversion tags on your forms, your CRM (ServiceTitan, Housecall Pro, or Jobber) as the system of record for what closed, and offline conversion import / Enhanced Conversions for Leads feeding closed jobs back into Google’s bidding. If you can’t tell which channel produced which booked job, you can’t tell which to feed and which to cut, so you scale the spend that looks busy instead of the spend that pays. Fix attribution first; then the budget math is real instead of theater.
If you want your budget sized off your real numbers — your ticket, your margin, your close rate, your max CAC — instead of a percentage you read somewhere, right-size my budget. We’ll build the backwards math with you, make sure the tracking is real first, and tell you straight where your next dollar earns the most.