Scaling without killing it: why average ROAS can’t answer “spend more?”
“Can I safely spend more on this?”
A campaign at ROAS 3.0 tells you the average of every krone spent so far. It says nothing about the next one. Returns fall as spend rises — you exhaust the cheapest, most interested audience first — so the only number that answers “spend more?” is what the last increment earned.
Average versus marginal
Δ revenue ÷ Δ spend, between two spend levels
Spend went from DKK 10,000 to DKK 14,000/day. Revenue went from DKK 30,000 to DKK 36,400. Marginal ROAS = 6,400 ÷ 4,000 = 1.6, while average ROAS still reads 2.6.
In that example the account looks healthy and the increment is close to the edge. At a 62% margin, break-even is 1.61 — so the last DKK 4,000 per day earned essentially nothing. Average ROAS would have encouraged you to keep going.
The average stays comfortably above break-even the whole way. The marginal return — what the next krone actually earns — crosses below it long before the account looks like it is in trouble.
Running the test properly
- 1Change one thing. Raise budget on a single campaign, leave the rest of the account alone.
- 2As a rule of thumb, move in increments of 20–30%. Smaller tends to be lost in noise; larger can reset the learning phase, so you measure the reset instead of the increase. There is no universal threshold — it depends on the account.
- 3Wait for a full conversion cycle plus the learning phase. For most stores that is 7–14 days, not 3.
- 4Compare like periods. Same days of the week, no payday, no campaign, no holiday in one side and not the other.
- 5Compute marginal ROAS on the increment, then compare it against break-even — not against your average.
Reading the result
| Marginal ROAS vs break-even | Interpretation | Next move |
|---|---|---|
| Well above | You are under-spending. The audience is not saturated. | Increase again by the same increment and re-measure. |
| Slightly above | You are near the efficient frontier. | Hold. Look for new audiences or creative rather than more budget. |
| At or below | The increment paid for itself and nothing more. | Roll back to the previous level. The extra spend is buying volume, not profit. |
| Negative revenue change | Either noise or a genuine delivery problem. | Re-run once before concluding. Two consistent results, not one. |
The saturation curve
Plot marginal ROAS against spend level over several tests and you get the shape that actually governs the channel: high and flat at low spend, bending down as you exhaust the responsive audience, crossing break-even at a point that is specific to your business. That crossing point is your ceiling for this campaign, this creative, this audience — and it moves when any of those change.
In short
- ✓Average ROAS describes the past; marginal ROAS answers the decision.
- ✓Move in 20–30% increments and wait a full cycle plus learning phase.
- ✓Compare the increment to break-even, never to the account average.
- ✓Every winner has a ceiling. Saturation is measurable before it is painful.
Where this method runs out
Everything above works in a spreadsheet. Keeping it current, and matching every order back to the ad that actually caused it, is the part that does not. That is what Kepra does — and the demo runs on sample data with no signup, so you can judge it before believing any of this.
Open the demo →Read next
Creative testing that proves something
Most creative tests are decided by noise. Here is how to size a test properly, what to change, why platform A/B tools flatter their own winners, and how to judge a creative on profit rather than clicks.
Incrementality tests you can actually run as a small business
Most incrementality advice assumes an enterprise budget. Here are three designs that work at SMB scale, what each can and cannot prove, and how to avoid fooling yourself.