What break-even ROAS actually means
ROAS (return on ad spend) is revenue divided by ad spend. A 4.0 ROAS means you got $4 of revenue for every $1 of ads. It says nothing about whether you made money — that depends entirely on your margin.
Break-even ROAS is the lowest ROAS you can run without losing money on each order. Below it, every sale digs the hole deeper. Above it, you profit.
Take a $39.99 product with $12.50 cost, $4.20 shipping and 2.9% + $0.30 in payment fees. Gross profit before ads is $21.83; a 3% return allowance takes it to about $21.18. That puts break-even ROAS at 1.89. Spend $10 on ads per order and you keep $11.18.
Now drop the price to $29.99 and change nothing else. Gross profit falls to $12.12, the return allowance takes it to $11.76, and break-even ROAS jumps to 2.55. Same product, same $10 ad spend — profit per order collapses from $11.18 to $1.76. This is the number most sellers never calculate, and it is why a "profitable" campaign can quietly bleed cash.
Why margin and ROAS must be read together
A 3.0 ROAS is excellent for a 60% margin product and catastrophic for a 15% margin product. Ad platforms optimise for ROAS because they get paid on spend — they have no idea what your margin is. You have to supply that constraint yourself, before you scale.
The one habit worth building: before you raise a budget, write down your break-even ROAS. If a campaign's ROAS is under that number, more budget makes the loss bigger, not the business.
Platform fee reference
Fee structures differ by category, region, plan and order value, and platforms change them. Treat this as a starting point, then confirm on the platform's own fee page.
| Platform | Platform fee | Payment processing | Watch out for |
|---|---|---|---|
| Shopify | 0% | ~2.9% + $0.30 | Subscription is a fixed cost, not per order |
| Etsy | ~6.5% | ~3% + $0.25 | Listing fees and offsite ads stack on top |
| Amazon | ~15% | 0% | FBA fulfilment fees are a separate line |
| WooCommerce | 0% | ~2.9% + $0.30 | Hosting and plugins are your fixed cost |
| TikTok Shop | varies | varies | Commission differs sharply by market and category |
Three costs sellers routinely forget
- The fixed part of payment processing. $0.30 on a $12 order is 2.5% — nearly doubling a "2.9%" rate. Small baskets get eaten alive.
- Return rate. A 5% return rate does not remove 5% of revenue; it removes the full unit cost of the returned item plus the shipping both ways.
- Discounts. A 20% code reduces your price but not your COGS. It cuts margin roughly twice as fast as it looks.
Frequently asked questions
What is a good ROAS?
There is no universal good ROAS — only a good ROAS for your margin. If your break-even ROAS is 1.9, then 2.5 is healthy and 4.0 is excellent. If your break-even is 4.5, then a 3.0 ROAS is losing money on every order. Calculate the break-even number first, then judge.
How do I calculate break-even ROAS?
Divide your selling price by your gross profit before ad spend. Gross profit is the price minus product cost, shipping and all platform and payment fees. The result is the ROAS at which ad spend exactly consumes your profit.
Should I include shipping in the calculation?
Yes, if you pay it. Include the actual amount you are charged for fulfilment and delivery. If the customer pays shipping separately, add that amount to the selling price field so both sides of the equation stay honest.
Does this calculator work for Etsy and Amazon?
Yes. Pick the preset to load typical fee levels, then overwrite them with the exact rates from your own seller dashboard. Amazon's referral fee varies by category, and Etsy's offsite ad fees are conditional, so your real numbers will usually differ from any preset.
Why does my net margin look lower than my spreadsheet?
The two most common reasons are the fixed component of payment processing and a return rate applied to revenue rather than to unit cost. This tool applies the return rate as a reduction of gross profit, which is closer to reality than removing the same percentage of sales.
Is my data saved anywhere?
No. Every calculation runs inside your browser. Nothing is transmitted, stored or logged, and there is no account to create.