What ROAS measures, and what it does not
ROAS is revenue divided by ad spend, measured inside the ad platform, using the platform’s own attribution window and counting gross revenue at the moment of purchase. It is a speedometer, not a bank balance.
It cannot see a return that arrives nine days later, a discount code that costs 25% of margin, a payment processing fee, a shipping subsidy, or the customer who would have bought anyway and is now being counted as an ad conversion.
The number to replace it with
Contribution margin per order is revenue minus every variable cost attached to that order: ad spend, cost of goods, payment fees, fulfilment, returns provision and any discount. Divide by order value and you have a percentage you can compare across channels and across creative.
Set the threshold once and write it down. In most of the accounts we take over, the profitable threshold is materially higher than the ROAS target the previous team was optimising against — which is the entire problem, stated in one line.
- Pull gross revenue, returns and fees from the store, not the ad platform.
- Build the margin figure per order, per channel, per creative.
- Set one written threshold, then let it decide every scale and kill call.
What changes in the account
Usually less than people expect, and faster. Campaigns that were scaling on ROAS alone come down; retargeting stops taking credit for demand that organic and email created; the permanent discount code gets retired because it is now visible as a margin line rather than a conversion-rate win.
The creative brief changes too. When profit per order is the target, the winning angle is often the one that sells on product rather than price, even if it has a lower click-through rate.
