What Is a Good ROAS? Start at Break-Even
There is no universal good ROAS. The only honest bar is your own break-even: 1 divided by your contribution margin, plus a cushion for overhead.
There is no universal good ROAS. The only honest bar is your own break-even: 1 divided by your contribution margin, plus a cushion for overhead.
A client sends a screenshot on a Tuesday morning: 3.1x ROAS, four weeks, one campaign, one word underneath. "Good?" You cannot answer yet, and neither can they, because the screenshot is missing the input that decides it. I have sat on both sides of that message. The answer that ends the conversation is one division, and it needs a number that never appears in Ads Manager.
Short answer: There is no universal good ROAS. Your floor is your break-even ROAS, which is 1 divided by your contribution margin: a 40 percent margin means 2.5x. Anything above that floor makes money on the ad, and you still need a cushion above it to cover the overhead the ad does not pay for.
The takeaways
A good ROAS is any ROAS above your break-even, with enough room left over for the costs that sit outside the ad account. Break-even is 1 divided by your contribution margin. At a 50 percent margin that is 2.0x, at 30 percent it is 3.33x, at 10 percent it is 10x and you should probably not be buying ads at all. Benchmarks are fine as orientation: Triple Whale's 2024 data put the median ROAS at 2.04 across the brands advertising on its platform. That median averages businesses whose margins run from 15 to 80 percent, so it cannot tell you whether your 3.1x is a win or a slow leak. Two shops can report an identical 3.1x in the same week. One is printing money, the other is buying revenue at a loss, and the only thing separating them is what each one keeps per order.
Contribution margin: whatever is left of an order after every cost that scales with that order. This is where most break-even math quietly goes wrong, because guides use gross margin, profit margin and contribution margin as if they were one input, and the formula is sensitive enough that the choice moves the answer by multiples.
Take an €80 order. Product cost €28, shipping €6, payment fees €2, and a €4 allowance for the returns you know are coming. That is €40 of variable cost, so the contribution margin is 50 percent and break-even ROAS is 2.0x.
Now feed the same order the wrong number. Use gross margin off the P&L, which only subtracts the €28 of product cost, and you get 65 percent and a break-even of 1.54x. You would greenlight campaigns that lose money on every order. Use net profit margin, which already has rent and salaries baked into it, and you get a bar no paid channel will ever clear.
Enough to cover the costs that do not scale with the order, expressed as a share of revenue. Break-even ROAS is a floor, and landing on a floor exactly means the ads paid for themselves and contributed nothing toward rent, salaries, software or your own time.
The arithmetic has the same shape. Subtract your overhead share from your contribution margin, then divide 1 by what remains. With a 50 percent contribution margin and overhead running at 20 percent of revenue, the bar is 1 / 0.30, so 3.33x, before the business is ahead. Every input in that number came from your own P&L.
I like this version because it survives an argument. When a client asks why you paused a 2.6x campaign, "it is under our 3.33x target" sounds arbitrary. "It covers its own costs and contributes nothing to overhead" is the same fact in a form they can check against their own books.
Probably not exactly, and the gap runs in the direction that flatters you. The ROAS in Ads Manager is built on the platform's own conversion count, which folds in view-through attribution, modeled conversions and cross-device matching. That count usually sits above the orders your shop backend can credit to the channel. So a reported 2.3x against a 2.0x break-even can be a measured 1.8x, and you scale it on a Friday feeling good.
Two habits absorb most of the damage. Compare a full month of platform-reported revenue against what your own system recorded, then carry that ratio forward as a standing haircut on every read. And settle the big decisions on blended numbers, total revenue over total spend, where the attribution argument has nowhere to hide. The longer version is its own post, because platform conversions and real sales diverge for structural reasons that no fix makes go away.
Ask for the margin before you answer the ROAS question. Then: "3.1x, your break-even is 2.0x, your target with overhead is 3.33x, so this campaign covers itself and about half of what we need it to contribute. Do not scale it this week." That sentence beats any benchmark grid, because every number in it comes from the business you are running.
Two closing honesties. A strong ROAS can still hide a weak ad, which is why a ROAS-only read misleads and why it is one of six weighted metrics in our scoring. And Adscalr does not know your margin. What the budget-intelligence side does is build 3 to 5 prioritized campaign plans from your own 12 weeks of performance, each with a conversion goal and an AI-estimated cost per install, so the target you chase is drawn from your account's history. The margin stays your job, and it is the number the whole answer hangs on.
This is the thinking behind Adscalr.
See the product →