You open Ads Manager and see a ROAS of 3. Your friend who sells candles says anything under 4 is a disaster. An agency pitch deck says 2 is fine. A forum thread says 8 is normal. So what is a good ROAS, really? And is the 3 on your screen making you money or quietly costing you?
Here's the honest answer: there is no single good ROAS. A 3 can be a great result for one store and a slow bleed for another. What decides it is how much of each sale you actually keep after paying for the product, shipping and fees. From that you can work out your break-even ROAS, the line between ads that pay for themselves and ads that lose money. Your good ROAS sits above it.
This guide walks through both: how to calculate your break-even ROAS with a pen and a few numbers from your store, and how to turn it into a target you can hold your campaigns to. Once you have them, the forum numbers stop mattering.
First, what ROAS means
ROAS stands for return on ad spend. It's the revenue your ads brought in, divided by what you spent on those ads.
ROAS = revenue from ads ÷ ad spend
If you spend $1,000 on ads and they bring in $3,000 in sales, your ROAS is 3. People also write it as 3x, 300% or 3:1. They all mean the same thing: every dollar of ads came back as three dollars of revenue.
Notice the word revenue. ROAS counts sales, not profit. It has no idea what your products cost to make, what you paid to ship them, or how many came back as returns. That's exactly why a single "good ROAS" number can't exist.
Why the same ROAS can be great or terrible
Picture two stores. Both spend $1,000 on ads and both get a ROAS of 3, so $3,000 in sales each.
Store A sells skincare. Each $50 jar costs $8 to make, and shipping and payment fees add another $7. So the store keeps $35 of every $50 sale, or 70% of revenue. That 70% is its contribution margin: what's left of each sale after the costs that come with making and delivering it, before ads.
Store B sells furniture. Each $500 chair costs $300 to make, and shipping a bulky box plus fees costs another $100. It keeps $100 of every $500 sale, or 20%.
Now run the numbers on that same ROAS of 3:
| Store A (skincare) | Store B (furniture) | |
|---|---|---|
| Revenue from ads | $3,000 | $3,000 |
| Contribution margin | 70% | 20% |
| Money kept before ads | $2,100 | $600 |
| Ad spend | $1,000 | $1,000 |
| Profit after ads | $1,100 | minus $400 |
Same ROAS. One store made $1,100. The other lost $400. The question is really "what ROAS do I need, given what I keep from each sale?" And the answer starts with break-even.
What break-even ROAS means
Break-even ROAS is the ROAS at which your ads earn back exactly what they cost, after paying for the products you sold. No profit, no loss. If your actual ROAS is above it, ads are making you money. Below it, every extra dollar you spend loses you money.
Why can't you just say "a ROAS of 1 means break-even"? Because a ROAS of 1 means $1,000 of ads brought in $1,000 of sales. But you still had to buy, pack and ship those products. After paying for all that, you're well underwater. Break-even ROAS accounts for those costs.
The break-even ROAS formula
Here it is:
Break-even ROAS = 1 ÷ contribution margin (as a decimal)
You write the margin as a decimal, so 60% becomes 0.60. For Store A, that's 1 ÷ 0.70 = about 1.43. For Store B, it's 1 ÷ 0.20 = 5. Store A is comfortably profitable at a ROAS of 3. Store B needs a 5 just to stand still.
You can also write the same formula using prices, which some people find easier:
Break-even ROAS = average order value ÷ money kept per order before ads
Average order value (AOV) is what a typical order is worth: total revenue divided by number of orders. Both formulas give the same answer. Pick whichever matches the numbers you have handy.
Why the formula works
Say you keep 40 cents of every dollar of sales before ads. To pay for $1 of ad spend, you need enough sales that 40 cents of each dollar adds up to $1. That's $1 ÷ 0.40 = $2.50 of sales. So for every $1 of ads you need $2.50 in revenue, which is a ROAS of 2.5. That's your break-even.
How to calculate break-even ROAS, step by step
The formula is easy. Getting the contribution margin right is the actual work, and it's where most stores go wrong. Think of these four steps as a break-even ROAS calculator you can run on the back of a napkin.
Step 1: Find your average order value
Take your revenue over a recent period, say the last 90 days, and divide it by the number of orders. Use the revenue customers actually paid for products, before taxes. Sales tax isn't yours, so it shouldn't be in here.
Step 2: List every cost that comes with an order
These are the costs that rise and fall with each sale. They're called variable costs, because they vary with how much you sell:
- Cost of goods sold (COGS): what you paid to make or buy the products in the order.
- Shipping and packaging: what you pay the carrier, plus boxes and inserts. If customers pay for shipping, subtract only what you pay beyond what they pay.
- Payment processing fees: what your payment provider takes per transaction.
- Discounts: average discount-code value per order, if your AOV is calculated before discounts.
- Refunds and returns: the average cost per order of money you give back, plus any return shipping you pay.
- App or platform fees charged per order: some apps charge per order or take a percentage. Include those.
Leave out costs that don't change when you sell one more order, like rent, salaries or your monthly software bill. Those matter for whether the business as a whole is profitable, but not for whether one more ad-driven order is.
Step 3: Work out the money kept per order
Subtract all of Step 2 from your AOV. That's what each order contributes before ads.
Step 4: Divide
Break-even ROAS = AOV ÷ money kept per order.
Break-even ROAS calculator: a worked example
Let's run it for a made-up store. Maya sells linen bedding, and her average order is $120.
| Line | Per order |
|---|---|
| Average order value | $120.00 |
| Cost of goods | −$36.00 |
| Shipping and packaging | −$12.00 |
| Payment fees | −$4.00 |
| Discounts and refunds (average) | −$8.00 |
| Money kept per order before ads | $60.00 |
- Contribution margin: $60 ÷ $120 = 50%
- Break-even ROAS: $120 ÷ $60 = 2 (or 1 ÷ 0.50 = 2)
So Maya needs every $1 of ads to bring in $2 of sales just to break even. At a ROAS of 2.5 she's profitable. At 1.8 she's losing money.
Let's check that with real dollars. Spend $1,000 at a ROAS of 2.5 and you get $2,500 in sales, which is about 21 orders. Each keeps $60, so that's about $1,250 before ads. Subtract the $1,000 in ads and she's made about $250. At a ROAS of 1.8, she gets $1,800 in sales, 15 orders, $900 kept, and a $100 loss.
A quick break-even ROAS table
If you already know your contribution margin, you can read your break-even straight off this table:
| Contribution margin | Break-even ROAS |
|---|---|
| 90% | 1.11 |
| 80% | 1.25 |
| 70% | 1.43 |
| 60% | 1.67 |
| 50% | 2.00 |
| 40% | 2.50 |
| 35% | 2.86 |
| 30% | 3.33 |
| 25% | 4.00 |
| 20% | 5.00 |
| 15% | 6.67 |
| 10% | 10.00 |
Notice how fast it climbs as margins shrink. Going from 50% to 25% margin doesn't nudge your break-even up a little. It doubles it, from 2 to 4. That's why low-margin products are so hard to sell profitably with paid ads, and why a small improvement in product cost or shipping can make a campaign that was losing money suddenly work.
So what is a good ROAS? Break-even plus profit
Breaking even isn't the goal. It's the floor. A good ROAS is your break-even ROAS plus the profit you want each ad dollar to earn. There are a few ways to set that target.
Pick a profit per sale and work backward
Decide what share of revenue you want left over after ads. Subtract that from your contribution margin, then divide 1 by what's left.
Target ROAS = 1 ÷ (contribution margin − target profit margin)
For Maya, with a 50% margin and a goal of 10% profit on first orders: 1 ÷ (0.50 − 0.10) = 1 ÷ 0.40 = 2.5. So for her, a ROAS of 2.5 or above is good. A 2 is breaking even. A 1.8 is losing money on the first order.
For Store A wanting 15% profit: 1 ÷ (0.70 − 0.15) = about 1.82. For Store B: 1 ÷ (0.20 − 0.15) = 1 ÷ 0.05 = 20. A huge number like that is useful information. With a 20% margin, wanting 15% profit from ads alone is close to impossible. The problem is margin or order size, not ad performance.
Decide whether you're buying profit or buying customers
This is where a lot of stores get stuck, and it's worth slowing down.
If a customer only ever buys from you once, every order has to pay for its own ad. Your good ROAS has to sit above break-even on that first order.
If customers come back and buy again, the first order doesn't have to carry the whole cost. You might accept a ROAS near break-even, or even a bit below, on first purchases, because repeat orders bring in profit later with no extra ad spend. Coffee, supplements and pet food often work this way. Maya's 1.8 is only fine if she knows her customers return for pillowcases and duvet covers.
The danger is guessing. Accepting a low first-order ROAS only works if people really do come back. Work out how much a typical customer spends over time first. Our guide on how to calculate your customer lifetime value shows how, and customer retention rate tells you what share of buyers actually return. If those numbers are thin, break-even is where you should stop, not where you should aim.
Separate new customers from returning ones
A campaign that mostly reaches people who already buy from you can show a lovely ROAS without growing the business. Those customers might have bought anyway. A prospecting campaign (ads aimed at people who don't know your brand yet) will usually show a lower ROAS but bring in people you didn't have.
So it's normal to hold different campaigns to different targets. A remarketing campaign (ads shown to people who already visited or bought) should clear a higher bar. A campaign whose job is finding new customers can run closer to break-even, as long as those new customers come back.
The common mistakes
Using the ROAS the ad platform shows you
This is the big one. Each ad platform counts the sales it thinks it caused, using its own rules. Meta counts a sale if someone clicked or viewed its ad within its attribution window (the number of days after an ad interaction during which a sale still gets credited to it). Google does the same for its ads . If a shopper clicks a Meta ad on Monday and a Google ad on Wednesday, then buys, both platforms can take full credit for one order.
Add up every platform's reported revenue and you'll often get more than your store actually took. Compare those inflated numbers against your break-even ROAS and you'll think you're above the line when you're below it. Compare ad spend against the orders that really happened in your store, with each order's credit counted once. Our explainer on multi-touch attribution covers how that split works. Even a simple last-click view built on your own orders is more honest than adding up every platform's claims, though it has its own blind spots, covered in the pros and cons of last-click attribution .
Missing sales the platform never saw
The opposite problem happens too. If your tracking misses purchases because of ad blockers or closed tabs, your ROAS looks lower than it really is, and you might turn off ads that were working. Recording purchases from the server, not just the browser, closes much of that gap. Server-side tracking for Shopify explains how.
Using gross margin instead of contribution margin
Gross margin usually means revenue minus cost of goods only. It ignores shipping, fees, discounts and refunds. If you use it, your margin looks bigger, your break-even ROAS looks smaller, and campaigns look profitable when they aren't. Use contribution margin, with every per-order cost included.
Including sales tax in revenue
Tax collected isn't money you keep. If it's in your AOV, your margin looks better than it is.
Using one margin for a mixed catalog
If you sell a $20 accessory at 70% margin and a $400 bundle at 25% margin, your store-wide average hides two very different break-evens. Campaigns that mostly sell the bundle need a ROAS of 4. Campaigns that mostly sell the accessory break even around 1.43. Where you can, work out break-even by product line or by campaign.
Treating one number as the whole account
A blended ROAS, your total store revenue divided by your total ad spend across every channel, hides a lot. One campaign might sit at 6 while another sits at 1.2. The account average looks fine, but you're paying to run the 1.2. Check ROAS by campaign and, where you can, by ad.
Ignoring spend that's not connected
If a channel shows sales but no spend, its ROAS looks infinite. It's not. Usually an ad account just isn't connected to whatever is doing the reporting. Treat any ROAS without matching spend as unknown, not as a win.
Copying someone else's target
Your competitor's good ROAS was built on their margins, their prices and their repeat rate. None of those are yours.
Never updating your break-even
Your break-even ROAS isn't a one-time number. A supplier raises prices, a carrier changes rates, you start a big discount campaign: each of those moves your margin, and your break-even moves with it. Recalculate whenever costs change, and at least every quarter.
Your checklist for finding a good ROAS
- Pull revenue and order count for the last 90 days, excluding tax, and calculate average order value.
- Add up every per-order cost: product cost, shipping, packaging, payment fees, discounts, refunds and per-order app fees.
- Work out your contribution margin: money kept per order divided by AOV.
- Calculate break-even ROAS: 1 ÷ contribution margin, or AOV ÷ money kept per order.
- Decide what profit you want from ads and calculate a target: 1 ÷ (margin − target profit).
- Check whether customers come back. If they do, you can accept a lower first-order ROAS on campaigns that find new buyers.
- Measure against your real orders, with each sale counted once, not against what each ad platform claims.
- Set targets per campaign or product line, not one number for the whole account.
- Recalculate when prices, suppliers or shipping rates change.
How Soran handles it
ROAS by channel group in Soran, on a demo store. Channels without connected ad spend show a dash instead of a flattering number.
The hard parts of finding a good ROAS are getting the margin right and getting a ROAS you can trust to compare it with. Soran is built around that gap between "the ROAS my ad platform shows" and "did this actually make money."
- Your margin, already worked out. Soran steps revenue down through discounts and refunds, cost of goods, shipping and transaction fees to contribution margin. You can set one fallback rule each for shipping and fees, and past cost entries are kept, so old reports stay accurate when costs change.
- Margin by product. See revenue, orders and margin per product, variant or SKU, so a mixed catalog doesn't hide a losing line.
- Credit adds up to your real sales. Each order's credit is split once across the visits that led to it, so your ROAS is built on what the store actually took, not on every platform's claims added together.
- Spend is matched to the exact ad. Soran ties ad spend to the specific ad behind each order, so you can see ROAS by channel, campaign, ad set and ad.
- No flattering numbers. If a channel shows revenue but no spend, Soran flags it as a probable unconnected ad account rather than showing an impossible ROAS.
- Purchases recorded server-side, so ad blockers and closed tabs don't drag your ROAS below where it really is.
FAQ
Is a ROAS of 2 good?
It depends on your contribution margin. If you keep 50% of each sale after costs, a ROAS of 2 is exactly break-even. If you keep 70%, it's profitable. If you keep 30%, you're losing money on every order unless those customers buy again later.
Is a ROAS of 4 good?
For most stores with healthy margins, yes, but check it. A store with a 20% contribution margin needs a ROAS of 5 to break even, so a 4 loses money there. Work out your own break-even ROAS before celebrating any number.
What is a good break-even ROAS?
There's no good or bad break-even ROAS. It's simply a fact about your margins. A lower break-even is easier to beat, which is why high-margin products are easier to advertise profitably. If yours is high, the fix is usually better margins or bigger orders, not just better ads.
What is a good ROAS for Facebook or Google ads?
The platform doesn't change the math. Your break-even ROAS comes from your margins, so it's the same on Meta, Google or TikTok, and a good ROAS on any of them is the one that clears it, judged on real orders. What does differ is how each platform counts sales, so the ROAS each one reports isn't directly comparable.
Should ROAS be higher for remarketing than prospecting?
Usually, yes. Remarketing reaches people who already know you, so it tends to show a higher ROAS, and some of those buyers might have purchased anyway. Prospecting finds new customers and can run closer to break-even if those customers come back.
Should I include fixed costs like salaries in break-even ROAS?
No. Break-even ROAS answers "does one more ad-driven order make money?", and fixed costs don't change with one more order. You still need to cover fixed costs from your total profit, so track that separately.
What if my break-even ROAS is above what my ads can achieve?
Look at your margin before your ads. Raising prices, increasing order value with bundles, renegotiating product or shipping costs, and cutting discounting all lower your break-even. If customers come back often, a first-order ROAS near break-even can still pay off over time.
How is break-even ROAS related to break-even ACOS?
ACOS (advertising cost of sale) is ROAS flipped: ad spend divided by revenue . Break-even ACOS is simply your contribution margin. A 50% margin means you break even at a 50% ACOS, which is the same as a break-even ROAS of 2.
Is ROAS the same as profit?
No. ROAS measures revenue against ad spend. Profit also subtracts product cost, shipping, fees, discounts and refunds. That's why the same ROAS can mean a profit for one store and a loss for another.
Want your break-even ROAS and your real ROAS side by side, by campaign, after costs? Book a demo and we'll walk through your store.