Break-even ROAS for a Shopify store: the formula and how to find yours

By the AdZoom team · Published

Break-even ROAS is the return on ad spend at which a campaign's revenue pays for the orders it brought in and for the ads, with nothing left over. Below it the campaign loses money. Above it the campaign earns.

Break-even ROAS = 1 ÷ (1 − cost of goods share − shipping share − tax share)

Each share is that cost divided by revenue. If cost of goods takes 42% of your revenue, shipping 11%, and tax 7%, then 40% is left, and your break-even ROAS is 1 ÷ 0.40 = 2.50. The break-even ROAS calculator does the division for you.

What goes into the formula

Four numbers for the same orders, and three of them are divided by the fourth.

  • Revenue. What customers paid for the orders, with the tax and the shipping you charged still in it.
  • Cost of goods share. What the items in those orders cost you, divided by revenue.
  • Shipping share. What you paid to ship the orders, divided by revenue. Not what you charged customers for shipping, which is already part of revenue.
  • Tax share. The tax you collected on the orders, divided by revenue. It is in the order total, and it isn't yours to keep.

What is left after the three shares is the part of each dollar of revenue that can pay for ads. This article calls it your margin after costs. In the example above it is 1 − 0.42 − 0.11 − 0.07 = 0.40, or 40%.

Where the formula comes from

It is the profit of a campaign, set to zero.

  1. Profit = revenue − cost of goods − shipping − tax − ad spend.
  2. Write each cost as a share of revenue. Profit = revenue × (1 − cost of goods share − shipping share − tax share) − ad spend.
  3. The bracket is the margin after costs. Profit = revenue × margin after costs − ad spend.
  4. At break-even, profit is 0. So ad spend = revenue × margin after costs.
  5. ROAS is revenue ÷ ad spend. Put line 4 in for ad spend, and ROAS = revenue ÷ (revenue × margin after costs) = 1 ÷ margin after costs.

Revenue cancels out in the last line. That is why the formula needs no dollar amounts, only shares.

It also says what the number means. With a margin after costs of 40%, each $1.00 of revenue leaves $0.40 once the order's costs are paid. So each $1.00 of ad spend has to bring in $2.50 of revenue to be paid back, because $2.50 × 0.40 = $1.00.

Break-even ROAS by margin after costs

Each row is 1 divided by the margin after costs, to two decimals. The third column shows what a 3.00 ROAS is worth in that row. It is $3,000 of revenue from $1,000 of ad spend, times the margin after costs, minus the $1,000.

Margin after costsBreak-even ROASProfit on $1,000 of ad spend at a 3.00 ROAS
10%10.00−⁠$700
15%6.67−⁠$550
20%5.00−⁠$400
25%4.00−⁠$250
30%3.33−⁠$100
35%2.86$50
40%2.50$200
45%2.22$350
50%2.00$500
55%1.82$650
60%1.67$800
65%1.54$950
70%1.43$1,100
75%1.33$1,250
80%1.25$1,400

The same 3.00 ROAS loses $250 for a store with a margin after costs of 25% and earns $800 for a store with 60%. That is why a ROAS from another store tells you little about yours. What is a good ROAS starts from this point.

Break-even moves fastest at the low end. Going from a margin after costs of 20% to 15% lifts it from 5.00 to 6.67. Going from 60% to 55% lifts it from 1.67 to 1.82.

One caution about the left column. Shopify's profit reports have a column called Gross margin, which Shopify calculates as net sales minus cost, divided by net sales. It takes off the cost of the items and nothing you paid for shipping, and it is a share of net sales, which has no tax or shipping charges in it. So it isn't your margin after costs. Don't read the table with it.

How to find your break-even ROAS in Shopify

