Free tool
The ROAS you have to beat, after everything comes out.
An ad platform reports the revenue its pixel saw. It never subtracts your cost of goods, your shipping, your payment fees or the orders that come back. Put those in and you get the number a campaign actually has to clear — and the target that leaves you a margin.
No signup · nothing leaves your browser2.49×
On the revenue the platform reports. Below this, the campaign is buying orders that cost more than they leave behind.
- Contribution per order, before ad spend321.28
- Contribution margin40.2%
- Orders you keep per 100 the platform reported88
- Target ROAS to keep that profit3.32×
There is room here: at a 10% profit target you need 3.32× on reported revenue, against a break-even of 2.49×.
contribution = (1 − return rate) × (order value × (1 − cost of goods % − fees %) − shipping) − return rate × 2 × shipping
break-even ROAS = order value ÷ contribution
What it assumes. A returned order refunds the revenue, recovers the goods and refunds the fees, but you pay shipping twice — out and back. If your returns cannot be resold, raise the cost-of-goods figure instead of the return rate. Everything is per order, in whatever currency you run.
The platform is grading itself on a number that precedes four deductions.
Ad spend comes off last. Cost of goods, payment processing, shipping and returns are subtracted before it, and none of them are visible to the system optimising your bids. That is why a campaign can hit its target on the platform's own dashboard and still lose money on every order it wins — the target was set against gross revenue.
One number makes the gap concrete: 19.3% of online sales come back [NRF, Oct 2025] — usually after the month you already reported, and the platform never retracts a conversion it has already counted. Every other deduction in the calculator above sits between reported revenue and the money you keep, which is why a target set on gross revenue is set against the wrong number. The returns side is worked through on the ecommerce page.
Marketplaces have it worse, because the field is usually wrong rather than incomplete: if conversion value passes gross transaction value, a reported 6× at a 13% take rate is 0.8× on the revenue you bank. The arithmetic and the fix are on the marketplaces page.
Checking what the platforms report against what your analytics recorded is the job Adgent calls ground truth: it reads Meta and Google alongside GA4 and Merchant Center. Cost of goods, shipping and returns stay on your side of the line — which is exactly what this page is for.
Break-even ROAS by margin and return rate.
Shipping excluded, so this is the clean version: break-even ROAS = 1 ÷ (contribution margin × (1 − return rate)). Read down your margin, across your return rate.
| Contribution margin | 0% returns | 10% | 20% | 30% |
|---|---|---|---|---|
| 20% | 5.00× | 5.56× | 6.25× | 7.14× |
| 30% | 3.33× | 3.70× | 4.17× | 4.76× |
| 40% | 2.50× | 2.78× | 3.13× | 3.57× |
| 50% | 2.00× | 2.22× | 2.50× | 2.86× |
| 60% | 1.67× | 1.85× | 2.08× | 2.38× |
The 20% column is highlighted because it is close to the online average, not because it is a recommendation. Use your own return rate — and use it per cohort, because a discount-led campaign and a full-price one rarely return at the same rate.
Three ways this number gets read wrong.
- Comparing it against the wrong revenue figure. Break-even ROAS here is stated against the revenue the platform reports, because that is the number the bid strategy optimises toward. If you compare it against net revenue you will double-count the returns.
- Using one return rate for the whole account. The campaigns that return hardest are usually the ones with the best reported ROAS: discount-led volume comes back more often than full-price demand. One blended rate hides exactly the campaign this calculation exists to find.
- Reading it across platforms as if the inputs matched. Meta and Google count a conversion over different windows with different models, so the same break-even means two different things on the two dashboards. Why the two ROAS figures are not comparable.
And the limit of this page, plainly: it is arithmetic on numbers you type. It does not know whether your conversion tracking is intact, whether the account has enough conversions to optimise on, or whether yesterday's ROAS has finished maturing. The first of those is a tracking check; the second you can do here in a minute with the conversion signal check; the third is what Adgent's Trust Gate refuses to guess at.
Break-even ROAS, answered.
What is break-even ROAS?
How do returns change break-even ROAS?
Is break-even ROAS the same as target ROAS?
Why is my platform ROAS higher than the ROAS in here?
Now run it against the real account.
The calculator works on the numbers you type. On your live accounts we read what Meta and Google report and what GA4 and Merchant Center recorded — read-only — and show you which winners depend on the gap between the two. Your cost of goods and return rate we cannot see: bring the break-even from this page and we will judge the account against it.
- Read-only — nothing is changed
- Meta and Google, plus GA4 and Search Console for context
- Findings you can check line by line in Ads Manager
The brief Adgent would write on day one, the leaks it found and what they are worth — and, where the data cannot carry a verdict, what it will not call yet and why.
Thanks — we’ve got it.
We’ll be in touch within a couple of working days.