
Every second conversation with a new client starts the same way. We open the ad account — ROAS 6.2. We open the P&L — margin flat, sometimes down. The owner looks at me as though I broke the maths. Nobody broke the maths. ROAS never promised to tell the truth about money.
Let us be honest about what it is: ROAS is an internal grade an ad platform awards itself. Meta counts its revenue, Google counts its own, TikTok counts its own. Each sees only the slice of the journey where it managed to touch the user, and each happily books the entire sale. Add three reports together and you get revenue that physically did not exist.
Three places where a dashboard claims credit it didn't earn
First — overlapping attribution windows. Someone sees an ad on Instagram, googles the brand by name two days later, clicks a branded search ad and buys. Meta counts the sale as view-through, Google counts it as last click. One purchase, two owners. The combined ROAS looks great; the bank has one payment.
Second — branded demand you pay for twice. When a performance campaign is working, branded search grows with it. Then the trick begins: branded search captures a person who is already warm, brought in by another channel, and reports ROAS of 15. Switch the branded campaign off for two weeks and it turns out 80% of those sales would have arrived anyway, organically. You were paying for what was already yours.
Third — optimising towards clicks that would have happened anyway. Algorithms are good at finding people ready to buy. That is their job. The problem is that some of those people would have bought without the ad, and the platform honestly books them because it technically made contact. This is not fraud — it is the design of the system. It optimises for what is easy to attribute, not for what brings new money.
One number that cannot lie
There is a metric that cannot be inflated inside an ad account, because it lives outside one. MER — Marketing Efficiency Ratio. Take all company revenue for a period and divide it by all marketing spend for the same period. That is it. No attribution, no windows, no arguments about whose lead it was.
MER will not tell you which creative worked. But it tells you the thing that matters: when you put more money into advertising, does the business grow overall, or are you simply moving organic sales into a paid pocket? We start every audit with MER, because it is the only number a finance director is willing to sign off on.
Nobody broke the maths. The dashboard and the bank count different things, and we read them as if they were one number.
Telling real contribution from claimed contribution
The real question is not "what is this channel's ROAS" but "what changes in the bank if I switch this channel off". That is called incrementality, and it is established by experiment rather than by a report.
The cheapest method is a geo-holdout. Split the market into two groups of regions, keep the campaign running in one and switch it off in the other, then compare revenue after three or four weeks. The difference is the channel's real contribution. The first time this happens it usually hurts: the channel everyone was proud of shows an increment well below its claimed ROAS. But it is after that test that marketing and finance finally start speaking the same language.
A good report is not one where every number is green. It is one that the person responsible for the money is willing to sign.
Take one month, add up the revenue reported across every ad account, and compare it with revenue in your accounting. If the ad-account total is higher, you already know the scale of the over-claiming.
Then compare increments rather than ROAS: how much revenue there was in periods without advertising and how much with it. That difference is the real contribution.
What to do about it
Three steps, in order of how quickly they pay off.
- Start reporting MER alongside ROAS. Not instead — alongside. ROAS stays useful for comparing creatives inside one platform; MER answers whether the business is growing
- Run one geo-holdout on the channel with the highest reported ROAS. That is usually where the over-claiming is largest, precisely because it captures warm demand
- Fix the data underneath. If up to 40% of conversions never reach analytics because of browser restrictions, both sides of every calculation are distorted. We covered how to recover that signal in the article on server-side tracking
We rebuild reporting so it is denominated in money — spend, leads, cost per lead, return — rather than impressions and clicks. If your dashboards and your accounts disagree, that gap is where we start.