What is break-even ROAS and how do you calculate it?

Break-even ROAS is the return where an ad stops losing money. Divide 1 by your margin after every cost of an order. At 40% margin, you need 2.5.

Raphael Gonzalez, Founder, Anry
Your margin per orderBreak-even ROASSame thing in Google AdsMost you can spend on ads per $100 of sales
20%5.00500%$20
25%4.00400%$25
30%3.33333%$30
35%2.86286%$35
40%2.50250%$40
50%2.00200%$50
60%1.67167%$60
70%1.43143%$70

Margin here means what's left of an order after the product, shipping, payment fees and returns. Google writes ROAS as a percentage, so a ROAS of 5 shows up as 500% in Google Ads (Google Ads Help).

The short answer

Break-even ROAS is the return on ad spend where an ad pays for itself and nothing more. The formula is 1 divided by your margin. A store keeping 40 cents of every sales dollar needs $2.50 back for every $1 of ads. Below that, every order from the ad costs you money.

The maths is the easy part. The two places people get it wrong are the margin they plug in and the ROAS they compare it to.

What it is

ROAS is revenue from ads divided by what you spent on those ads. Break-even ROAS is the ROAS where the margin on those sales exactly covers the ad bill.

The logic fits in one line. If you keep 40% of every sale, then $100 of sales leaves you $40, and $40 is the most you can pay in ads to get those sales without losing money. $100 ÷ $40 = 2.5.

A worked example

Take a made-up store. Say you sell a $60 product and you offer free shipping.

Cost per orderAmount
Product (what you paid the supplier)$21
Shipping and packing$9
Payment fee$2
Returns and refunds, set aside per order$4
Total cost$36
Left over$24, or 40% of $60

Break-even ROAS is 1 ÷ 0.40 = 2.5. In money terms, you can spend up to $24 in ads to win one order. That's your break-even cost per purchase.

Now the trap. If you only subtract the $21 product cost, the margin looks like 65% and the break-even ROAS looks like 1.54. An ad running at a ROAS of 2.0 looks healthy against 1.54. Against the real 2.5 it's losing $6 on every order: the ad costs $30 per $60 sale, and the order only leaves $24.

Same store, same ad. One number says scale it, the other says turn it off.

What goes into the margin

Count every cost that grows with each order. Leave out the fixed ones (rent, salaries, software), because those don't change when one more ad-driven order comes in.

  • Product cost. What you paid the supplier or what it costs you to make, per unit.
  • Shipping and packing. Whatever you pay that the customer doesn't. With free shipping, that's all of it.
  • Payment fees. Shopify Payments charges US stores from 2.5% to 2.9% plus 30¢ per online card payment, depending on the plan (Shopify). The 30¢ matters more on cheap orders: on a $20 order it adds 1.5 points to the fee.
  • Returns and refunds. US retailers expected 19.3% of online sales to come back in 2025 (NRF). Your rate may be far lower or higher depending on what you sell, so use your own refund history.
  • Discounts. If ad buyers usually check out with a code, work the margin out on the discounted price.

Don't plug in Shopify's Gross margin column as is

Shopify's profit reports work out gross margin as net sales minus cost, divided by net sales. The cost there is the cost per item you entered on the product, which Shopify defines as excluding taxes, shipping and other costs (Shopify Help). It also skips any variant with no cost recorded at the time of sale.

That column is a fine starting point. Then take off shipping, fees and returns, or you'll end up with the 1.54 from the example instead of the 2.5.

What it isn't

It isn't your target. Break-even means zero profit on those orders. If you want to keep 10% of revenue after ads, divide 1 by (margin minus 10%). At a 40% margin that's 1 ÷ 0.30, or a ROAS of 3.33.

It isn't a lifetime number. The formula above judges the first order. If customers reliably buy again, some stores accept a first-order ROAS below break-even on purpose. That only works if you know your repeat rate, and if you can wait for it.

It isn't MER. Break-even ROAS judges ads against the sales they drove. MER divides all your revenue by all your spend, ads or not. They answer different questions, covered in what MER is and when to use it.

Why the ad platform's ROAS reads higher than your store

The break-even number comes from your store. The ROAS you compare it to usually comes from Meta or Google. Those two don't count the same way, and the platform's count tends to run higher.

  • Long credit windows. By default, Meta credits a purchase made within 7 days of a click or 1 day of someone seeing the ad without clicking (Jon Loomer). Google's default click window is 30 days (Google Ads Help). A buyer who would have come back anyway still counts.
  • One order, two owners. Someone clicks a Meta ad Monday, a Google ad Wednesday and buys Friday. Both platforms can claim that order. Polar, which sells attribution software, says a 10 to 20% gap between Shopify and the ad platforms is common (Polar).
  • Refunds stay counted. The pixel fires at checkout. When that order gets refunded two weeks later, your margin takes the hit, but the platform keeps the sale unless your setup sends the refund back to it.

A platform's numbers can also look fine while nothing real happens behind them. Our own example: a Meta campaign for anry.io, set to optimize for landing page views and run on 14 and 15 October 2026. Ads Manager showed 460 landing page views for A$0.27 apiece. Anry's record of the same visits told another story: close to 98% of those people didn't scroll or tap even once, and Instagram's Reels and Stories placements had delivered nearly all of them, mostly as taps nobody meant to make. We switched it off that day. In Meta's report, it was cheap traffic.

So hold your break-even number against ROAS counted in your store's orders, not the one in Ads Manager. If the store-side figure suddenly falls while the ad side holds, the order to check things in is a different job.

Does it actually matter

Yes, because it turns "is this ad good?" into a yes or no. Without it, a ROAS of 2 means nothing. With it, a ROAS of 2 is profit at a 60% margin and a loss at a 40% one.

It's cheap to work out from your supplier invoices, shipping bills and refund report. Redo it when costs, prices or shipping policy change.

Where Anry fits

Anry reads ROAS from the store's side. It matches each Meta or Google ad click to the session it started and to any order in your own data, so the ads that pay are judged on your sales instead of each platform's version. Ads that bring people who leave at once get flagged, with a price on that loss. The suggested fix lands with your agent in Claude, Claude Code or Cursor.

If you run one channel with a small budget, a spreadsheet with Shopify's orders by UTM and your ad spend does the job.

Frequently asked questions

What is a good ROAS for ecommerce?

Anything above your own break-even ROAS. A ROAS that's profitable for a store with 60% margins can lose money for a store with 30% margins, so a universal "good" number doesn't help. Work out 1 ÷ your margin first, then add the profit you want on top.

Is a ROAS of 2 good?

It breaks even at a 50% margin, makes money above that and loses money below it. For a store keeping 40% after product, shipping, fees and returns, a ROAS of 2 loses about 10 cents per dollar of sales.

Should break-even ROAS include shipping and returns?

Yes. Any cost that comes with each extra order belongs in the margin: product, shipping you pay, payment fees and refunds. Leaving them out makes the break-even number too low, so losing ads look profitable.

What's the difference between break-even ROAS and break-even CPA?

They're the same limit in two units. Break-even ROAS is a ratio of sales to ad spend. Break-even CPA is the margin on one order in dollars: in the example above, $24. Pay more than that to win an order and you lose money on it.

Why is my Meta ROAS higher than what I see in Shopify?

Meta credits sales within its own windows, including people who only saw the ad, and Google may claim the same order. Refunds also stay in the platform's figure. Shopify counts each order once, so its number usually comes out lower.

Sources

See which ad clicks leave your store before they buy.

14-day free trial, no card. Works in Claude, Claude Code and Cursor.

Start free trial