Your ROAS is lying to you, and it is costing you margin

Platform-reported ROAS counts revenue that comes back, ignores discount dependency and cannot see the customers who would have bought anyway. Here is how to rebuild the number around contribution margin — and what changes in the account once you do.

The short answer

Platform-reported ROAS counts gross revenue, so it ignores returns, fees, discounts and shipping — a 4x ROAS can be unprofitable. Optimise contribution margin instead: revenue minus all variable costs, per order. Once the target is profit per order rather than a ratio, budget moves to the campaigns that actually pay for themselves.

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.