Ads, CAC & marketing profit

Why ROAS Doesn't Equal Profitability

ROAS measures revenue returned per unit of ad spend. It says nothing about the cost of producing that revenue, so two campaigns at an identical 3x ROAS can sit either side of break-even. Your break-even ROAS is one divided by your contribution margin rate, which means it changes whenever discounting, shipping or product mix moves.

Atul Tirkey, Co-founder, NetNet

Written by Atul Tirkey · Co-founder, NetNet

Updated September 6, 2026 · 4 min read

ROAS is the most-quoted number in ecommerce advertising and one of the least decisive. It is not wrong, and it is not useless. It simply answers a narrower question than the one it gets used for.

The question it answers is: how much revenue came back per unit of spend. The question everyone actually wants answered is: did we make money. Those coincide only when margin is constant, and margin is never constant.

What ROAS measures

ROAS divides attributed revenue by advertising cost. A campaign that spent $10,000 and produced $30,000 of attributed revenue has a ROAS of 3.0.

Two things are missing from that ratio, and both are large.

The first is the cost of producing the revenue. Of that $30,000, some went to suppliers, some to carriers, some to a payment gateway. What remains is contribution margin, and only contribution margin can pay for the advertising.

The second is whether the revenue was really caused by the ads. Platform-attributed revenue includes purchases that would have happened anyway, and each platform counts independently inside its own windows.

ROAS is therefore a ratio of an overstated numerator to an understated denominator, compared against a threshold nobody has calculated.

The break-even ROAS calculation

The threshold is straightforward, and most stores have never worked it out.

Break-even ROAS = 1 ÷ contribution margin rate

At a 50% contribution margin, every revenue dollar leaves 50 cents to pay for advertising, so you break even at 2.0x. At 40%, break-even is 2.5x. At 30%, it is 3.3x. At 25%, 4.0x.

That single line reframes most ROAS conversations. A 3.0x ROAS is comfortable at a 45% margin and loss-making at a 28% margin. Neither the platform nor the ad account knows which situation you are in, because neither knows what your products cost or what you paid to ship them.

The number to write on the wall is not a ROAS target. It is your contribution margin rate, from which the ROAS target follows.

Why the same ROAS means different things

Contribution margin rate is not a constant, which means break-even ROAS moves under your feet:

  • Discount depth. A code running on a campaign lowers margin on every order it touches, raising the ROAS you need.
  • Product mix. Campaigns sell different things. One pushing accessories and one pushing a heavy bundled kit will have materially different margins at identical ROAS.
  • Shipping. A free-delivery threshold turns a revenue line into a cost line, and it does so disproportionately on lower-value orders.
  • Payment mix. Cash on delivery, international cards and alternative methods carry different fees and different failure rates.

A store can hold ROAS perfectly steady all quarter while its break-even ROAS climbs past it. Everything in the ad account looks unchanged; the business quietly moves from profitable to not.

Blended versus platform-reported

There are two ways to divide revenue by spend and they disagree, usually by a lot.

Platform-reported takes each platform’s claimed conversions. Because platforms attribute independently and generously, summing them overstates real revenue — sometimes substantially.

Blended takes total store revenue and divides by total advertising spend. It cannot be gamed by attribution windows, and it includes organic and returning-customer revenue that advertising did not buy, so it flatters spend efficiency instead.

Neither is correct alone. Blended is the better number for deciding whether total spend is sustainable, because it reconciles to real money. Platform figures are better for relative decisions inside a channel — which creative, which audience — where the attribution bias is at least consistent.

The retention argument, used honestly

The standard defence of a below-break-even ROAS is that customers come back, so the first order does not have to pay for itself.

This is sometimes true and frequently invoked without evidence. The difference matters, because it is the single most common way a store talks itself into sustained unprofitable spending.

