In one line: A 3.8x ROAS can lose money because ROAS is a ratio against revenue, not profit. If your break-even ROAS is higher than the ROAS you got, the order is a loss. Break-even ROAS equals one divided by your gross margin, so a store at a 20 percent margin needs roughly 4.9x just to break even. At 3.8x that store keeps less than it spent, which is how $18,400 in sales turned into a $1,082 loss.
How do I know my break-even ROAS? Divide one by your true gross margin. A 50 percent margin breaks even at 2.0x, 33 percent at 3.0x, 25 percent at 4.0x, and 20 percent at 5.0x. Any ROAS below that line loses money.
The short version
- ROAS measures revenue returned per ad dollar, with none of your costs subtracted.
- Break-even ROAS equals one divided by your gross margin. Below it, you lose money.
- A real store did $18,400 in sales at a 3.8x ROAS and lost $1,082, because its break-even ROAS was 4.9x.
- Meta does not know your product costs, shipping, discounts, fees, or refunds, so its ROAS is blind to all of them.
- A single store-wide ROAS target hides the products that are underwater. The right floor is per product.
ROAS is the metric everyone watches because it is the one the ad platform hands you. Open Meta or Google, and there it is: revenue divided by spend, updated in real time, quietly implying that bigger is better. It is a useful number for judging one ad against another. It is a dangerous number for judging whether you made money, because it has none of your costs in it.
The clearest way to see the trap is to watch a real campaign fall through it. The example below comes from a store owner who posted their numbers publicly after a strong-looking month ended with less cash than it started (Shopify Community). The numbers are theirs. The lesson is everyone's.
The waterfall: $18,400 in revenue, minus $1,082 in profit
Here is the campaign as the ad manager saw it, and then as the bank account saw it.
That store spent $4,842 on Meta ads that month and got back $18,400 in attributed revenue. Revenue divided by spend is 3.8x. On the ad dashboard, this is a good month. Now watch what happens when the actual costs come out of that $18,400.
| Line | Amount | Running total |
|---|---|---|
| Attributed revenue | $18,400 | $18,400 |
| Cost of goods sold | −$7,360 | $11,040 |
| Shipping and fulfillment | −$2,200 | $8,840 |
| Discounts applied | −$1,650 | $7,190 |
| Payment processing fees | −$620 | $6,570 |
| Returns and refunds | −$810 | $5,760 |
| Meta ad spend | −$4,842 | $918 |
| Overhead share for the period | −$2,000 | −$1,082 |
Read that bottom row again. The same campaign that showed a 3.8x ROAS finished at a loss of $1,082. Nothing went wrong operationally. No fraud, no failed launch. The store simply spent money to generate revenue that did not carry enough margin to cover the spend, and the ad platform had no way to know, because it only ever saw the top line.
The number that would have caught it: break-even ROAS
There is one figure that predicts this before you spend a cent, and it is simple. Break-even ROAS is the return you need for an order to make exactly zero profit. Below it, you lose money. Above it, you make money. It equals one divided by your gross margin.
| Gross margin | Break-even ROAS | What a 3.8x ROAS means |
|---|---|---|
| 60% | 1.67x | Profitable |
| 50% | 2.0x | Profitable |
| 40% | 2.5x | Profitable |
| 33% | 3.0x | Profitable |
| 26% | 3.8x | Exactly break-even |
| 20% | 5.0x | A loss |
Now the loss makes sense. The store in the example was operating on roughly a 20 percent gross margin once landed cost, shipping, discounts, fees, and returns were counted. At 20 percent, break-even ROAS is 5.0x. The campaign returned 3.8x. It was always going to lose money, and the break-even math would have said so in advance. The 3.8x was not a good result that went wrong. It was a losing result that looked good.
This is why "is a 4x ROAS good?" has no answer without your margin. At a 25 percent margin, 4x is exactly break-even and makes nothing. At a 50 percent margin, 4x is comfortably profitable. The ROAS number alone tells you nothing until you compare it to your own floor.
Know your break-even ROAS per product
Marjn calculates your true margin from your Shopify order revenue, your landed cost, and your Meta ad spend, then answers it inside Shopify Sidekick. Ask which products are still profitable after ads and get a real number instead of a ratio. Free plan, no card.
Get Marjn on the Shopify App Store →Why a store-wide ROAS target still fails you
Once owners learn the break-even formula, the common next move is to set a single ROAS target for the whole account: "we need to hold above 4x." That is better than nothing, and it is still a trap, because margins are not uniform across your catalog.
Imagine two products. One is a high-margin item at 55 percent, with a break-even ROAS of 1.8x. The other is a thin accessory at 22 percent, with a break-even ROAS of 4.5x. Set one store-wide target of 4x, and you will kill campaigns on the high-margin product that were making good money at 3x, while happily funding campaigns on the thin product that are losing money at 4x. A single number applied to a catalog with mixed margins is wrong in both directions at once.
The honest version of a ROAS target is a break-even ROAS per product, so each campaign is judged against the floor that actually applies to it. That is a lot of arithmetic to keep current by hand, which is exactly why it rarely gets done and losing campaigns run for weeks. A tool that reads your live revenue, landed cost, and ad spend can hold every product's floor for you and tell you which ones you are funding at a loss right now.
The reported ROAS is often generous on top of everything else
The waterfall above took the 3.8x at face value and still found a loss. In practice the reported number is frequently better than the real one, which makes the gap wider than the example shows.
Attribution is the reason. When Meta reports a sale, it is claiming credit for a purchase that happened within its attribution window after someone saw or clicked an ad. Some of those buyers would have purchased anyway. Some found you through search, a friend, or an email and merely passed an ad on the way. The platform counts the sale as ad-driven revenue because it is built to show its own work in the best light. So the revenue in the numerator of your ROAS can include orders the ad did not actually cause, which inflates the ratio.
This does not mean the ad manager is lying. It means the reported ROAS is a platform-friendly estimate, not an audited fact, and it sits on top of the cost blindness already described. If your break-even ROAS is 4.9x and Meta reports 3.8x, the real, incrementality-adjusted return might be lower still. The practical takeaway is not to chase perfect attribution, which is its own rabbit hole, but to treat the reported ROAS as an optimistic ceiling and to insist on a comfortable margin above break-even rather than hugging the line. A campaign that only just clears break-even on reported ROAS is very likely underwater once you account for the sales the ad did not truly drive.
How to read your ad manager without fooling yourself
You can keep using Meta's dashboard. You just have to translate what it shows you into what it means for your bank account. Three habits do most of the work.
1 Put your break-even ROAS next to the reported ROAS
Every time you look at a campaign's ROAS, look at the break-even ROAS for the products it sells in the same glance. A 3.5x means nothing until it is sitting beside a 2.0x floor (great) or a 4.5x floor (a loss). The comparison, not the raw number, is the signal.
2 Watch blended profit, not just per-campaign ROAS
Per-campaign ROAS can look fine while the account as a whole loses money, because retargeting campaigns often show inflated returns by claiming credit for sales that cold campaigns paid to create. Total ad spend against total contribution margin for the period is the number that cannot be gamed by moving credit between campaigns.
3 Require headroom above break-even
Because the reported ROAS is optimistic, a target that merely matches break-even will lose money in reality. Decide how much margin of safety you need above the floor, then hold campaigns to that higher bar. The thinner your margin, the more headroom you need, because a low-margin product has a high break-even ROAS and very little room for error.
The macro reason this keeps happening
Break-even ROAS is not static, and it has been moving against store owners for years. As ad prices rise, you need a higher ROAS to hit the same profit, and if your margin stays flat while acquisition costs climb, campaigns that were fine last year quietly slip below the line.
That direction is not subtle. Internet ad prices are up more than 30 percent since the end of 2022, and Meta CPMs climbed for years before peaking above $25 in late 2025 (Eightx, 2026). Median direct-to-consumer customer acquisition cost now runs between $130 and $156 (Eightx, 2026). When the cost of a customer rises and the price on the product does not, your effective ROAS on the same campaign drifts down toward the break-even line and eventually crosses it. This is not a story about one bad month. It is the reason a store can be profitable in the spring and underwater in the fall without changing anything it does.
It reaches the largest brands too. The median public direct-to-consumer company ran a negative operating margin last year on a gross margin near 47 percent (Eightx, SEC data, 2026). Their ROAS dashboards looked fine. Their P&L did not.
The same product, two campaigns, opposite results
To make the per-product point concrete, take one product and run it through two campaigns at different returns. Say it sells for $60 and has a true gross margin of 40 percent, which puts its break-even ROAS at 2.5x. That is the floor for this specific product, no matter what your store-wide target is.
| Scenario | Reported ROAS | vs break-even 2.5x | Result per $1,000 spent |
|---|---|---|---|
| Retargeting warm buyers | 4.2x | Above the floor | Profit of roughly $680 |
| Cold prospecting | 2.1x | Below the floor | Loss of roughly $160 |
Same product, same margin, same store. The retargeting campaign clears the floor and makes money. The cold campaign sits below it and loses money on every thousand dollars you feed it. If you judged both against a blended account ROAS of, say, 3.0x, you would see one number that hides the fact that half your spend on this product is profitable and half is a leak. The floor that matters is 2.5x, and only the per-product view shows you that one campaign is above it and one is below.
Scale that across a catalog with dozens of products at different margins and it becomes clear why so much ad spend runs at a quiet loss. The losing campaigns are not obviously bad. They post respectable ROAS figures. They just post them below a floor nobody is calculating for that specific product.
What to do with this
You do not need to overhaul anything today. Three moves get you out of the trap.
1 Calculate your true gross margin
Use landed cost, not the supplier sticker, and include the costs the ad platform ignores. If your Shopify cost-per-item field is empty or wrong for some variants, fix those first, because a wrong margin makes a wrong break-even ROAS.
2 Set the break-even floor, per product where you can
One divided by the margin gives you the floor. Do it for your top sellers first. Any campaign running below the floor for that product is losing money, full stop.
3 Judge campaigns against the floor, not against zero
A 3.8x ROAS is not a pass mark. It is only a pass mark if it clears your break-even ROAS for that product. Compare every campaign to its own floor and turn off the ones buying revenue at a loss.
The deeper problem this points to is that revenue is not profit, and Shopify's dashboard shows you the first, not the second. If the break-even math surprised you, the full picture of where the money goes is worth reading: why your Shopify store is not profitable walks the entire order P&L line by line. And if you suspect the campaigns losing money are the ones on your most popular products, you are probably right: why your bestseller is your biggest loser explains why the products you promote hardest are the ones most likely to be underwater.
Frequently asked questions
Can you have a good ROAS and still lose money? Yes. ROAS is advertising revenue divided by advertising cost, measured against revenue, not profit. If the return is below your break-even ROAS, the order loses money even when the number looks strong. A 3.8x ROAS is a loss for a store whose break-even ROAS is 4.9x.
What is break-even ROAS and how do I calculate it? It is the return at which an order neither makes nor loses money, equal to one divided by your gross margin. A 50 percent margin needs 2.0x, 33 percent needs 3.0x, 25 percent needs 4.0x. Use true gross margin based on landed cost so the floor is honest.
Why does Meta report a higher ROAS than my real profit suggests? Meta only knows the revenue it can attribute to an ad. It does not know your product costs, shipping subsidies, discounts, payment fees, or refunds, so its ROAS is a revenue ratio with none of your costs removed.
Is a 4x ROAS good? It depends on your margin. At a 25 percent gross margin, 4.0x is exactly break-even and makes no profit. At a 50 percent margin, 4x is comfortably profitable. There is no universal good ROAS, only your own break-even floor.
Should I use one break-even ROAS for my whole store? A single store-wide floor hides the products that are underwater. Margins differ by product, so the floor differs too. A break-even ROAS per product judges each campaign against the right number.