Break even ROAS is the return a sale has to make before it stops losing money. Clear it and the order has covered its own costs and nothing beyond them.
Most stores work it out from gross margin, or borrow a benchmark from a blog. Both come out too low, and a target set below the real floor will keep approving spend for a year while every report says the account is healthy.
This article covers how to work the number out from your own costs, where the inputs sit in Shopify, how to turn the floor into a target that funds the business, and how to set a separate target for each margin band in your catalog.
Why ROAS targets go wrong
|
What you are seeing |
What is usually behind it |
Section |
|
ROAS looks healthy, profit does not |
The target came off gross margin |
Use contribution margin, not gross margin |
|
You hit the target and still lost money |
Break even was treated as the goal |
Set a target above break even |
|
Bestsellers scale, nothing else works |
One target across products with different margins |
One target across the catalog loses money |
|
Smart Bidding keeps pushing your thinnest lines |
The platform optimizes to revenue, and nothing in the feed tells it margin |
Set targets by margin band |
|
The number worked in January, not in June |
Costs moved, the target did not |
When to recalculate |
The break even ROAS formula
Break even ROAS = 1 ÷ contribution margin before ad spend
At a 40 percent contribution margin, break even is 2.5. At 25 percent it is 4, and at 60 percent it drops to 1.67.
Break-even ROAS at contribution margins from 15 to 65 percent.
Before ad spend matters. Some finance teams run contribution margin at a level that already has marketing deducted, often called CM3. Put that into the formula and you count your ad cost twice, which gives you a floor far higher than the real one. The figure you want is what the order leaves after every variable cost except advertising.
The formula is the easy part. The input is where stores go wrong.
Use contribution margin, not gross margin
Gross margin covers the product cost and stops there. Everything that happens between the order landing and the money clearing your account comes out below that line, and it adds up faster than most owners expect.
Take an $80 order. Use the same order value your ad platform records as conversion value, including shipping charged to the customer and tax if that is how your tracking is set up, so both sides of the ratio are measuring the same thing.

Order value down to contribution, with the running balance after each deduction.
|
Order value |
$80.00 |
|
Cost of goods |
−$30.00 |
|
Pick, pack and shipping |
−$9.00 |
|
Payment processing |
−$2.62 |
|
Returns reserve |
−$4.00 |
|
Contribution |
$34.38 |
|
Contribution margin |
43% |
Gross margin on that order is 62.5 percent, so the gross margin version of the formula says you break even at 1.6. The real floor is 2.33.
Every sale returning between those two numbers loses money while the dashboard reports a win. We have watched accounts sit in that gap for a full year and nobody caught it, because nothing in the ad platform is designed to tell you.
Four inputs decide the number:
-
Landed cost per unit. Supplier price, inbound freight, duties and handling, built into a single landed cost figure per product. This is the number that belongs in Shopify's Cost per item field, not the supplier invoice price on its own.
-
Outbound shipping and 3PL fees. Per order, at real carrier rates. A flat estimate here is usually the single biggest error in the whole calculation.
-
Payment processing. Read it off a recent statement, since the effective rate moves with plan and country.
-
Returns. Use your own return rate. A store at 3 percent and a store at 15 percent have different floors on identical products.
Discounts come out before any of it. So a product that spends half the year inside a 20 percent off bundle has two break-even numbers, and the promo one is higher.
Where to find the inputs in Shopify
All of this runs on one field. Cost per item sits on each product variant, and it feeds the profit reports in Analytics. Enter it everywhere, and the profit reports start working. Leave gaps, and they mislead you without ever flagging it.

One product with nine drop options and three hitch options, each variant priced separately.
Two things before you trust what comes back:
-
If Cost per item is blank on part of the catalog, the profit report covers only the products that have it, with no warning that the rest are missing. Fill the field everywhere first.
-
Most stores put the supplier invoice price in there and stop. Add freight, duties and handling so the field carries landed cost, and Shopify's reported margin lands much closer to your real one.

The gross profit report filtered to variants where cost is recorded, with net sales, cost of goods sold, gross margin and gross profit per variant.
Set a target above break even

To work out what your current campaigns are actually returning, the ROAS calculator does that arithmetic in a few seconds.
Break even covers the order and nothing else. Rent, salaries, software and the agency retainer all still have to be paid out of whatever is left.
Target ROAS = 1 ÷ (contribution margin − profit requirement)
On that $80 order, asking the ads to leave 10 points behind gives 1 ÷ (0.43 − 0.10), or 3.03.
-
Below 2.33, the order loses money
-
Between 2.33 and 3.03, the ads pay for themselves and nothing else
-
Above 3.03, the ads fund the business
You will see a shortcut going around that says run 20 to 50 percent above break even. On a mid-margin catalog it lands close enough to be useful. On a thin one it falls apart, which is the next section.
Google will also offer you a target of its own, scored and waiting in the recommendations panel. It is built from auction data and has no idea what your contribution margin is.