Using it honestly requires three things. A measured repeat rate, taken from your own cohort data rather than a category benchmark — what proportion of customers acquired in a given month bought again within ninety days. A measured second-order margin, which is usually better than the first because there is no acquisition cost, but sometimes worse because repeat buyers use loyalty discounts. A payback period you have actually committed to, stated in months, with the cash to fund the gap in the meantime.

With those three, accepting a 2.0x ROAS against a 2.5x break-even is a financing decision. Without them it is a hope, and the tell is that nobody can say what repeat rate the plan depends on.

The test to apply: if the repeat rate came in ten points below assumption, would anyone notice, and when?

What to optimise instead

Two changes remove most of the ambiguity.

Compare contribution margin per order against acquisition cost per order. Both are denominated in currency, both come from the same order data, and the comparison needs no attribution model to interpret. If margin per order is $45 and a customer costs $38, the order works.

Track profit after advertising as a period figure. Contribution margin for the period, minus total advertising spend including agency fees. It reconciles to actual money, it cannot be inflated by overlapping windows, and it is the number that determines whether a good month was earned or bought.

ROAS keeps its place as a within-channel diagnostic. What it should stop being is the number that decides whether to scale.

Two campaigns, one ROAS, opposite outcomes

Both campaigns returned three dollars of revenue for every dollar spent. Only one of them made the business any money.

Two campaigns, one ROAS, opposite outcomes
Line Amount
Campaign A revenue $10,000 spend, 3.0x ROAS $30,000
Campaign A contribution margin 45% — full-price bestsellers $13,500
Campaign A ad spend $10,000
Campaign A profit after ads $3,500
Campaign B revenue $10,000 spend, 3.0x ROAS $30,000
Campaign B contribution margin 28% — discounted, heavier products $8,400
Campaign B ad spend $10,000
Campaign B profit after ads −$1,600

Identical ROAS, a $5,100 swing in outcome. Campaign A needed a 2.2x return to break even and cleared it comfortably. Campaign B needed 3.6x and fell short. Nothing in the ROAS figure itself could have distinguished them.

Where the numbers come from

Every figure above traces to a specific field in a specific system. These are the ones that matter, and where each one goes wrong.

Data sources and their caveats
Figure Source Where it breaks
Campaign revenue Ad platform conversion reporting Platforms count conversions inside their own attribution windows, which overlap and double-count across channels.
Contribution margin by campaign Orders attributed to the campaign, costed individually Requires order-level cost data, since campaigns sell different product mixes at different margins.
Ad spend Platform billing, plus agency fees and tax on ad invoices Platform-reported spend excludes both, understating true cost by the agency percentage.

What this does not tell you

  • This comparison treats each campaign as though it stands alone. In practice channels assist each other, and a campaign that looks unprofitable in isolation may be initiating purchases that close elsewhere.
  • It also ignores repeat purchases entirely. A campaign acquiring customers with strong retention can justify a first-order loss, which no single-order calculation will ever show as acceptable.

Frequently asked questions

What is a good ROAS?

There is no universal figure, because the threshold is set by your own margin. Break-even ROAS is one divided by your contribution margin rate: a 50% margin breaks even at 2.0x, a 30% margin needs 3.3x. A "good" ROAS is simply one comfortably above your own line.

How do I calculate break-even ROAS?

Divide one by your contribution margin rate expressed as a decimal. At 40% contribution margin, break-even ROAS is 1 ÷ 0.4, or 2.5x. Below that the campaign loses money no matter how healthy the ROAS looks in the platform.

What is POAS?

Profit on ad spend — profit generated per unit of advertising, rather than revenue. It answers the question ROAS is usually being asked to answer, and unlike ROAS it does not need a separate margin figure to interpret.

Why does platform ROAS differ from what I see in Shopify?

Platforms attribute conversions using their own click and view windows, and each one claims credit independently. Summing them typically produces more revenue than the store actually took, which inflates every ROAS figure derived from it.

Keep reading — Ads, CAC & marketing profit

All profit guides

Scale profitably.

Know what every order made you.

Install Free on Shopify