Marginal ROAS: Finding a Channel's Saturation Point
The dollar that broke my brain was the sixty-thousandth one, spent on a paid-social account that was still reporting a 1.9x ROAS. On paper, healthy. Above breakeven. The kind of number you drop into a board deck without a second thought. Except when I stepped through the spend week by week, that last block of budget had returned about twenty cents on the dollar. The channel was drowning and the average was smiling.
That gap is the whole point of this piece. Average ROAS tells you the channel worked. Marginal ROAS tells you whether the next dollar will. You scale a budget on the second number, not the first, and most teams do it backwards. If you only ever look at the blended average, you can pour money into a saturated channel for months and the dashboard will keep patting you on the back.
Average and marginal are not the same measurement
Average ROAS is total revenue divided by total spend across everything you put in. Marginal ROAS is the return on the last increment of spend, the next $5k, the next $10k, whatever step you plan to add. Mutt Data put it about as cleanly as anyone in their 2025 write-up: average tells you how the channel performs overall, marginal tells you whether it's worth spending more.
Here's why the two diverge. Ad channels don't return a flat rate. The first slice of budget hits your cheapest, highest-intent audience. The next slice reaches out to people a little less ready to buy, at a slightly higher cost. Keep going and you're paying premium prices to nudge people who were never really in the market. Economists have called this the law of diminishing returns since before any of us had a UTM parameter to argue about. The curve bends. Your average, being an average, lags behind the bend and stays optimistic long after the margin has gone sour.
This isn't a fringe problem. A Taboola study from April 2025, surveying more than 300 US advertisers, found that nearly 75% of performance marketers are already seeing diminishing returns on their social ad spend, and most of them said it affects north of 30% of their budget. Over half are expanding into new channels to cope. So if your paid social feels like it used to convert harder for less, you're not imagining it, and you're not alone.
The saturation curve, minus the jargon
Picture spend on the horizontal axis and revenue on the vertical. Plot the relationship and you get an S-ish curve that rises fast, then flattens. Media-mix folks call the flattening a saturation curve, and Measured has a good explainer on how those curves turn into actual budget moves rather than pretty charts.
I find it easier to think in three zones than to stare at a curve:
- Efficient zone. Early spend. Marginal returns are strong and still pulling your blended average up. Every dollar is clearly buying growth.
- Contribution zone. Your average ROAS has peaked and started to slip, but the next dollar is still profitable. You're making money at the margin, just less of it per dollar than before.
- Saturated zone. The curve's gone flat. The next sale costs more than it's worth. Your average can still look fine here, which is exactly the trap.
The mistake I made with that paid-social account was reading the blended average and assuming I was in the contribution zone. I was well into the saturated zone. Google's measurement team frames the same idea for CMOs in their saturation-curve piece: past a point, more spend stops capturing new demand and just re-buys demand you already had.
Napkin math: watching the next dollar go negative
Let me show you the thing that finally made this click, using deliberately round numbers so the arithmetic stays honest. Say you're scaling a channel in $10k/week steps and tracking revenue at each level.
| Weekly spend | Total revenue | Average ROAS | Revenue from the last $10k | Marginal ROAS |
|---|---|---|---|---|
| $10k | $40k | 4.0x | $40k | 4.0x |
| $20k | $70k | 3.5x | $30k | 3.0x |
| $30k | $92k | 3.1x | $22k | 2.2x |
| $40k | $105k | 2.6x | $13k | 1.3x |
| $50k | $112k | 2.2x | $7k | 0.7x |
| $60k | $114k | 1.9x | $2k | 0.2x |
Look at the two right-hand columns against the average. At $60k a week the average still reads 1.9x, a number plenty of teams would call a win. But the jump from $50k to $60k bought you $2k of extra revenue for $10k of extra spend. That's 0.2x at the margin. You lit eight thousand dollars on fire to make the average column look slightly less good than it did the week before.
The average is a rear-view mirror. It's blended with all your cheap early spend, so it stays high while the front edge of your budget is already underwater. Decide on the last column, always.
Where's breakeven, actually
A marginal ROAS of 1.0x is not your breakeven. That's the second half of the trap. ROAS is revenue, and revenue isn't profit. If your contribution margin is 50%, then every dollar of revenue only leaves you fifty cents to cover the ad cost, so you need a marginal ROAS of 2.0x just to wash your face on that last increment.
The formula is boring and worth taping to your monitor:
Breakeven marginal ROAS = 1 / contribution margin
Run a few:
| Contribution margin | Breakeven marginal ROAS |
|---|---|
| 30% | 3.3x |
| 40% | 2.5x |
| 50% | 2.0x |
| 60% | 1.7x |
| 70% | 1.4x |
So the sixty-cent-margin business in that first table hits its real ceiling much earlier than the 1.0x line suggests. At 50% margin, the moment marginal ROAS slips under 2.0x, the next dollar is losing money even though the campaign manager's dashboard is still green. I've watched a smart team defend a channel for a full quarter because "it's above 1x," never once dividing by their margin. Don't be that team. I was that team.
The scale / hold / cut rule
Once you've got marginal ROAS per channel and your breakeven number, the decision almost makes itself. Here's the rule I actually use:
| Situation | Move |
|---|---|
| Marginal ROAS comfortably above breakeven (say, 1.3x of breakeven or more) | Scale. Add budget in steps and re-measure. There's headroom. |
| Marginal ROAS hovering around breakeven | Hold. You're at the efficient frontier for this channel. Adding spend just trades profit for volume you don't want. |
| Marginal ROAS below breakeven | Cut. Pull the last increment out and redeploy it. You're subsidizing sales you'd have gotten cheaper elsewhere, or not made at all. |
The reason this matters beyond one channel: every channel has its own curve, and they saturate at different points. Paid search might tap out at $30k a week while a newer channel keeps returning well past $80k. The efficient move isn't "spend more on the winner." It's to shift the marginal dollar to wherever it earns the most, and keep shifting until the marginal ROAS across your channels roughly equalizes. When the next dollar buys the same return everywhere, you've allocated well. That's the whole game, and it's why one bloated channel and three starved ones is such a common, expensive setup.
How to measure marginal ROAS without a data-science team
You do not need a full media-mix model to get useful marginal numbers. In rough order of effort:
Read it off your own spend history. If you've scaled a channel in steps, you already have the raw material. Line up weekly (or biweekly) spend against attributed revenue, compute the revenue delta for each spend delta, and you've got a crude marginal curve like the table above. It's noisy. Seasonality and promos will muddy it. But it's directionally honest and it costs you an afternoon.
Run a step change on purpose. Hold a channel's budget flat for a few weeks, then bump it 20–30% and hold again. The revenue difference between the two plateaus, divided by the spend difference, is a real marginal reading for that region of the curve. Do it in one direction at a time so you can actually read the result. And resist the urge to change creative, targeting, and budget all in the same week. I've ruined more than one of these reads by "just tweaking the audience while I was in there," and then I had no idea which lever moved the number. One variable at a time, boring as that sounds.
The other thing worth saying: a single marginal reading is a point, not a curve. If you want to know where the channel actually flattens rather than just whether the next step is worth it, you need a few readings at different spend levels. Three or four clean plateaus over a couple of months will sketch the shape well enough to plan around. That's still a fraction of the 24 to 36 months of history a full media-mix model wants before it'll trust its own saturation estimates.
Test incrementality when the stakes justify it. This is the honest upgrade, because attributed revenue overstates true lift, sometimes badly. Nine.am's breakdown of the last-click problem points out that a large chunk of retargeting conversions are non-incremental, buyers who were coming back anyway. A geo holdout or a PSA test measures the lift the channel actually caused, which is the number your marginal math should be built on. If you're making six-figure allocation calls, run the test. We cover the mechanics of designing one in incrementality testing for mobile UA.
A quick word on tools, since someone always asks. For tracking channel spend against return as you scale, the options split roughly three ways: dedicated media-mix platforms like Measured or Recast that model saturation curves directly, incrementality specialists like Haus that run the lift experiments, and product-analytics platforms such as Kixo that tie attribution and deep links to what users actually do in the product afterward. The trade-off is real: the MMM tools give you the cleanest curves but need long spend histories and modeling chops; the analytics platforms are faster to stand up and better at the post-click behavior, but they lean on attributed conversions unless you pair them with a proper lift test. Pick based on which weakness you can least afford. None of them will save you from ignoring the marginal column.
The mistakes I keep seeing (and made)
A few patterns show up again and again, and I've personally stepped on most of them.
Optimizing the blended account ROAS target. If you tell a buyer to hit 3x blended, they'll happily keep the average at 3x by piling more into the one saturated channel that's dragging everyone up, because it's easier than fixing the mix. The target rewards exactly the wrong behavior.
Comparing marginal ROAS to 1.0x instead of to margin-adjusted breakeven. Covered above, but it's worth repeating because it's the single most common way profitable-looking spend quietly loses money.
Trusting last-click for the marginal read. Your last increment of spend is precisely where incrementality gaps hurt most, because it's the spend most likely to be chasing people who'd have converted anyway. Marginal ROAS built on inflated attribution is marginal fiction.
Measuring too rarely. Curves move. Costs rise, audiences fatigue, a competitor enters the auction. The saturation point you found in Q1 is not the one you have in Q3. A marginal ROAS reading has a shelf life measured in weeks, not quarters.
If you want a single place to keep these numbers honest alongside CAC, payback, and margin, that's really a unit-economics job, and we've got a dashboard template built for exactly that.
The one-paragraph version
Stop scaling on average ROAS. Build the marginal column, the return on your next increment of spend, and compare it to 1 / contribution margin, not to 1.0x. Above breakeven with room, scale. At breakeven, hold. Below it, cut and move the dollar to wherever it earns more, until the next dollar returns the same everywhere. And when the decision is big enough, measure lift with a holdout instead of trusting attribution, because attribution is generous exactly where you're about to spend the most. The average will keep smiling while you do this. Don't let it.
A few questions I get
Isn't a high average ROAS still good? It's fine as a report card for spend you already made. It's useless for deciding the next dollar, because it's diluted by all your cheap early budget. Two different jobs.
How big should my spend steps be to read marginal ROAS? Big enough to move revenue above the noise, small enough that you can pull back without pain. In practice 15–30% of the channel's current budget, held long enough to see two clean plateaus.
What if I can't isolate revenue by channel? Then you can't trust channel-level marginal ROAS, and you should either fix your tracking or move to a geo/holdout design that measures lift without needing per-channel attribution. That's a feature of incrementality testing, not a bug.
Does this apply below, say, $20k/month? Same physics, less drama. At small budgets you're usually still in the efficient zone, so the average and the margin haven't diverged much yet. The discipline still helps, but the day it starts to matter is the day you decide to scale.