ROAS (return on ad spend) measures how much revenue your advertising produces for every dollar it costs: ROAS = revenue / ad spend. Spend $1,000 on ads and generate $3,000 in tracked revenue, and your ROAS is 3.0x. Whether 3.0x is good, however, is a different question — and it cannot be answered without your margins.
Ask ten media buyers what a good ROAS is and you will get ten confident answers — 2x, 3x, 4x, "depends on the niche." All ten are wrong in the same way: they are quoting a number that belongs to someone else's business. A 3x ROAS is a triumph for one store and a slow bleed for another, and the difference is not the ads. It is the margin.
This post gives you the only honest answer to "what is a good ROAS?": a formula you compute from your own numbers in five minutes, and the reasoning to defend it when someone quotes a benchmark at you.
The Only Formula That Matters: Break-Even ROAS
ROAS is revenue divided by ad spend. The question "is 3x good?" really means "after the product cost comes out of that revenue, is there anything left to pay for the ads?" That is a margin question, and it has a clean answer:
Break-even ROAS = 1 / gross margin
If your gross margin is 50%, every $1 of revenue carries $0.50 that can absorb ad cost. To cover $1 of ad spend you need $2 of revenue. Break-even ROAS: 2.0x. Below it you lose money on every sale; above it you start keeping some.
Here is the formula worked at three margin levels — illustrative math, not benchmarks:
| Gross margin | Break-even ROAS (1 / margin) | A 3x ROAS means… |
|---|---|---|
| 30% | 3.33x | You are losing money |
| 50% | 2.0x | You keep $1 of every $3 |
| 70% | 1.43x | You keep $1.57 of every $3 |
Methodology note: every figure in this table is illustrative arithmetic chosen to show how the formula behaves. These are not benchmarks, averages, or results from any study.
Read that table again. The same 3x ROAS is a loss at 30% margin and a healthy return at 70%. Anyone who answers "what is a good ROAS?" without asking for your margin first is guessing.
Why Industry Benchmarks Are Gossip, Not Guidance
"The average ROAS in fashion is X" is a sentence that should set off alarms. Even when such a number comes from real data, it averages businesses with wildly different margins, repeat-purchase rates, price points, and channel mixes. A dropshipper at 25% margin and a brand selling its own manufacture at 75% margin can sit in the same "fashion" bucket — and they need targets more than 2x apart just to break even.
Worse, benchmarks create two failure modes:
- False comfort. You hit the "industry average," feel good, and keep scaling a campaign that sits below your break-even.
- False alarm. You sit "below average," panic, and kill a campaign that is comfortably profitable at your margin structure.
The benchmark tells you nothing about whether money is being made. Your margin does. Target ROAS must come from your P&L, not from a conference slide.
Gross Margin Is Optimistic — Use Contribution Margin
Gross margin (revenue minus cost of goods) is the textbook input, but it flatters you. Between the sale and the profit there is a queue of variable costs that scale with every order: shipping, payment processing fees, packaging, returns and refunds, marketplace or platform fees.
Contribution margin subtracts all of those. Illustrative math: a $100 order with 50% gross margin leaves $50. Take out $8 shipping, $3 payment fees, $2 packaging, and an average of $4 per order absorbed by returns. You are left with $33 — a 33% contribution margin. Your real break-even ROAS is not 2.0x. It is 1 / 0.33 ≈ 3.0x.
That is a brutal difference. A campaign running at 2.5x looked profitable under gross margin and is quietly losing money under contribution margin. When you compute your break-even, use the margin that survives all per-order costs — it is the only one the bank account agrees with.
When every product has a different margin
The formula so far assumes one margin for the whole store. Almost nobody actually has that. The moment your catalog spans more than one category, "our contribution margin is X%" becomes a blended number — a revenue-weighted average of products that may sit very far apart — and a target ROAS derived from it will lie to you in both directions.
Work the illustrative example. A store sells three categories with these per-order contribution margins:
| Category | Contribution margin | Break-even ROAS (1 / margin) |
|---|---|---|
| Accessories | 60% | 1.67x |
| Apparel | 45% | 2.22x |
| Electronics | 25% | 4.0x |
Methodology note: these margins and the mix below are illustrative numbers invented to demonstrate the math — not benchmarks from any study or dataset.
Say the revenue mix is 20% accessories, 30% apparel, 50% electronics. The blended contribution margin is (0.20 × 60%) + (0.30 × 45%) + (0.50 × 25%) = 38%, so the blended break-even is 1 / 0.38 ≈ 2.6x. Now picture an electronics prospecting campaign reporting 3x. Against the blended target it looks profitable — but electronics needs 4x, so it is losing money on every order while the storewide spreadsheet says everything is fine. Meanwhile an accessories campaign at 2x gets paused for "missing target" while sitting comfortably above its own 1.67x floor.
Two disciplines fix this:
- Compute break-even per category (or per product line, if the spread inside a category is wide). Same one-line formula, run once per margin tier instead of once per store.
- Set each campaign's target from the margin of what that campaign actually sells. A campaign whose orders are 90% electronics inherits the electronics break-even; a campaign selling a genuine mix gets a break-even weighted by its own order mix, not the storewide one.
The blended number still answers the board-level "is the whole machine profitable" question. It is the wrong tool for campaign targets, which are always about specific products.
A High Platform ROAS Can Still Lose Money
Two failure modes stack here, and together they explain most "we had great ROAS and somehow no profit" stories.
First, platform ROAS is inflated. Google and Meta each claim conversions the other also claims, count view-through conversions, and model the gaps. The number in the dashboard is routinely higher than revenue-in-the-bank divided by spend. If your break-even is 2.5x and the platform shows 2.8x, your real ROAS may already be below water.
Second, the platform optimizes revenue, not margin. A Target ROAS bidding strategy will happily hit its target by selling your lowest-margin, highest-return-rate products — the target was met, the contribution was not. The dashboard says 4x; the products that made the 4x carry 20% contribution margin and needed 5x.
The fix is one discipline: judge campaigns by real ROAS against your contribution-margin break-even, computed from your own clicks and your own orders — refunds subtracted. This is precisely what Decisa's attribution pipeline exists for: every order matched to the click that produced it, so the ROAS you compare against your break-even is the one your bank statement confirms.
Setting an Actual Target, Not Just a Floor
Break-even is the floor, not the goal — at break-even you work for free. To set a target, decide what share of revenue you want to keep as profit and extend the same formula:
Target ROAS = 1 / (contribution margin − desired profit share)
Illustrative math: at a 40% contribution margin, wanting to keep 10% of revenue as profit gives 1 / (0.40 − 0.10) = 3.33x. Wanting 15% gives 1 / 0.25 = 4.0x. Same business, two legitimate targets — the difference is ambition, not arithmetic. New-customer campaigns where repeat purchases are common can justify a target closer to the floor; that is a deliberate decision about lifetime value, made with the formula in hand, not a vibe.
Seasonality and the break-even line
A target ROAS is only as stable as the inputs behind it, and the inputs move with the calendar. The same 3x that prints money in November can be a quiet loss in February — not because the ads got worse, but because the break-even line moved underneath them.
Walk through what shifts, with illustrative math. In a peak month, products sell at full price, volume keeps shipping cheap per unit, and demand arrives pre-sold: say contribution margin lands at 40% — break-even 2.5x, and a 3x campaign keeps 10% of revenue. Then the slow season arrives: a 15-point sitewide discount to move stock, the post-holiday return wave landing on this month's books, shipping no longer subsidized by volume. If those pressures push contribution margin to 25%, the break-even becomes 1 / 0.25 = 4.0x. The identical campaign, still reporting 3x, flipped from profit to loss without a single change in the ad account.
Customer-acquisition cost moves seasonally too: auction prices spike when every advertiser fights for holiday demand, then fall when they retreat — but so does buying intent. Cheaper clicks in a low-intent month are not automatically cheaper customers, so "CPMs are down, scale up" needs the margin-side check first.
The practical rule: compare each month against its own baseline, not against your best month. Concretely:
- Recompute contribution margin with the current month's discount depth, shipping cost, and refund rate — not the annual average.
- Re-derive the break-even from that month's margin before judging any campaign against it.
- Treat a November-vs-February ROAS comparison as meaningless until both sides are restated against their own floors: "3x against a 4x floor" and "3x against a 2.5x floor" are opposite verdicts wearing the same number.
This is also the honest version of "ROAS dropped" panic: often the ROAS did not drop — the floor rose. Knowing which happened decides whether you fix the ads or fix the offer.
Find Your Number This Week
- Compute contribution margin per order: revenue minus COGS, shipping, payment fees, packaging, and average refund cost. Do it per product line if margins vary widely.
- Derive your break-even ROAS: 1 divided by that margin. Write it down where the whole team sees it.
- Pick a target above the floor using the profit-share formula, and configure it in your bidding strategies.
- Measure against real ROAS, not platform ROAS — first-party clicks joined to actual orders, refunds netted out — so the number you compare to your break-even is real.
- Recompute quarterly. Shipping rates, COGS, and refund rates drift; your break-even drifts with them.
"What is a good ROAS?" has no universal answer — and that is good news. It means the right answer is sitting in your own numbers, one division away, where no competitor and no benchmark report can see it.