How to calculate ROAS

Return on ad spend (ROAS) is the revenue your ads generated divided by what you spent on them. A ROAS of 3.0x means every $1 of ad spend brought back $3 of revenue. It tells you how efficiently ads turn into sales, but on its own it says nothing about profit.

The formula is:

ROAS = revenue from ads ÷ ad spend

  • Revenue from ads is the order revenue attributed to your campaigns for the period. Decide up front whether you're using the ad platform's attribution or your own.
  • Ad spend is what you paid the platforms for the same period and campaigns.

The calculator also asks for your contribution margin. That's the share of each sale left after product cost, shipping, payment fees and discounts. With it, the tool shows two more numbers:

  • Contribution after ad spend = (revenue × contribution margin) − ad spend
  • Profit on ad spend (POAS) = (revenue × contribution margin) ÷ ad spend

If you don't know your contribution margin, work it out first with the contribution margin calculator.

Worked example

These are the calculator's default inputs.

Input or resultValue
Revenue from ads$12,000
Ad spend$4,000
Contribution margin45%
ROAS3.0x ($12,000 ÷ $4,000)
Contribution before ads$5,400 ($12,000 × 45%)
Contribution after ad spend$1,400 ($5,400 − $4,000)
POAS1.35x ($5,400 ÷ $4,000)

A 3.0x ROAS sounds strong. The useful number is the $1,400. That's what the campaigns actually contributed toward rent, salaries and the Shopify bill after paying for themselves.

ROAS vs profit on ad spend (POAS)

ROAS and POAS answer different questions. ROAS asks how much revenue the ads produced. POAS asks how much margin they produced. The gap between them is your product cost, shipping, fees and discounts, and it's often the biggest number on the P&L.

Why does revenue ROAS mislead? Because two stores can post the same 3.0x and be in opposite positions. At a 45% contribution margin, 3.0x leaves $1,400 on $4,000 of spend. At a 30% margin, the same $12,000 of revenue contributes $3,600, which is $400 short of the ad bill. Same ROAS, one store making money and one losing it.

Revenue ROAS also hides product mix. A campaign that sells mostly low-margin items can beat a high-margin campaign on ROAS while contributing less. When you compare campaigns, POAS (or contribution after ads) is the fairer test.

The simple rule: POAS above 1.0 means the ads covered their own cost and contributed something. Below 1.0, every extra dollar of spend loses money before any repeat purchases.

How to read your result

Read your ROAS against your own break-even, not against anyone else's number. Your break-even ROAS is 1 ÷ contribution margin. At 45%, that's about 2.22x. Anything above it contributes profit; anything below it doesn't. The break-even ROAS calculator works this out from your order-level costs.

Then make the decision from your own numbers:

  • ROAS above break-even, contribution after ads positive: the campaign pays its way. The question becomes whether it can take more spend without the ROAS falling below the line.
  • ROAS below break-even: the campaign only makes sense if those customers come back. Check your customer lifetime value before you keep funding it.
  • ROAS fine, but total profit flat: look at blended numbers. Platform attribution can claim the same order twice, so total Shopify revenue ÷ total ad spend is the sanity check.

What moves ROAS and POAS

You can raise ROAS by spending better, or raise POAS by keeping more of every order. The second set of levers is usually the one ad accounts ignore.

  1. Average order value. A bigger basket on the same click raises revenue per dollar spent. Our Invisible Second Sale work focuses on this.
  2. Contribution margin. Cheaper fulfilment, fewer blanket discounts and smarter pricing lift POAS without touching the ad account.
  3. Conversion rate. More of the paid traffic buying means more revenue from the same spend. A teardown shows where your store loses buyers.
  4. Budget allocation by margin. Move spend toward products and campaigns with the highest contribution after ads, not the highest ROAS.
  5. Repeat purchases. They don't change first-order ROAS, but they change how much first-order loss you can afford.

For where ROAS sits among the other numbers worth tracking, see our guide to ecommerce KPIs and the wider picture in ecommerce unit economics.

Common mistakes

  • Judging ROAS without a margin. A ROAS number without a contribution margin next to it can't tell you whether you made money.
  • Using gross margin instead of contribution margin. Gross margin leaves out shipping, fees and discounts, so it makes break-even look lower than it is.
  • Adding up platform ROAS. Several platforms can take credit for one order. Check blended revenue against blended spend.
  • Comparing periods with different discounts. A sale week inflates revenue and ROAS while cutting margin. POAS shows the real result.
  • Cutting every campaign below break-even. Some acquisition campaigns are meant to lose money on the first order. That's fine, as long as you've checked the repeat revenue actually arrives.

If your ROAS looks healthy but the bank balance doesn't agree, a game plan maps where the margin leaks between the ad account and the P&L.