Two Meta campaigns can each report 3.0x ROAS on $5,000 of spend and $15,000 of sales. One can make money while the other loses it.
The difference is contribution margin, not a trick in Ads Manager. In a worked serum-and-bundle comparison, the serum breaks even at 1.71x; the bundle needs 4.76x. Both can sit at 3.0x on a benchmark chart, looking equally respectable. Only one clears its costs. That is why a published 1.88x median Meta ROAS cannot tell you whether your campaign is healthy. Your own break-even ROAS sets the target.
What the industry table can tell you
Triple Whale’s August 2025–July 2026 cut of more than 40,000 brands reports these Meta medians. I keep the table handy for context, but I do not use its ROAS column as a profitability target.
| Metric | Reported median | What the figure cannot tell you |
|---|---|---|
| ROAS | 1.88x | Whether your margin covers the ad spend |
| CPA | $38.99 | Whether the acquired order stays sold |
| CPM | $15.06 | Whether those impressions produce profitable orders |
| Conversion rate | 1.53% | What remains after fulfilment and returns |
The spread matters more than the middle: Sports and Outdoors is at 2.35x and Business Supplies at 2.34x, while Health and Wellness is at 1.44x and Media and Publishing at 1.13x. In the same cut, 12 of 17 verticals improved year over year while CPMs rose 13.24%. Those figures describe what brands reported in that cohort and period. They do not say what any one brand can afford to pay for a sale.
Even the headline shifts with the sample. A separate Triple Whale cohort covering calendar 2025 put median ROAS at 1.93x across about 35,000 ecommerce brands. Neither median is wrong merely because it differs from the other. But changing the brands and dates changes the reference point before you have touched your campaign. Changing what counts as attributed revenue makes comparison harder still.
Use the table for market context, not permission to spend. Before you decide whether 1.88x is good or bad, you need three definitions the table cannot supply for your business.
Why one reported ROAS is not another
Attribution: which sales get credit?
Meta’s default attribution setting combines seven-day click, one-day engaged view and one-day view. A link click followed by a purchase can count. So can an eligible engagement or an impression followed by a purchase within its respective window. Those are different kinds of evidence, even when Ads Manager puts the resulting revenue in one column.
I used to report the default number without splitting it. I was wrong. In one skincare audit, reported ROAS went from 2.1x on the default setting to 1.29x on seven-day click only. The same audit calculated 1.2x on an incremental basis and 1.07x on its P&L acquisition measure. Those last two figures use different methods; they are not simply extra attribution settings you can select in Ads Manager. The point is narrower, and useful: the definition changes the answer.
The audit also compared campaigns that showed 1.44x versus 1.23x reported ROAS but 0.8x versus 1.1x incremental return. On reported ROAS, the first campaign wins. On that incremental measure, it loses. Scale the reported winner without checking the basis for the number and you may scale the wrong campaign.
Meta’s Attribution Settings breakdown lets you inspect click and view-related credit separately. Ask which window a benchmark used before you put its ROAS next to yours. If the table does not say, do not treat the two figures as interchangeable.
Revenue: what value is in the numerator?
Ads Manager reports the purchase value sent to it. Your net sales and your contribution after costs are different numbers. Returns may still sit in platform revenue because native Meta tracking does not subtract them. Shipping charges and VAT can also change what a reported purchase value represents. The right comparison uses the same revenue basis on both sides.
Consider the VAT example: EUR80 in net revenue leaves EUR31 in contribution after product, shipping and fees. That is a 38.75% contribution margin and roughly 2.6x break-even ROAS when both revenue and the target are expressed net. At 19% VAT, the corresponding platform gross value is EUR95.20, making the comparable gross-value target about 3.1x. Compare a 2.9x gross platform result with the 2.6x net target and you appear to clear break-even. You have compared two different numerators.
Returns create the same kind of gap. In the draft’s example, $25,000 in gross sales less $2,100 in returns and $450 in refunds leaves $22,450. On the same ad spend, a 4.03x gross ROAS becomes about 3.62x after those deductions. That is not an attribution adjustment or a new campaign result. It is what happens when the revenue figure changes. For a business with substantial returns, the distinction can decide whether an apparent winner pays for itself.
Match gross to gross or net to net. Then subtract the costs that determine whether the sale was worth buying.
Margin: what remains to pay for the ad?
Break-even ROAS is 1 divided by contribution margin before ad spend. Contribution is revenue left after costs such as COGS, shipping and fulfilment, payment fees and expected returns; the formula and worked cases show why the target rises as that margin falls.
Gross margin is not a substitute. A product can look comfortable before shipping, fees and returns, then have far less room for acquisition. I see that confusion more often than I see an account where the missing answer is another industry-average slide. Write down the contribution margin first. The ROAS target follows from it.
The break-even table to put beside your campaign report
These break-even figures are arithmetic examples, not industry norms. The profiles show why the same reported result can demand opposite decisions.
| Illustrative profile | Contribution margin before ads | Break-even ROAS | What 2.5x ROAS means |
|---|---|---|---|
| Higher-margin product | 70% | 1.43x | Above break-even before overhead |
| Retail product after variable costs | 35% | 2.86x | Below break-even |
| Thin-margin reseller product | 20% | 5.0x | Well below break-even |
At 35% contribution, 1 ÷ 0.35 is about 2.86. That is the ad-dollar break-even point before overhead. A 1.88x industry median would not rescue a campaign at that margin. Meanwhile, 1.8x can clear the ad-dollar threshold for the higher-margin profile. Calling one figure ‘above average’ and the other ‘below average’ reverses what matters.
The target also changes when the offer changes. In one worked discount example, a 2.6x full-price net break-even becomes 4.2x at 20% off and 7.4x at 30% off. Price drops; product cost does not drop with it. That does not mean every discount has those exact effects. It means reusing a full-price target during a promotion can make a loss look like a stable campaign.
Recalculate when your margin changes. Do not ask last month’s ROAS target to judge this month’s discounted orders.
A 2.1x screenshot, taken apart
Say an account spends $20,000 in a month and Ads Manager shows $42,000 in purchase value: 2.1x platform ROAS. I would not turn that into a profit claim yet. I would ask what portion belongs to click attribution, what portion survives returns, and whether the break-even target uses the same revenue definition.
Here is an illustration of those checks, not a claim that every account has these adjustments:
| Check | Illustrative value | What it establishes |
|---|---|---|
| Platform purchase value | $42,000 on $20,000 spend, or 2.1x | What Ads Manager reports |
| If click-only falls in the proportion seen in the skincare audit | About $25,800, or 1.29x | How much a different attribution basis could move the figure |
| If that amount then loses 10% to returns | About $23,200, or 1.16x | How netting returns could move it again |
The click-only proportion comes from one audit; the return rate here is an illustrative assumption. Neither establishes this hypothetical account’s true incremental revenue. Nor should you apply a separate VAT haircut blindly: the VAT example is a warning to put your revenue and target on the same basis, not a universal adjustment to stack on every report.
I want two views each week. One is campaign ROAS under a consistent click-only attribution setting, beside the default setting so I can see the difference. The other is store-wide net revenue and contribution after returns and variable costs, alongside Meta spend and any management cost. That second view tells me whether the business is keeping money as spend changes. It does not, by itself, prove Meta caused every sale in the store. I use the two views to find what needs investigating, not to pretend a platform screenshot is a P&L.
Give the manager a break-even rule, not an industry rank
I would stop briefing a Meta manager to ‘beat the benchmark’. Give them the margin calculation, say whether the target uses gross or net revenue, and specify the attribution setting. Then make the scale, hold or rebuild decision against that basis.
For example, if contribution margin after COGS, shipping, fees and expected returns is 38%, the formula puts net-revenue break-even at about 2.63x. If your reporting includes VAT, work out the corresponding gross-value target rather than comparing a gross result with 2.63x. The VAT worked example shows why those targets differ. A manager can then set a buffer above break-even for scaling and keep that rule visible when discounts or return rates move. The buffer is a management choice, not a number an industry table can choose for you.
The weekly report does not need theatre. It needs four lines with stable definitions:
- Spend and platform ROAS by attribution: show click-only beside the default so view-related credit is visible.
- Net revenue: show what remains after returns and refunds, rather than treating native tracked purchase value as final sales.
- Contribution: subtract variable costs and compare revenue and break-even on the same gross or net basis.
- Decision: scale, hold or rebuild against the current margin and offer, because discounts can move break-even sharply.
If someone only sends an Ads Manager screenshot next to an industry column, they are reporting the screenshot, not the business. That is the test I would apply to an agency or an in-house team. It is also why I prefer groas’s flat-fee, always-on approach to a percentage-of-spend management model: the operator’s fee should not rise simply because spend rises. The account still has to clear its own break-even number. A different billing model does not repeal the arithmetic.
The same discipline applies if you sell leads instead of products, though the decision metric changes. Take the draft’s illustrative $4,000 job, 50% contribution margin and 20% close rate. A closed job contributes $2,000 before acquisition cost; a quoted opportunity with a 20% chance of closing has $400 of expected contribution. If half of leads become quotes, that is $200 of expected contribution per lead. A $160 cost per lead clears that simple threshold, provided those conversion rates and costs hold. Report cost per quoted and closed job too. A falling lead cost means little if fewer leads reach either stage.
For a product campaign, the final decision is even shorter. Write down your contribution margin, calculate 1 ÷ that margin, and put the revenue basis and attribution setting beside the result. At 35% contribution, that is about 2.86x break-even on the matching revenue basis. A campaign below it needs a change, whatever the industry median says. A campaign above it earns a closer look at whether the sales are real, retained and worth scaling. That is the number your Meta manager has to beat.

