How to calculate break-even ROAS, step by step
Break-even ROAS = 1 ÷ contribution margin. That is the whole formula. Everything difficult about it lives inside the margin: what one unit really costs landed (tariffs included), what each order costs to process, and what returns quietly take back. This walkthrough builds the number for one real SKU — the same worked example that runs live in the break-even ROAS calculator.
Step 1 — Start from what the customer pays
Our SKU is a knit tee selling at $49. Every percentage below is a share of this number, which is why a percentage-point of fees costs more than it looks on higher-priced products.
Step 2 — Land the unit, duty included
Landed cost is what one unit costs to get into sellable position: factory price, freight, packaging, clearance — and duty. Ours: $9 FOB, $2.40 inbound freight, $0.40 dutiable packaging, $0.60 clearance. Without any duty that lands at $12.40.
Duty is charged on the customs value — FOB plus dutiable packaging, here $9.40 — not on your selling price and not on freight. A knit tee from China carries 36.5% combined in 2026 (16.5% MFN + 7.5% List 4A + 12.5% forced labor Section 301), which adds $3.43 of duty and lands the unit at $15.83. The landed cost calculator does this arithmetic, and the import tariff calculator shows how the layers stack for your origin and category.
Step 3 — Subtract what every order costs
This SKU sells on its own checkout, so the platform fee is 0% — on a 15% marketplace that single line would move every number below, which is exactly why the calculator makes it an input. What remains: payment processing (2.9% + $0.30), fulfilment shipping ($5.50 per order), and returns. Returns are the one sellers forget: at a 6% return rate with the goods unrecoverable, six in every hundred orders refund the revenue and keep the cost.
Step 4 — Divide
Contribution margin = (price − landed cost − per-order costs − return drag) ÷ price. For this SKU that is 46.96% with duty, 53.96% without. Then:
Break-even ROAS = 1 ÷ contribution margin. Here: 1 ÷ 0.4696 = 2.13x with duty; 1 ÷ 0.5396 = 1.85x without. The tariff alone raised the floor by 0.28x and ate roughly 13% of the ad budget each order could support — $26.44 max CPA became $23.01.
Step 5 — Aim above it, never at it
The floor is where profit is exactly zero. Running at 2.13x means working for free; one refund streak or CPM spike puts you under. A common practice is a buffer of around 1.5× the floor as the actual target — for this SKU about 3.19x. The target ROAS calculator does that arithmetic, and the break-even CPA calculator turns the same margin into the most you can pay per order.
Break-even ROAS at every margin
Because the formula is a reciprocal, the floor is fixed by contribution margin alone — price, channel and category only matter through the margin they leave behind. The table is the same arithmetic for the margins most DTC products actually land in, with the third column as the same fact in dollars: how much of every $100 of revenue you can hand to the ad platform before the order loses money.
| Contribution margin | Break-even ROAS | Ad spend per $100 revenue |
|---|---|---|
| 20% | 5.00x | $20 |
| 25% | 4.00x | $25 |
| 30% | 3.33x | $30 |
| 35% | 2.86x | $35 |
| 40% | 2.50x | $40 |
| 50% | 2.00x | $50 |
| 60% | 1.67x | $60 |
| 70% | 1.43x | $70 |
Two things to notice. Dropping from 25% to 20% margin moves the floor a full turn, from 4.00x to 5.00x; climbing from 60% to 70% moves it only 0.24x. Every point of duty, fee or return rate hurts most exactly where margins are already thin — which is why “what is a good ROAS” has no answer until the margin is known.
The same SKU on a marketplace
Every number so far assumed the tee sells on its own checkout with no platform commission. Sell the identical unit through a marketplace that takes 15% and leave every other input where it was. Contribution margin falls from 46.96% to 31.96%, the floor rises from 2.13x to 3.13x, and the most you can pay to acquire one order drops from $23.01 to $15.66.
That is a 1.00x move from a fee of only 15 points, against the 0.28x the 36.5% tariff added in step 4. The two are not directly comparable as multiples — the floor is a reciprocal, so each cost added on top of the last moves it further than it would alone — but the dollars are: the referral fee takes $7.35 from every order because it is charged on the full $49.00 selling price, while the duty takes $3.43 because it is charged on the $9.40 customs value. A percentage of price is always more expensive than the same percentage of cost, and the floor is where you find out by how much.
The floor as a percentage, and as a dollar amount
Google Ads takes target ROAS as a percentage, so a 2.13x floor is entered as 213% — the multiple times 100. Meta’s ROAS goal takes the multiple as it is. Either way the number you bid should be the target, not the floor: with the 1.5× buffer from step 5, that is 319% in Google Ads or 3.19x in Meta.
The same margin in dollars is break-even CPA: price × contribution margin, here $23.01. It is the most one order can cost to acquire before it loses money, and it is the figure to hold against cost per purchase in your reporting. ROAS and CPA are not two metrics — they are one margin, read in two units.
The mistakes that produce a wrong floor
- Using gross margin instead of contribution margin. Gross margin ignores fees, fulfilment and returns — it flatters the floor by a full multiple on typical DTC economics.
- Computing duty on the selling price. Duty applies to customs value (FOB + dutiable packaging). On this SKU that error would inflate the duty from $3.43 to over $17.
- Leaving returns out. Returns hit the margin, and the floor is the margin’s reciprocal — so the error is bigger than the return rate. On this SKU, skipping the 6% return drag understates the floor from 2.13x to 1.89x: a 0.24x gap, about 11% of the floor.
- Trusting a spreadsheet cell from last year. US tariff rates moved twice in the last year and the legal ground under them shifted once more. A static duty number is wrong within months — the case against the spreadsheet is mostly this.
Sources
Duty rates from the published HTS and Federal Register notices — the full layer-by-layer documentation is on the methodology page. Estimates only; your customs broker’s classification governs. Rates last updated: 2026-08-22.