How to Calculate Marketing ROI for a Home Service Business (Without a Spreadsheet Degree)

•

You can tell me exactly what you spent on marketing last month. Google, LSA, Meta, maybe a few hundred to a local print flyer nobody’s tracked since 2019. That number is easy. It’s sitting right there in your bank statement.

Ask what that spend actually returned, and most owners give a feeling instead of a number. “Ads are working, I think.” “We got some calls from that.” “Honestly, whichever channel called last gets the credit.”

That’s not a knock on you. Nobody ever sat down and showed you the four numbers this calculation actually needs. Marketing ROI gets talked about like it requires a finance degree and a subscription to some dashboard tool. It doesn’t. It’s four inputs you already have somewhere in your business, run through one formula, twenty minutes if you’re organized and an hour if you’re digging through invoices. This is that math, done honestly, including the parts that don’t flatter the answer.

The Marketing ROI Formula, in Plain Language

Here’s the formula:

ROI = (gross profit from marketing − marketing cost) / marketing cost × 100

Notice what’s not in there: revenue. That’s the part almost every calculator tool and finance explainer skips, and it’s the part that changes the answer the most.

Say you spend $1,000 on ads and it generates $5,000 in revenue. Run the revenue version of this math and you get (5,000 − 1,000) / 1,000 × 100 = 400% ROI. That number looks great in a report. It’s also wrong, or at least incomplete, because $5,000 in revenue isn’t $5,000 you get to keep.

If your gross margin is 35%, that $5,000 in revenue is actually $1,750 in gross profit. Run the real formula: (1,750 − 1,000) / 1,000 × 100 = 75% ROI. Still good. Not 400% good.

This is the revenue-versus-margin trap, and it’s the single most common way home service marketing ROI gets overstated. Revenue-based ROI flatters everyone. Gross-profit-based ROI tells you what you actually made.

The Four Inputs and Where They Live in Your Business

You need four numbers, and you probably have all of them already, just scattered across different places.

Leads by source

How many leads did each channel produce this month? Your call tracking software or ad platform dashboard has this if you’ve set it up. If you haven’t, and calls all ring the same number regardless of source, this is your honest fallback: you don’t have this number yet, and everything downstream is an estimate. Say so to yourself before you do the rest of the math. We go deeper on reading this specific number out of your Google Ads dashboard in how to read your Google Ads report without an agency translating it for you.

Close rate

Of the leads a channel produced, how many became paying jobs? This lives in your CRM or job-scheduling software if you track lead source through to booked job. If you don’t track that link, use your overall close rate as a stand-in and round down. An estimate that assumes the worst is more useful than an estimate that assumes the best.

Average job value

What does a typical job from this channel actually bill? Not your top job of the year, not your smallest. Your invoicing software has this. Note here that job value by source can vary a lot: a call from a maintenance-plan sign-up looks very different from a call chasing an emergency repair. If you haven’t split job value by lead source before, that’s worth doing before you trust this number too far.

Gross margin

What percentage of a job’s revenue is actual profit, after materials, labor, and direct job costs, before overhead? Your accountant or bookkeeper has this number, or can pull it in five minutes. If you genuinely don’t know it, use a conservative estimate for your trade rather than skip the step. Guessing high on margin is the easiest way to convince yourself a channel is working when it isn’t.

Four numbers. Leads, close rate, job value, margin. Multiply leads by close rate to get jobs. Multiply jobs by job value to get revenue. Multiply revenue by margin to get gross profit. Now you can run the formula.

A Worked Example: An HVAC Company Spending $4,000 a Month

This is a hypothetical, not a client story, but the numbers are built to be realistic for the trade.

Say you run an HVAC company spending $4,000 a month on ads. That spend produces 40 leads. Your close rate is 30%, so you book 12 jobs. Average job value is $600, so total revenue is $7,200. Your gross margin runs 45%, so gross profit is $3,240.

Run the formula: (3,240 − 4,000) / 4,000 × 100 = -19%.

Negative nineteen percent. On paper, that ad spend lost money in month one.

