Blog Paid ads

Same ROAS, less profit: why ROAS can't tell you if your ads pay

Two weeks with the same ROAS can leave very different profit. Why ROAS misleads, and the per-order number that tells you whether your ads actually pay.

Thomas Cilius
4 min read ·
Where an $80 order goes Illustrative example. Of an $80 order, $6 goes to discount, $28 to product cost, $7 to shipping and packaging, $2.20 to payment fees and $18 to ad spend, leaving a contribution margin of $18.80. Where an $80 order goes Illustrative example, per order $80 Order −$6 Discount −$28 Product −$7 Shipping −$2.20 Fees −$18 Ads $18.80 Margin
Illustrative example. A healthy-looking ROAS can hide how little is left per order.

Most store owners can tell you their revenue for last week without looking it up. Fewer can tell you how much of that revenue they kept. That second number is the one that decides whether you can afford to grow.

It has a dull name: contribution margin per order. It is the money left from an average order once every cost that order caused has been paid. Product, shipping, payment fees, discounts and the advertising it took to win it.

Why ROAS is not enough

Return on ad spend (ROAS) divides revenue by ad spend. It is useful inside an ad platform, because it lets you compare one campaign with another. But it was never designed to tell you whether the business is healthy.

ROAS ignores everything that happens after the click. It does not know that your best-selling product has a thin margin, that free shipping now starts at a lower basket, or that a discount code leaked to a coupon site on Tuesday.

Two weeks can have the same ROAS and very different profit.

Here is the same store over two weeks. The ads performed identically. The business did not.

Per order Week A Week B
Order value $80.00 $86.00
Discount $6.00 $12.00
Product cost $28.00 $30.00
Shipping and packaging $7.00 $7.00
Payment fees $2.20 $2.20
Ad spend $18.00 $18.00
ROAS 4.1 4.1
Contribution margin $18.80 $16.80

Same ROAS, $2 less per order. Over 2,000 orders a month that is $4,000 gone, and nothing in the ad account would have warned you.

How to calculate it

You need five numbers per order, averaged over a period. A week is a good rhythm. A day is too noisy. (For the full method, with CM1, CM2 and CM3, read the contribution margin guide.)

1. Start with what the customer paid

Use the order value after discounts and before tax. If you sell in several countries, convert to one currency first.

2. Subtract what the order cost you

  • Product cost: what you paid for the goods, including inbound freight if you can.
  • Shipping and packaging: what you paid the carrier, not what the customer paid you.
  • Payment fees: card and wallet fees. Often 2 to 3 percent, so small, but not zero.
  • Returns: if you have a meaningful return rate, subtract the average cost of returns per order.

What is left is your margin before marketing.

3. Subtract ad spend per order

Take your total ad spend for the period, across every platform, and divide by the number of orders. Use total spend and total orders. Platform-attributed numbers double-count, and this calculation should be boring and honest.

contribution margin per order
  = net order value
  − product cost − shipping − payment fees − returns
  − (total ad spend ÷ orders)

The number that comes with it: break-even ROAS

Once you know your margin before marketing, you also know the lowest ROAS you can survive. In week A, the margin before ads is $36.80 on $74 of net revenue, about 50 percent.

break-even ROAS = 1 ÷ margin before ads (as a share of net revenue)
                = 1 ÷ 0.50
                ≈ 2.0

Any campaign below 2.0 loses money on the first order. That does not make it automatically wrong. A campaign that brings in customers who come back can be worth running at a loss. But it should be a decision, not an accident. The break-even ROAS calculator works it out for your own numbers.

The best report is the one you never have to open, because the action has already been taken.

Make it a routine, not a project

The calculation is not hard. The hard part is doing it every week, with fresh numbers, before you decide anything. That is where most stores slip back to watching revenue and ROAS, because those two are always on the screen.

Three rules keep it alive:

  1. Set a threshold. Decide the lowest contribution margin per order you accept, for example $15.
  2. Decide the action in advance. If the margin falls below the threshold two weeks in a row, you review discounts first, then the most expensive campaign.
  3. Let someone else fetch the numbers. A spreadsheet, a colleague or an assistant. Your job is the decision, not the copy-paste.

Next time: how to set up a weekly report that puts this number at the top, written for you every Monday.

Thomas Cilius
4 min read ·

Scale the store, not the team.

Tell us about your store. We'll walk you through what the butler would do with your numbers.