Why your Google Ads reports look great but profit is flat
Two founders in the last month sent me monthly reports showing 6x ROAS. Both had flat contribution margin for the second year running. The reports were not wrong. They were just answering the wrong question.
A report can be accurate, well-designed, delivered on time, and completely useless. Most PPC reports are exactly that.
Here is why 6x ROAS can produce zero incremental profit, and what your report needs to show instead.
The mismatch: what ROAS measures vs what you sell
ROAS is revenue divided by ad spend. It has never claimed to be anything else. The problem is that the modern Google Ads account has been optimised, for a decade, to that one number. Everything downstream of it — Smart Bidding targets, PMax asset groups, budget pacing — is calibrated to lift revenue per pound of spend.
This works fine when every product in your catalogue has the same contribution margin. Which is never. Your fashion range is 22% CM3. Your accessories are 48%. Your sale rail is 8%. To Smart Bidding, all three are identical: a conversion is a conversion.
So the algorithm does exactly what it is asked. It buys the cheapest conversions. Cheapest conversions correlate with lowest price points, which correlate with lowest margins. Your ROAS stays at 6x because the maths still works at revenue level. Your CM3 stays flat because the mix shifted underneath the number.
The two-year drift nobody flags
This does not happen in a quarter. It happens over 18 to 24 months. In month 1, the account is balanced. By month 6, PMax has learned that discounted SKUs convert faster. By month 12, 40% of spend is on products contributing under 15% CM3. By month 24, the founder is asking why revenue is up 30% and profit is flat.
At no point does anything look broken. Every report is green. Every QBR shows ROAS holding. Every recommendation from the Google rep is "increase budget to capture more of what's working". Which is exactly what makes it worse.
Contribution margin per pound of paid spend, by SKU role, month over month.
Not ROAS. Not blended margin. Not revenue by campaign. This one chart shows whether the paid channel is buying growth or buying revenue that costs you money to fulfil.
Founders who see this chart for the first time typically discover 15-30% of paid spend is on SKU roles that should be capped or excluded. That is the leak. It is not in the ROAS number. It is in the mix under it.
What a commercial report actually contains
- 01CM3 after paid, by SKU role. Not ROAS. Not gross margin.
- 02Branded vs non-brand contribution, split. Branded conversions that would have happened anyway must not carry the report.
- 03New-customer vs returning-customer margin. If paid is only harvesting repeat buyers, your acquisition engine is broken and the ROAS is a lie.
- 04Mix drift: what percentage of spend went to each SKU role this month vs 3 and 12 months ago.
- 05Incrementality check: a rolling geo-holdout or brand-suppression test, at least quarterly.
The two questions to send your agency this week
- 1. "What was our contribution margin after paid spend, by SKU role, for the last 3 months?"
- 2. "What percentage of last quarter's PMax spend went to SKUs with CM3 below 20%?"
If either answer is a version of "we do not track that at product level" or "we would need to set that up", you have your answer. The report is not measuring the thing that matters, and the account is being optimised to a metric that stopped correlating with your P&L 18 months ago.
The report is the symptom, not the disease
Better reporting alone does not fix this. What fixes it is a bidding structure that knows your product-level economics, a feed that carries margin signals, and a target-setting process that starts with break-even ROAS by SKU role.
Reporting comes last. Get the operating model right and any decent reporting will show whether it is working. Get the operating model wrong and no report can save you.
FAQ
Why does ROAS look strong when profit is flat?
ROAS is a revenue-over-spend ratio. It ignores COGS, returns, shipping, and payment processing. Two accounts at 6x ROAS can have contribution margins of +£8k and -£3k in the same month depending on which SKUs Google decided to sell. The dashboard cannot tell them apart.
Isn't blended ROAS supposed to solve this?
No. Blended ROAS averages over your whole product catalogue. It hides the fact that Performance Max is disproportionately selling your lowest-margin SKUs (they convert easiest) while starving your higher-margin lines of budget. The blend looks steady while the mix silently erodes.
What is the single fastest way to see if this is happening?
Pull the last quarter's Shopping/PMax spend by product ID. Match each product to its contribution margin. If the top 20% of spend concentrates on the bottom 30% by margin, you have this problem. Most accounts we audit fail this test.
Is my agency lying to me?
Almost never. They are reporting on what Google shows them, which is revenue and ROAS. They are not looking at your P&L because they have never been asked to, and they do not have your COGS file. The failure is structural, not dishonest.
What should the report show instead?
Contribution margin after paid spend (CM3 - paid), broken down by SKU role (Scale/Profit/Protect/Gateway). New-customer vs returning-customer margin. Branded vs non-brand contribution. Any report that does not answer these questions cannot tell you if paid is making money.
Is this only a Performance Max problem?
PMax makes it worse because the algorithm has more freedom to pick winners, and its picks correlate with conversion ease, not margin. But the same problem existed in Shopping. Any bid strategy optimising to revenue targets rewards low-margin, high-volume SKUs.
Continue:
- • Grade your account in 3 minutes — 15 questions, top 3 leaks
- • The real cost of a bad PPC agency — a £600k worked example
- • Google Ads agency fees explained — what pricing model actually protects you
See the leaks in your own account
A profit audit quantifies each one in pounds. Free, capped at 4/month.
Book a profit audit →