You need the four numbers for one period. Shopify's reports hold three of them. The fourth, what shipping cost you, may sit partly outside Shopify.

  1. Pick a period. The last 90 days or the last full quarter works, so that one sale week doesn't set the number. Use the same dates in every step.
  2. Revenue. In your Shopify admin, go to Analytics › Reports, click the Category filter, and click Finances. Open the Finance Summary report. Its Total sales breakdown gives Total sales, which Shopify defines as gross sales minus discounts and sales reversals, plus taxes, shipping charges, and fees. That is the revenue the formula wants.
  3. Tax collected. Taxes, from the same breakdown.
  4. Cost of the items sold. The Finance Summary's Gross profit breakdown card shows your net sales, costs, and profit. The costs come from the Cost per item you recorded on each product and variant, in the Price section of the product's page. Look at the card's line "Net sales without cost recorded" before you trust the total. Sales on that line have no cost counted, so your cost of goods comes out too low and your break-even ROAS with it. Recording cost of goods in Shopify covers how to fill the gaps.
  5. What shipping cost you. The Shipping figure in the sales breakdown is what you charged customers. What you paid for labels isn't there: the same Shopify page says shipping label purchases aren't included in its Total sales by order report. If you buy labels in Shopify, the Shipping labels over time report, under the Orders category of the same Reports page, gives the total cost of the labels you bought in the period. It leaves out return labels and labels not bought in Shopify. For everything else, take the amounts from your carrier's or your fulfillment provider's invoices.
  6. The three shares. Divide the cost of the items, the shipping cost, and the tax by revenue, one at a time.
  7. The result. Add the three shares, subtract the sum from 1, and divide 1 by what is left.

The number you get is for the store's revenue as Shopify recorded it. Compare it with a ROAS built on the same orders. The ROAS in your ad account is built on the revenue the ad platform counted, which can differ. Why ad platforms and Shopify report different sales goes through the reasons.

A worked example

A Shopify store that sells desk lamps pulls its last 90 days.

NumberAmountShare of revenue
Revenue (Total sales)$48,000100%
Cost of the items sold$20,160$20,160 ÷ $48,000 = 42%
What shipping cost$5,280$5,280 ÷ $48,000 = 11%
Tax collected$3,360$3,360 ÷ $48,000 = 7%
Left after costs$19,200$19,200 ÷ $48,000 = 40%

Margin after costs: 1 − 0.42 − 0.11 − 0.07 = 0.40.

Break-even ROAS: 1 ÷ 0.40 = 2.50.

The same result comes straight from the dollars, with no rounding of shares on the way. $48,000 ÷ $19,200 = 2.50.

Checking it on one campaign

Take a campaign of that store with $2,000 of ad spend, and assume its orders cost what the store's orders cost on average.

ROASRevenueLeft after costs (40%)Profit after $2,000 of ad spend
2.00$4,000$1,600−⁠$400
2.50$5,000$2,000$0
3.00$6,000$2,400$400

The middle row in full is $5,000 − $2,100 cost of goods − $550 shipping − $350 tax − $2,000 ad spend = $0.

The store's figure is an average over everything it sold. A campaign that sells mostly the lamps that cost the most to buy and ship has a higher break-even than 2.50. Run the same steps on that product's numbers to see how much higher.

AdZoom does this subtraction for every Meta and Google Ads campaign with the campaign's own orders, using the Cost per item on your products, and shows the profit beside the ROAS.

What the formula leaves out

The formula covers three costs. Four other things move your real break-even, and it sees none of them.

Payment fees

If your payment provider keeps part of each order and you know that part as a share of revenue, subtract it inside the bracket with the other three.

Returns

A refund takes the revenue back. It doesn't take back the ad spend, and you may not recover what you paid to ship the order. Shopify's Total sales already has sales reversals taken out, each on the day it was processed, not on the day of the order. So a recent period can look better than it will once its returns have come in.

Fixed costs

Rent, salaries, software, and your own time don't change with one more order, so they aren't in the formula. A campaign at break-even pays for its orders and its ads and adds nothing toward those bills. A store that runs every campaign at break-even loses its fixed costs every month.

Repeat purchases

The formula judges a campaign on the orders in the period. A customer who comes back and buys again without another ad click makes that first order worth more than it looked, and the formula can't know it. If you count on repeat orders, you are choosing to run below break-even on the first one. Know by how much.

Know which campaigns clear break-even.

AdZoom shows what each Meta and Google Ads campaign earned after cost of goods, shipping, tax, and the ad spend, so a campaign below break-even shows up as a loss.

Coming soon to the Shopify App Store