The 4-Metric ROAS Equation: Diagnose Any Meta Performance Drop in 60 Seconds

"We didn't change anything and performance just dropped." I get some version of that line on a call most weeks. It's almost never true, and the four metrics under your ROAS will tell you exactly what moved, usually in under a minute.
The trouble is most people stare at ROAS itself and try to fix it directly. You can't. ROAS is an output. It's a number Meta hands back to you at the end. It is not a dial you can turn.
So when it drops, "improve ROAS" is not a plan. The actual question is which of the four inputs underneath it shifted, and what that points you to do first. Once you can read those four, a scary-looking ROAS drop becomes a 60-second diagnosis instead of a week of guessing.
ROAS is a relationship between four numbers
Here's the thing nobody quite spells out. ROAS doesn't get magically spat out by Facebook. It's purely the product of four metrics you already have in the account:
- CPM - what you pay per 1,000 impressions. Your cost of being seen.
- CTR - your click rate. The share of people who actually click.
- CVR - your conversion rate. The share of clickers who buy.
- AOV - your average order value. What each buyer spends.
Three of those push ROAS up (CTR, CVR, AOV). One pushes it down (CPM). That's the whole machine. Put differently:
ROAS = (CTR x CVR x AOV) / CPM
Walk it through and you'll see why. Your impressions times CTR gives clicks. Clicks times CVR gives purchases. Purchases times AOV gives revenue. Spend is just impressions times your CPM. The impressions cancel out, and you're left with those four levers deciding everything.
Let me make it concrete. Say you're running a CPM of around A$18, a 1.2% click rate, a 3% conversion rate and a A$75 AOV. Plug those in and you land on a 1.5 ROAS. Tidy.
Now the point of writing it this way: if ROAS slides from 1.5 to 1.2, it didn't "just happen". One of those four numbers moved, and the equation tells you which family of problems you're in before you've touched anything.
The 60-second decision tree
When a drop shows up, I don't open the creative or the targeting first. I pull up the four metrics for the bad period next to a good period and find the one that broke. Here's the order I check, and what each one means.
1. Did CPM jump?
Look at your cost per 1,000 first. If your CPM climbed from A$18 to around A$22.50 and nothing else moved, that alone drags a 1.5 ROAS down to about 1.2. That's the entire drop, right there.
A rising CPM usually means auction pressure, not a broken account. Seasonal competition (think the run-up to a major sale period), a narrowing audience, or rising frequency where you're hammering the same people too often. What I'd do first: check frequency and how broad you're going. Often the CPM fix is widening the audience or refreshing creative so the auction stops penalising you, not slashing budget in a panic.
2. Did CTR fall?
If CPM is steady, check the click rate. A slide from 1.2% to 0.9% pulls that same 1.5 ROAS down to roughly 1.13.
A falling CTR is nearly always a creative problem. Your ads have stopped stopping the scroll. This is fatigue, a stale hook, or creative that no longer matches who's being shown it. What I'd do first: this one's a creative brief, not a budget tweak. New hooks, new angles, fresh thumb-stoppers. Bid changes won't save a tired ad.
3. Did CVR fall?
CPM and CTR fine? Look at conversion rate. People are still clicking, they've just stopped buying once they land. Drop CVR from 3% to 2.4% and your 1.5 becomes about 1.2 again.
A CVR drop points past the ad, onto the page and the offer. A site issue, a price change, an out-of-stock hero product, a checkout problem, or traffic that clicks but was never well qualified. What I'd do first: open the landing page and the checkout yourself before blaming Meta. The fix usually lives on your own site.
4. Did AOV slip?
If the first three held, check basket size. AOV sliding from A$75 to A$63 quietly takes a 1.5 ROAS down to about 1.26.
This is normally a mix shift. A discount pushing cheaper items, a bundle that stopped converting, or a promo that dropped the average order. What I'd do first: look at what's actually selling and whether a recent offer changed the basket. Sometimes it's deliberate and fine. Sometimes you've discounted your way into a worse ROAS without noticing.
That's the whole tree. One pass down those four and you've gone from "performance dropped" to "CTR fell 25%, it's a creative problem, I'm briefing new hooks today." Same data everyone has. The decomposition is what turns it into a decision.
One thing worth holding in your head: these four are connected, not independent. Lift your click rate and your CPM often falls with it, because Meta reads the higher engagement as relevance and rewards you in the auction. So the highest-impact move when several look soft is usually to fix the click rate first. A better hook quietly drags CPM and CPC down at the same time.
The trap hiding inside a winning campaign
Here's where the simple version of ROAS lies to you, and it's the most expensive mistake I see.
There's a difference between your average ROAS and your marginal ROAS, and that gap can hide a terrible return inside a campaign you think is winning.
Picture your hero campaign spending A$10k a day at a 3.0 ROAS. Beautiful. So you do what every media buyer is taught to do: feed it. Push the budget up 20%.
But efficiency scales inversely with spend. That extra A$2k will not come back at 3.0. The algorithm already grabbed the cheapest, most qualified buyers with the first A$10k. To spend more, it reaches further up the funnel to pricier, colder people. Your average ROAS still reads fine, maybe it only dips to 2.8, so you feel safe. But the marginal return on those new dollars might be closer to 1.5. You're buying the next slice of revenue at a genuinely bad rate while the blended number reassures you.
Now look at the testing campaign you've been ignoring. It's sitting at A$300 a day and a 2.5 ROAS. On average it looks worse than your hero. But because it's spending so little, the next A$200 you add to it can still come back near 2.5. So you've got a choice: pour the next A$200 into the hero and buy revenue at roughly 1.5, or put it in the smaller campaign and buy it at 2.5.
Pretty obvious when you frame it that way. The blended ROAS column on your dashboard never shows it.
This is why I think of an ad account as a portfolio, not a leaderboard. The job isn't to find the highest-ROAS campaign and ram budget into it until it breaks. It's to move money toward where the next dollar earns the most. Harvest budget from the big spenders sliding past their best, and feed it to the small winners that still have room. And one warning: when an old hero finally fades, don't switch it off. A campaign that's spent six figures holds a lot of learning. Scale it down to a maintenance budget instead of killing it, and the efficiency often recovers on its own.
Make it visible: the colour-coded sheet
None of this works if you only look once a quarter. The brands that catch a drop on day two, not day twenty, are tracking these four every few days.
What we run across client accounts is a plain colour-coded sheet. Spend, impressions, clicks, CVR, AOV, CPM and ROAS, pulled daily, week against week, with conditional formatting so a metric that's moved the wrong way lights up. The colour is the point. When CPM goes red and CTR goes green in the same week, you can see at a glance that you're paying more per impression but the better click rate is covering it, so ROAS holds. You spot the cause without doing any mental arithmetic.
The reporting writes itself too. Instead of "ROAS is down, we're looking into it," you can say "CPM rose with the sale-period competition, but our click rate climbed more, so we're net ahead." That's the difference between guessing and knowing.
If you take one thing from this: stop trying to fix ROAS. Pull the four numbers, find the one that moved, and you'll know what to do before you've finished your coffee. Try it on your own account this week, run a bad week next to a good one, and reply and tell me which lever turned out to be the culprit. I'd put money on it being CTR more often than you'd expect.
.webp)





