Breakeven ROAS Calculation: Include COGS, Shipping and Fees
Breakeven ROAS equals 1 divided by contribution margin, where contribution margin is the share of the selling price left after COGS, shipping, packaging, and payment processing fees. Below that ROAS, every ad-driven sale loses money before overhead is even counted. For a $49 product with $18 COGS, the breakeven ROAS is 2.27, not the 1.58 that gross margin alone suggests.
Margin vs. markup
ROAS is revenue divided by ad spend. Profit on ad-driven sales is therefore ROAS × contribution margin − 1, per dollar of ad spend. That expression hits zero when ROAS = 1 ÷ contribution margin, which is the whole breakeven formula.
The root cause of most wrong breakeven numbers is the margin input. Ad platforms report revenue, not profit, and the margin figure that most stores use is a headline gross margin that ignores per-order costs such as shipping and fees. A margin that is too high produces a breakeven ROAS that is too low, and campaigns that look profitable lose money on every order.
Why a 50% markup equals a 33.3% gross margin
Markup is measured against cost. Margin is measured against price. A product that costs $100 and sells for $150 has a 50% markup ($50 ÷ $100) but a 33.3% margin ($50 ÷ $150).
The conversion formulas are:
- Margin = markup ÷ (1 + markup)
- Markup = margin ÷ (1 − margin)
This matters because the breakeven formula uses margin. Using the 50% markup as if it were margin gives a breakeven ROAS of 2.0, while the true figure on that product is 3.0 (1 ÷ 0.333). The error is a full ROAS point.
Breakeven ROAS = 1 ÷ contribution margin
Contribution margin is the percentage of price that remains after every cost that scales with an order. Gross margin only subtracts product cost, so it is always equal to or higher than contribution margin. Breakeven ROAS should be built on the lower number.
To check the margin math with the Profit Margin & Markup Calculator, enter a cost of $15 and a target margin of 40%. The output selling price is $25 (15 ÷ 0.60). Entering a cost of $18 and a selling price of $49 returns a 63.3% margin and a 172.2% markup. That 63.3% is the headline margin, and it is the wrong input for breakeven ROAS.
Building contribution margin
Contribution margin is built by subtracting every variable cost from the selling price, then dividing the remainder by the selling price. The variable costs for a typical store are:
- COGS: landed product cost, including inbound freight and duties
- Shipping: the carrier charge you pay per parcel, including fulfillment fees if outsourced
- Packaging: box, mailer, inserts, labels
- Payment processor fee: a percentage of the order total plus a fixed fee per transaction
The processor fee is the cost most often entered wrong. It has two parts: price × percentage + fixed fee. With the standard published US card rate of 2.9% + $0.30, a $49 order costs $1.42 + $0.30 = $1.72. Check your own processor’s rate, since international cards and currency conversion can add more.
Worked example with a table of three price points
Assume the same product at three prices, with $18.00 COGS, $6.50 shipping, $1.20 packaging, and a 2.9% + $0.30 processor fee. Free shipping is absorbed in every row.
| Selling price | COGS | Shipping | Packaging | Processor fee | Contribution ($) | Contribution margin | Breakeven ROAS | Gross-margin ROAS (wrong) |
|---|---|---|---|---|---|---|---|---|
| $39 | $18.00 | $6.50 | $1.20 | $1.43 | $11.87 | 30.4% | 3.29 | 1.86 |
| $49 | $18.00 | $6.50 | $1.20 | $1.72 | $21.58 | 44.0% | 2.27 | 1.58 |
| $59 | $18.00 | $6.50 | $1.20 | $2.01 | $31.29 | 53.0% | 1.89 | 1.44 |
To reproduce a row in the Profit Margin & Markup Calculator, add up the total cost and enter it with the price. For the $49 row, the total cost is $27.42 ($18.00 + $6.50 + $1.20 + $1.72). Entering a cost of $27.42 and a price of $49 returns a 44.0% margin and a 78.7% markup. Divide 1 by 0.440 and the breakeven ROAS is 2.27.
Breakeven is not the same as a target. To earn a 15% profit margin on ad-driven revenue at the $49 price, subtract 15 points from the contribution margin: 44.0% − 15% = 29.0%. The target ROAS is 1 ÷ 0.29, or about 3.4.
Moving the breakeven point
Breakeven ROAS drops when contribution per order rises faster than costs. Shipping and the fixed processor fee are paid once per order, not once per item. Adding items to the same parcel spreads those costs over more revenue.
Free-shipping thresholds and bundle pricing to raise average order value
A free-shipping threshold works when it sits slightly above the typical cart. With a $49 hero product, a $64 threshold leaves a $15 gap that a low-cost add-on can close. The threshold changes behavior only if the add-on’s incremental margin is positive after the extra packaging and the percentage fee.
Here is the comparison, assuming the accessory ships in the same parcel at no extra carrier cost:
| Order | Price | Total variable cost | Contribution | Contribution margin | Breakeven ROAS |
|---|---|---|---|---|---|
| Hero product only | $49 | $27.42 | $21.58 | 44.0% | 2.27 |
| Hero + $15 accessory ($6 COGS, +$0.30 packaging) | $64 | $34.16 | $29.84 | 46.6% | 2.14 |
The accessory adds $15.00 in revenue and about $8.26 in contribution. The fixed $0.30 processor fee and the $6.50 shipping charge are not paid twice, which is why breakeven ROAS falls from 2.27 to 2.14.
Using bundle suggestions to test margin impact
Generating the add-on list is the slow part. Enter the product (for example, “yoga mat, $49”) into the Upsell & Cross-Sell Recommendation AI and review the suggested companion items, such as a carry strap, a cleaning spray, or a yoga block. Each suggestion is a candidate for the threshold gap.
Then test each candidate in the Profit Margin & Markup Calculator before you promote it. A $6 accessory sold at $15 returns a 60% margin and a 150% markup, which clears the bar. An accessory with $11 COGS sold at $15 returns a 26.7% margin and does not: after packaging and the percentage fee it adds under $3 in contribution.
The Ecommerce Sales Booster covers the other half of the test. Use it to generate tactics for raising average order value, such as tiered thresholds and checkout add-ons, and record the resulting price in the margin calculator. Adopt a tactic only if the new breakeven ROAS is lower than the current one.
Common calculation errors
Ignoring returns rate and refund-related fees
A refund returns the revenue but not all of the costs. The outbound shipping and packaging are spent, and many processors, including Stripe, do not return the
Frequently asked questions
What is a good breakeven ROAS for ecommerce?
There is no universal number. Breakeven ROAS equals 1 divided by contribution margin, so a store with a 44% contribution margin breaks even at 2.27, while a store with a 30% margin needs 3.33 before ads fully pay for themselves.
What is the difference between margin and markup?
Markup is profit divided by cost; margin is profit divided by price. A 50% markup equals a 33.3% margin. Breakeven ROAS uses margin, so confusing the two understates the ROAS needed and makes unprofitable campaigns look healthy in the dashboard.
Should breakeven ROAS include returns?
Yes. Refunded orders still cost outbound shipping, packaging, and usually the original processor fee. Subtract expected return losses from contribution per order, then divide average order value by that figure. A 10% return rate moves a 2.27 breakeven to about 2.74.