"5x ROAS and barely breaking even. My agency says the campaigns are performing great. My accountant says otherwise. Something doesn't add up."
— Source: r/FacebookAds (194 upvotes)
This is one of the most frustrating experiences in ecommerce. Your ad dashboard shows strong returns. Your agency celebrates the numbers. But when you look at your bank balance, the money isn't there.
The disconnect is real, and it's common. ROAS measures revenue generated per dollar of ad spend. It says nothing about profit. A 5x ROAS means you're generating $5 in revenue for every $1 in ads. But if it costs you $4.50 to fulfill that $5, you're making fifty cents.
This isn't a niche problem. It's arguably the most widespread financial blind spot in ecommerce advertising.
Reddit insight: In 30+ threads about the ROAS-profit disconnect, the root cause is almost always the same: ROAS is a revenue metric being used as a profit metric. This guide shows you the gap and what to measure instead.
The ROAS Illusion: Revenue Is Not Profit
Let's make the math visible. Here's a typical order driven by a Meta ad:
| Line Item | Amount | Notes |
|---|---|---|
| Order Revenue | $80.00 | What Meta counts as ROAS revenue |
| Ad Spend (allocated) | -$20.00 | $80 / 4x ROAS |
| COGS | -$24.00 | 30% of revenue |
| Fulfillment | -$8.50 | 3PL pick, pack, ship |
| Payment processing | -$2.62 | 3.0% + $0.30 |
| Return reserve (15%) | -$6.00 | 15% return rate x avg return cost |
| Allocated overhead | -$5.00 | Software, labor, ops |
| TRUE Profit | $13.88 | |
| TRUE Profit Margin | 17.4% | On revenue — but only 69% on ad spend |
That's with a 4x ROAS. Now watch what happens at 3x:
| Line Item | Amount |
|---|---|
| Order Revenue | $80.00 |
| Ad Spend (allocated) | -$26.67 |
| All other costs | -$46.12 |
| TRUE Profit | $7.21 |
| TRUE Profit Margin | 9.0% |
And at 2.5x ROAS, the same order is essentially break-even. One return wipes out the profit from three sales.
The hidden math: If your true all-in margin (after COGS, fulfillment, processing, returns, overhead) is 30%, your break-even ROAS is 3.3x. Below that, you're losing money on every ad-driven order.
6 Reasons ROAS Overstates Your Profitability
This is the fundamental flaw. $4 in revenue is not $4 you keep. Depending on your margins, you keep 20-50% of that revenue. A 4x ROAS with 25% margins means you're making $1 per $1 of ad spend — not $4.
Meta and Google both overclaim conversions. Meta's default 7-day click / 1-day view window counts sales that might have happened organically. Google counts brand searches triggered by display impressions. Studies consistently show platforms overclaim by 20-40%.
- Your "4x ROAS" might be 2.8x after removing organic conversions Meta claimed
- A customer who would have bought anyway gets attributed to the last ad they saw
- View-through conversions inflate Meta ROAS by 10-30% for many stores
ROAS is calculated at the time of purchase. If 15% of those orders get returned, your effective ROAS drops by 15% — but your dashboard never updates.
Worse, returned orders still cost you: original shipping, return shipping, restocking labor, and the payment processing fee that doesn't get refunded.
A 20% discount code generates a sale. Meta counts the pre-discount revenue. Your ROAS looks great, but you gave away 20% of the order value to make the conversion happen.
ROAS doesn't distinguish who bought. If 40% of your "ad-driven" sales are returning customers who would have bought anyway (via email, direct, etc.), your acquisition ROAS is far lower than blended ROAS.
Software subscriptions, your time, customer service — these fixed costs need to be covered by profit from each order. ROAS pretends they don't exist.
"Am I the only one who thinks ROAS is a vanity metric at this point? It tells me nothing about whether I actually made money."
— Source: r/PPC (287 upvotes)
Calculating Your Break-Even ROAS
Your break-even ROAS depends entirely on your true margin. Here's the formula:
Break-Even ROAS = 1 / True Contribution Margin
True Contribution Margin = (Revenue - COGS - Fulfillment - Processing - Return Reserve) / Revenue
Here's a reference table:
| True Margin | Break-Even ROAS | Target ROAS (20% profit) |
|---|---|---|
| 20% | 5.0x | 6.25x |
| 25% | 4.0x | 5.0x |
| 30% | 3.3x | 4.2x |
| 35% | 2.9x | 3.6x |
| 40% | 2.5x | 3.1x |
| 50% | 2.0x | 2.5x |
Most ecommerce stores have 25-35% true margins, meaning they need 3-4x ROAS just to break even — not to be profitable. That "amazing 3.5x ROAS" your agency celebrates might be barely covering costs.
- Step 1: Take last month's revenue
- Step 2: Subtract all variable costs (COGS, fulfillment, processing, return costs)
- Step 3: Divide the result by revenue = your true contribution margin
- Step 4: Divide 1 by that margin = your break-even ROAS
- Step 5: Compare to your reported ROAS. If reported ROAS is within 1x of break-even, you're likely not profitable after attribution overclaim.
What to Measure Instead of ROAS
ROAS isn't useless — it's just incomplete. Layer these metrics on top:
Formula: (Revenue - All Variable Costs) / Ad Spend
POAS tells you how much actual profit each dollar of ad spend generates. A POAS of 1.5x means $1.50 in profit per $1 spent. This is what ROAS should be but isn't.
Formula: Revenue - COGS - Fulfillment - Processing - Returns - Ad Spend
CMA tells you the total dollars left to cover overhead and profit after all variable costs including advertising.
Track ad spend against genuinely new customers only. Exclude returning customers from the calculation. Your true nCAC is usually 2-3x higher than blended CAC.
Formula: Total Revenue / Total Marketing Spend
MER is the blended, cross-channel version of ROAS. It accounts for the full marketing picture including organic and retention, not just individual platform claims.
| Metric | What It Tells You | Where ROAS Falls Short |
|---|---|---|
| POAS | Actual profit per ad dollar | ROAS ignores costs |
| CMA | Total dollars available for overhead | ROAS doesn't show absolute numbers |
| nCAC | True cost to acquire a new customer | ROAS blends new and returning |
| MER | Blended marketing efficiency | ROAS is per-platform, overclaimed |
The Agency Problem: Why Nobody Tells You This
"Agency keeps bragging about ROAS numbers but my profits haven't changed. I'm paying them $3k/month and I can't tell if they're actually helping."
— Source: r/ecommerce (156 upvotes)
Agencies optimize for ROAS because that's what they can control and report. They don't have access to your COGS, fulfillment costs, or return rates — so they can't optimize for profit even if they wanted to.
This creates a misalignment:
- Agency targets 4x ROAS and celebrates when they hit it
- Your break-even ROAS is 3.8x (which they don't know)
- The "successful" campaign generates 5% profit margin before overhead
- You pay the agency $3,000/month from that 5%
The fix isn't firing your agency. It's sharing your break-even ROAS and asking them to optimize for profit-aware targets. Give them a target ROAS that includes a profit buffer, not just the platform default.
Better yet, track POAS yourself so you can evaluate campaigns on profit, not revenue. This requires connecting your ad spend data to your true cost data — which is exactly where most stores struggle because the data lives in different systems.
AI analytics agents like Niblin bridge this gap by connecting ad platform data to actual order economics. Instead of celebrating a 4x ROAS that barely breaks even, you see profit on ad spend in real time — so you scale campaigns that make money and cut campaigns that look good but bleed cash.
Stop optimizing for revenue when you need profit.
Niblin connects your ad platforms, store data, and cost structure to show Profit on Ad Spend — not just ROAS. Ask "which campaigns are actually profitable?" and get a real answer.
Start Free Trial — Setup in 15 Minutes
Key Takeaways
- ROAS measures revenue per ad dollar, not profit — a 4x ROAS with 25% margins barely breaks even
- Platform attribution inflates ROAS by 20-40% due to overclaiming and view-through conversions
- Returns, discounts, and returning customer mix all inflate ROAS without adding profit
- Break-even ROAS = 1 / true contribution margin — most stores need 3-4x just to break even
- POAS (Profit on Ad Spend) is the metric that actually predicts your bank balance
- Share your break-even ROAS with your agency so they optimize for profit-aware targets
- MER gives you the blended, cross-channel picture that per-platform ROAS cannot
Frequently Asked Questions
Why is my ROAS high but I'm not profitable?
ROAS measures revenue per ad dollar, not profit. After subtracting COGS, fulfillment, payment processing, returns, and overhead from that revenue, there may be little or nothing left. Calculate your true contribution margin to find your break-even ROAS.
What ROAS do I need to be profitable?
Divide 1 by your true contribution margin. With 30% margins, you need 3.3x ROAS to break even. With 25% margins, 4x. Add 25% above break-even for a healthy profit buffer. Most stores need 4-5x ROAS for meaningful profit.
Is ROAS a vanity metric?
Not entirely — ROAS is useful for comparing relative campaign performance. But it's misleading as a profitability indicator because it uses revenue instead of profit and relies on inflated platform attribution. Layer POAS and MER on top of ROAS for the full picture.
How do I calculate Profit on Ad Spend (POAS)?
Subtract all variable costs (COGS, fulfillment, processing, return reserve) from revenue, then divide by ad spend. A POAS of 1.5 means you make $1.50 in contribution profit per $1 of ad spend.
Why does Meta show different ROAS than my actual numbers?
Meta's attribution window (7-day click, 1-day view by default) counts conversions that may have happened organically. View-through attribution is especially inflated. Compare Meta-reported revenue to actual Shopify revenue attributed to those campaigns for the real number.
Should I tell my agency my break-even ROAS?
Yes. Most agencies optimize for platform ROAS because they don't know your cost structure. Sharing your break-even ROAS and target profit margin lets them set meaningful targets instead of chasing a revenue number that doesn't reflect your business economics.