How to measure marketing ROI
How to measure marketing ROI in a small business: the simple formula, the problems that make it tricky, and a practical routine to tell if your marketing pays off.

To measure marketing ROI, take the gross profit from customers your marketing brought in, subtract what the marketing cost, and divide the result by the marketing cost. If $4,000 of marketing in a quarter brought customers who generated $12,000 in gross profit, your ROI is ($12,000 − $4,000) ÷ $4,000 = 2, or 200 percent. Above zero, the marketing paid for itself; below zero, it lost money.
The formula is easy. Making the inputs reliable is the real work: knowing which customers came from marketing, counting phone calls, dealing with customers who take months to decide, and accounting for customers who come back. Below is how to handle each, and a simple routine to tell, month by month, whether your marketing is paying off.
The formula, and why profit beats revenue
Marketing ROI = (gross profit from marketing − marketing cost) ÷ marketing cost
Many people calculate ROI on revenue, which makes results look better than they are. If a $10,000 job has $6,000 in materials and labour, only $4,000 is available to pay for marketing. Use gross profit whenever you can. If you only have revenue, at least compare it with a break-even point that reflects your margins.
Marketing cost includes ad spend, management fees, creative, software used for marketing, and any staff time dedicated to it.
A related number, return on ad spend (ROAS), divides revenue by ad spend only. It is useful for comparing campaigns, especially in online stores, but it is not the same as ROI. My article on ROAS covers it in depth.
Problem 1: Knowing which customers came from marketing
ROI is only as good as your attribution: the link between a customer and the channel that brought them.
- Track online conversions: form submissions, bookings and purchases in GA4 and your ad platforms.
- Track phone calls: for many local businesses, most enquiries are calls. Call tracking assigns a number to each channel, so you know which ad or page made the phone ring. My article on call tracking explains how it works.
- Tag your links: UTM parameters on links in emails, social posts and ads.
- Ask every customer: "How did you hear about us?" Record the answer in your CRM or spreadsheet. It catches what software misses, like a customer who saw your ad, then searched your name a week later.
None of these is perfect alone. Together they give a reliable enough picture to make decisions.
Problem 2: Long sales cycles
For renovations, real estate, B2B services or expensive treatments, the customer may click an ad in March and sign in June. If you measure ROI month by month, March looks like a loss and June like a miracle.
Solution: measure over a longer window, a quarter or more, and connect each customer back to the month they first enquired. A CRM makes this much easier, because each lead keeps its source and date until it becomes a customer.
Problem 3: Repeat customers
A dental clinic's ad may bring a patient who pays $200 at the first visit and $3,000 over the next five years. If you only count the first visit, the ad looks unprofitable.
Solution: for businesses with repeat customers, use an estimate of customer lifetime value instead of the first sale. Be conservative, and recheck the estimate every six months.
Problem 4: Channels that work together
A customer may see your Instagram ad, later search your name on Google, read reviews on your Google Business Profile and then call. Which channel gets the credit?
Solution: do not overthink it at the small-business level. Look at channels together and separately. If you turn off a channel and enquiries drop noticeably elsewhere, it was contributing more than its own numbers showed. Test changes one at a time and watch the totals.
A four-step monthly check
You do not need complex software. Once a month:
- Count enquiries by source from your tracking, call logs and CRM.
- Count new customers by source and the gross profit they brought, or their estimated lifetime value.
- Add up marketing costs by channel: ads, fees, tools.
- Calculate ROI per channel and for marketing as a whole, and compare with previous months.
| Channel | Cost | New customers | Gross profit | ROI |
|---|---|---|---|---|
| Google Ads | $1,750 | 9 | $5,400 | 209% |
| Meta ads | $1,200 | 4 | $1,600 | 33% |
| SEO | $1,000 | 5 | $3,000 | 200% |
These numbers are illustrative. In this example, Meta ads are profitable but much less than the other two channels. The next step would be to look at why: targeting, the offer, the landing page, or perhaps customers from Meta have higher lifetime value that the table does not show.
What to do with the result
- ROI clearly positive and stable: consider increasing the budget gradually, watching whether ROI holds.
- ROI positive but falling: look for rising costs per lead or weaker conversion before it turns negative.
- ROI negative after a fair test: change the offer, page or targeting before giving up on the channel, then decide.
- ROI unknown: fix tracking first. Spending more without measurement is the most expensive option of all.
A common mistake is to expect every channel to show a high ROI from month one. SEO takes months to build, and new ad campaigns need time to learn. Agree on a fair testing period before judging.
Do not forget the costs you do not see
Some marketing costs never appear on an invoice. The hours you spend answering messages from a Facebook group, the evenings writing posts, the lower price you agreed to win a hesitant customer: all of them belong in the calculation. Equally, some returns are easy to miss, like the referral a marketing-sourced customer sent you six months later. You do not need to capture everything perfectly, but a rough estimate of both sides gives a far more honest ROI than ad spend alone.
Make it visible every month
The easiest way to keep track is a monthly report built around these numbers, not around clicks and impressions. If your current reports do not show leads, customers and profit by channel, ask for them. When I manage marketing, monthly reporting shows exactly that, and the setup of GA4, Tag Manager and pixels ($650) is usually the first step. For the broader set of numbers to watch, see the 7 marketing numbers to check monthly.
Let’s talk
about your business
Before the call I review your website and ads. After the call you get an action plan and a price range in writing.
Marketing ROI:
questions
What is a good marketing ROI for a small business?
Anything clearly above zero, measured on gross profit, means marketing pays for itself. Beyond that, a good ROI depends on your margins, cash flow and growth goals. A business growing fast may accept a lower ROI to win market share, while one focused on profit may want more. Compare channels against each other and against your own history rather than a universal benchmark.
How do I measure ROI from Google Business Profile or SEO?
Track calls and website clicks from your Google profile, track organic conversions in GA4, and ask customers how they found you. Then compare the gross profit from those customers with what you spend on SEO and the time you invest in the profile. Expect SEO ROI to start low and improve over months, as rankings and traffic build.
Is it possible to measure marketing ROI without a CRM?
Yes, with a disciplined spreadsheet. Record every enquiry with date, source and whether it became a customer, plus the job value. It takes a few minutes a day. A CRM becomes worth it when enquiries grow, several people handle them, or long sales cycles make it hard to connect a customer to their first contact.
Want to know what
your marketing returns?
Tell me which channels you run and how you count enquiries now. I'll reply within one business day with what to set up so the ROI is visible.
