How to Measure Marketing ROI Without Fooling Yourself
Most marketing reports measure something real and then draw the wrong conclusion from it. The formulas are simple; the difficulty is knowing which number answers which question, and how much of the result your marketing actually caused.
The four numbers, and what each one answers
ROAS is revenue divided by ad spend. Spend 1,000 and generate 4,000 and your ROAS is 4, usually written 4:1. It answers "did this channel produce revenue?" and it ignores the cost of producing and delivering what you sold.
ROI is profit divided by total cost. Same campaign, but if that 4,000 in revenue carried 2,400 in cost of goods, your profit is 1,600 against 1,000 of spend, so ROI is 60 percent. A 4:1 ROAS can be a losing campaign on a thin margin, which is why reporting ROAS to a finance team invites trouble.
CAC is total sales and marketing cost divided by new customers acquired. It answers "what does one customer cost?" Include salaries and tooling, not just media, or you are measuring media efficiency and calling it customer cost.
LTV is the gross profit a customer generates over their lifetime. The ratio that matters is LTV to CAC. A widely used benchmark is 3:1, with anything below 1:1 meaning you lose money on every customer and anything far above 5:1 usually meaning you are underinvesting in growth.
Payback period is the number that decides whether you can scale
LTV to CAC tells you whether the business model works. Payback period tells you whether you can afford to grow, and it is routinely ignored.
If a customer costs 300 to acquire and returns 50 of gross profit a month, payback is six months. Until that point you have funded the acquisition out of cash. Double your spend and you double the cash gap before any of it returns. Plenty of businesses with healthy LTV to CAC ratios have run out of money scaling, because the ratio was fine and the payback was eighteen months.
The practical rule is that shorter payback buys you the option to grow faster. If two channels have similar ROI but one pays back in two months and the other in twelve, the fast one is worth more than the ratio suggests.
Model the numbers before you commit budget with our ROI Calculator and the Ad Spend Calculator.
Attribution is where the honesty problem lives
Every attribution model is a rule for assigning credit, and each one flatters a different channel. Last-click gives everything to the final touch, which systematically overvalues branded search and retargeting — both of which mostly capture demand that already existed. First-click overvalues top-of-funnel and ignores what closed the deal. Linear splits credit evenly, which is fair and assumes every touch mattered equally, which is never true.
Data-driven attribution is better than the rules-based models but it still only sees the touchpoints it can track. It cannot see the podcast someone heard, the colleague who recommended you, or the billboard. Those channels will always look worse than they are.
The uncomfortable conclusion is that attribution answers "which tracked touchpoints preceded this sale?" and not "what caused this sale?" Those are different questions and the gap between them is where budget gets misallocated.
Incrementality: the question attribution cannot answer
The real question is what would have happened if you had not run the campaign. A customer who would have bought anyway and happened to click a retargeting ad on the way is attributed revenue that your marketing did not create.
You test this by withholding. Geo holdout tests pause a channel in some regions and compare against matched control regions. Audience holdouts exclude a random percentage of your retargeting list and compare conversion. Both feel wrong to do and both routinely reveal that a channel reported as highly profitable was largely taking credit for sales that would have happened anyway.
Brand search is the classic case. It usually shows an extraordinary ROAS because the people clicking already intended to buy from you. Pausing it in a controlled test often shows most of that revenue simply arrives through the organic listing instead.
Build a measurement setup you can trust
Three things need to be right before any of the above is meaningful.
Consistent campaign tagging. Inconsistent UTM parameters are the most common cause of unusable analytics: "Facebook", "facebook" and "FB" become three separate sources. Agree a convention and generate links from a single tool rather than by hand.
Server-side or first-party measurement. Browser tracking prevention and consent choices mean a meaningful share of conversions are never recorded client-side. That loss is not evenly distributed, so it distorts channel comparison, not just totals.
One agreed source of truth for revenue. If marketing reports platform-reported conversions and finance reports invoiced revenue, the two will never reconcile and every discussion becomes about the discrepancy rather than the decision.
Key takeaways
- ROAS ignores cost of goods; a 4:1 ROAS can lose money on a thin margin. Report ROI to finance.
- LTV to CAC tells you if the model works; payback period tells you whether you can afford to scale.
- Every attribution model flatters a different channel. Last-click systematically overvalues brand search and retargeting.
- Attribution shows correlation with tracked touchpoints. Only holdout tests show causation.
- Fix UTM consistency before buying an attribution tool — most measurement problems are tagging problems.
Frequently asked questions
What is a good ROAS?
It depends entirely on your gross margin, so a single benchmark is meaningless. The break-even ROAS is one divided by your gross margin: at 25 percent margin you need 4:1 simply to avoid losing money, while at 80 percent margin you break even at 1.25:1. This is why comparing your ROAS to an industry average is unhelpful unless the margins match. Work out your own break-even figure first, then judge campaigns against that rather than against a number from a blog post.
What is the difference between ROI and ROAS?
ROAS divides revenue by ad spend and ignores every other cost. ROI divides profit by total cost, so it accounts for cost of goods, fulfilment, salaries and tooling. ROAS is useful for comparing campaigns against each other because it isolates media efficiency. ROI is what tells you whether the marketing made the business money. Reporting ROAS to a finance team as though it were a profit measure is one of the fastest ways to lose credibility, because a campaign with strong ROAS can be clearly unprofitable.
How do I calculate customer lifetime value?
The straightforward version is average order value multiplied by purchase frequency multiplied by customer lifespan, then multiplied by gross margin so you get profit rather than revenue. For subscriptions it is monthly recurring revenue times gross margin divided by monthly churn rate. Two cautions: use gross profit rather than revenue or you will dramatically overstate it, and be careful with young businesses where you have not yet observed a full customer lifespan and are extrapolating from very little data.
Which attribution model should I use?
For most businesses, data-driven attribution as a default, cross-checked against holdout tests for important decisions. Avoid last-click as your only model, because it consistently overvalues the bottom of the funnel and will push you to defund the channels creating demand. The more useful habit is to view several models side by side: if a channel looks strong under first-click and weak under last-click, it is generating demand rather than closing it, and that is a strategic fact rather than a measurement error.
What is an incrementality test?
It is an experiment that withholds marketing from a comparable group and measures the difference in outcomes, which is the only way to establish what your marketing actually caused. The common forms are geographic holdouts, where a channel is paused in matched regions, and audience holdouts, where a random share of a targeting list is excluded. It feels uncomfortable because you are deliberately not marketing to people, and it regularly reveals that a channel reported as highly profitable was mostly claiming credit for sales that would have happened regardless.
Why do my ad platform numbers not match my analytics?
Because they count differently, and neither is lying. Ad platforms use their own attribution windows and credit view-through conversions; analytics typically uses last non-direct click and sees only what tracking captured. Platforms also each claim the same conversion, so adding up conversions across Google, Meta and others will exceed your actual order count. The fix is not to reconcile them but to pick one source as the reporting truth, usually your own backend, and use platform numbers only for optimising within that platform.
How long should I run a campaign before judging it?
Long enough to collect a statistically meaningful number of conversions, and at least one full sales cycle. For low-consideration ecommerce that may be two weeks; for B2B with a three-month cycle, judging at four weeks tells you about lead volume and nothing about revenue. The most common error is killing a campaign during the learning phase, when platform algorithms are still exploring. As a rule, wait for at least fifty conversions per variant before drawing conclusions, and resist changing targeting mid-flight.
Should I include salaries in customer acquisition cost?
Yes, if you want CAC to mean what finance thinks it means. Fully loaded CAC includes media spend, agency fees, marketing and sales salaries, and tooling. Media-only CAC is a useful internal metric for comparing channel efficiency, but presenting it as the cost of acquiring a customer significantly understates reality and leads to overconfident scaling decisions. Track both, label them clearly, and make sure everyone in the discussion knows which one is on the slide.