Before you panic or pull the plug, look at what happens next. Of those 12 customers, say 5 sign up for your maintenance plan. Over the following year, those 5 customers generate an average of $700 each in additional revenue (the plan fee plus one repair visit), still at 45% margin. That’s $3,500 in additional revenue, $1,575 in additional gross profit.

Add that to the first-job gross profit: $3,240 + $1,575 = $4,815 in total gross profit against the original $4,000 spend. Run the formula again: (4,815 − 4,000) / 4,000 × 100 = roughly 20%.

The month-one number and the year-one number are both true. They’re just answering different questions. If you only ever look at first-job ROI, you’ll kill channels that are actually working, because you’re closing the book before the second chapter.

This is exactly where recurring-revenue trades and one-shot trades split apart. A pest control company running a quarterly service program has this exact math built in: thin or negative on the first visit, decisively positive by the third quarter as the program renews. A roofing company doesn’t get that second chapter, at least not on the same timeline. Most homeowners don’t need a second roof for twenty years. If you’re in a one-shot trade, your marketing ROI has to clear the bar on the first job, because there’s no maintenance-plan revenue coming behind it to bail out a thin number.

What “Good” Marketing ROI Actually Looks Like

You’ll see a 5:1 revenue-to-marketing-spend ratio cited constantly as the benchmark for “good” marketing ROI. It’s a commonly cited rule of thumb, not a Kodiak standard and not a number we’re claiming you’ll hit. It’s also incomplete on its own, for the same reason the revenue trap above is incomplete: it says nothing about your margin.

Run 5:1 through two different margin structures and watch it change meaning. At a 50% gross margin, $5 of revenue for every $1 spent means $2.50 in gross profit per dollar spent: (2.50 − 1) / 1 × 100 = 150% ROI. Healthy, by any read.

At a 25% gross margin, that same 5:1 ratio means $1.25 in gross profit per dollar spent: (1.25 − 1) / 1 × 100 = 25% ROI. Still positive. Also thin, and one bad month of ad-cost inflation or lead-quality dip away from break-even.

Same ratio, two very different answers. Your number is only meaningfully compared to your own margin structure, not to a benchmark chart built for a business with different economics than yours. A thin first-job ROI is fine, sometimes expected, in a recurring-revenue trade where the second and third year make it up. That same thin number in a one-shot trade is a real problem, because there’s no second year of revenue coming to rescue it.

The One Prerequisite This Math Needs

None of this works if the inputs are guesses.

If your calls aren’t tracked by source, “leads by channel” isn’t a number, it’s a hunch, and every number that follows in this calculation inherits that uncertainty. The honest move, if you’re not there yet, is to round down at every step rather than assume your best month is your typical month. A conservative ROI estimate you can trust beats an optimistic one you can’t. Getting the tracking itself built out is a bigger project than this piece can cover. If you want the full channel-by-channel check, that’s what our mid-year marketing audit walks through. This piece is about the calculation. That one is about whether each channel deserves to keep its budget.

One more place to check job value specifically: if you’re seeing plenty of leads but the jobs closing from them are smaller than they used to be, that’s a lead-quality problem sitting inside your job-value input, and it’s worth reading on its own. We covered that pattern in the summer lead-quality problem.

Twenty Minutes, Four Numbers

The formula isn’t complicated. Gross profit minus marketing cost, divided by marketing cost, times 100. The discipline is in getting honest inputs: leads by source, close rate, real job value, real margin, and the willingness to round down instead of up when you’re not sure.

Do that math once, even roughly, and you’ll know more about your marketing than most home service owners ever bother to find out. The gut-feel version of this number has been running your budget decisions for a while. The real one is worth twenty minutes.

Run Your Own Numbers

If you’d rather not build the spreadsheet yourself, the ROI calculator on our homepage runs this exact math with your numbers instead of the hypothetical ones above. Plug in your leads, close rate, job value, and margin, and see where you actually land.

If you’re past the “what’s my number” stage and into “what should I actually be spending,” our plans lay out what a marketing system built around your business and your margins looks like.


More Articles