The Google Ads recommendations panel, with a suggested ROAS target and its optimization score.
One target across the catalog loses money
A single account-wide number assumes every product carries the same margin. Few catalogs do, and the gap between the top and bottom of most of them is wider than people assume.
Three bands, same arithmetic, 10 point profit requirement:
|
Band |
Contribution margin |
Break even ROAS |
Target ROAS |
|
Accessories and add-ons |
55% |
1.82 |
2.22 |
|
Core range |
43% |
2.33 |
3.03 |
|
Bulky and low-margin |
22% |
4.55 |
8.33 |

Break even and target ROAS for each band, on one scale.
Run a flat 3.0 across all three and two things go wrong at the same time.
-
Accessories get starved. They clear the profit requirement at 2.22. Holding them to 3.0 caps spend on orders that were already clearing it, so profitable volume you could have bought never gets bought.
-
Bulky lines lose money on every sale. They do not break even until 4.55. Spending against a 3.0 target is a loss, and the volume buries it inside a blended average that still looks fine on the monthly report.
The third row is where this gets uncomfortable. At 22 percent margin, asking for 10 points of profit needs an 8.33 return. Almost nothing delivers that on cold traffic, and no amount of creative testing will get you there.
The options are a price rise, cheaper shipping, a smaller profit requirement on that band, or pulling those products out of paid acquisition and letting email and organic carry them. That last one is unpopular and it is usually right.
Worth saying what the accessories row does not mean. A 55 percent margin on a $15 add-on contributes about $8 an order, against roughly $34 on an $80 core product at 43 percent. The high-margin band earns a lower target, not a bigger budget.
Set targets by margin band
Three or four bands is plenty. Band by contribution margin rather than by category, because most categories contain both ends.
1. Sort the catalog
Pull contribution margin per product, then split into high, middle and thin. Anything you cannot calculate goes in the thin band until you can.
2. Set a target per band
Apply the target formula to each band's margin using the same profit requirement. The spread between band targets tends to be wider than people expect.
3. Label the products
In Google Shopping the band goes into a custom label on the feed. Most accounts use custom_label_0. The field is arbitrary, so any spare label works as long as the whole account agrees on which one.

custom_label_0 set to a margin band in the Additional details panel of a Merchant Center product.
4. Split the campaigns
Shopping campaigns split by label, each carrying its own target. Meta catalogs take custom labels too, so the same band value can drive a product set per band, with its own ad set and its own target. What Meta will not do is read margin on its own, and a single Advantage+ campaign spanning your whole catalog will optimize across bands whatever you label them. Keeping the bands separate means keeping them in separate campaigns.
Google also lets you push bids toward a label directly, through value rules that boost high-margin products by a set percentage. Useful as a second layer, though it does not replace separate targets.
What break even ROAS will not tell you

-
Which channel earned the sale. This is a cost calculation. Attribution is a different problem and the formula does not touch it.
-
Whether your platform ROAS is real. Platforms credit conversions using the same model they bid with. That often reads generous, though consent gaps and lost signal can push it the other way, and you cannot see by how much from inside the platform. Check the floor against new-customer revenue over total ad spend rather than against the blended figure, which includes organic and repeat orders your ads did not win.
-
What a repeat purchase is worth. The calculation is first-order only. Plenty of subscription and consumable brands run first orders below break even on purpose and make it back on orders two and three. Fine, as long as the repeat data actually supports it.
-
Your new against returning split. If returning customers sit inside ad-attributed revenue, your first-order economics are worse than the blend suggests, and your customer acquisition cost is higher than the account is reporting.

Total sales split by new and returning customers, by month, in Shopify Analytics.
When to recalculate
Any time a cost input moves, which rarely lines up with a quarterly review:
-
New supplier pricing, or a freight increase
-
A carrier rate change
-
A rising return rate
-
Any promotional period, which needs its own targets

The same order’s floor under four different cost conditions
A target built on last quarter's costs keeps approving spend that no longer clears, and nothing in the account will raise its hand about it.
Start with one order
Put landed cost into Cost per item across the catalog. Build the deduction table for one order at your average value. Band the catalog by the contribution margin that comes out, three bands, and set a target per band from your own profit requirement.
Then check last month's paid orders against those bands. On most mixed catalogs the campaign that ranked best on ROAS is not the one that produced the most contribution, and that single comparison is usually what finally gets the account structure changed.
If the margin data is not there to run any of it, you have an analytics and reporting problem to fix before you touch targets.