Ecommerce Contribution Margin: Why Break-Even ROAS Changes for Every Order

GeneralPublished: July 13, 2026Last updated: August 28, 202614 min read
Layered contribution margin illustration showing revenue flowing through CM1, CM2, and CM3 for Shopify brands

A Shopify campaign is above your break-even ROAS. It looks safe to scale.

Then you open the orders behind the number. One customer used a 10% abandoned-cart discount. Another bought two products together, but that order left less profit. Shipping ran high, a refund arrived the following week, and payment fees took another cut.

The ad platform may have calculated the revenue correctly. The mistake was giving every order the same break-even target even though the costs were different.

Shopify teams often calculate break-even ROAS once and keep using it. That only works while the real costs match the original calculation. Change the discount, product mix, shipping, payment fee, refund rate, or customer type, and you need a different target.

Contribution margin gives you the missing view. It shows how much money is left after the costs required to sell and deliver the order. CM3 takes that one step further by including marketing cost, so you can see what remains before overhead.

What is ecommerce contribution margin?

It is the money left after subtracting the variable costs tied to selling and fulfilling an order.

For a Shopify store, those costs usually include:

  • Cost of goods sold (COGS)
  • Discounts
  • Shipping and fulfillment
  • Packaging and pick-and-pack fees
  • Payment processing fees
  • Returns and refunds
  • Ad spend, depending on which profit level you are calculating

The basic formula is:

Contribution margin = net revenue - variable costs

The formula belongs in a finance report, but the answer changes a growth decision:

Was this order worth acquiring?

A $150 order is not automatically better than a $100 order. The $150 order may contain a heavily discounted bundle, expensive products, and higher fulfillment costs. The $100 order may be a full-price hero SKU with a much healthier margin.

Revenue tells you how large the order was. Contribution margin tells you what it left behind.

Shopify's contribution-margin guide draws the same line between revenue and what remains after variable costs. Growth teams need that calculation at order and campaign level.

CM1, CM2, and CM3 in plain language

CM1, CM2, and CM3 are different layers of contribution margin. Each layer subtracts more costs.

The naming is not completely standardized across ecommerce tools and finance teams. One dashboard may include shipping in CM2, while another subtracts it in CM3. Before comparing numbers, check which costs each layer includes.

The basic idea stays the same:

CM1: did the product itself make money?

CM1 starts with net revenue and subtracts product cost.

CM1 = net revenue - COGS

If CM1 is already weak, paid growth has very little room to work. A product with a 30% gross margin cannot support the same acquisition cost as a product with a 70% gross margin.

CM2: what did the order leave after order-level costs?

CM2 usually subtracts costs such as shipping, fulfillment, packaging, payment fees, discounts, returns, and refunds.

CM2 is where a healthy-looking product can become an unattractive order. The product margin may be fine, but selling and delivering the order eats the room that looked available.

CM3: what remains after marketing?

CM3 includes acquisition or marketing cost as well. At Venon, the dashboard's CM3 bridge connects net revenue with COGS, marketing costs, transaction fees, and shipping fees.

Venon demo Profit Dashboard showing net revenue turning into CM3 after product costs, shipping, payment fees, and marketing.
Venon demo data: the margin bridge from net revenue to CM3. Open full-size image

Daniel's simplest description is the useful one:

CM3 is the profit you made before all the overhead costs.

The business still needs to pay salaries, software, rent, agencies, contractors, and other fixed expenses from what remains.

A store can grow revenue and still feel tight on cash. More sales do not help if each new order leaves too little CM3 to support the company.

Hypothetical $100 order

How revenue becomes CM3

CM3 is what remains before fixed overhead such as salaries, software, rent, and retainers.

How to calculate break-even ROAS from contribution margin

Break-even ROAS is the point where the money left before ads is just enough to cover the ad cost.

A simple formula is:

Break-even ROAS = net revenue / contribution before ad spend

You can also calculate it as:

Break-even ROAS = 1 / contribution margin percentage before ad spend

If an order has a 50% contribution margin before ads, its break-even ROAS is 2.0x. If that margin drops to 40%, break-even ROAS rises to 2.5x.

Most teams can do the formula. The mistake is feeding it store averages that do not match the order they are judging.

Start with one order. A $100 order with a $10 discount leaves $90 in net revenue. Subtract $35 for product cost, $9 for shipping and fulfillment, and $3 for payment fees. That leaves $43 before ads. If the customer cost $50 to acquire, the order loses $7 even though the sale looked normal in the revenue dashboard.

Here are three more hypothetical Shopify orders:

Order scenarioNet revenueCOGSShipping, fulfillment and payment feesContribution before adsBreak-even ROAS
Full-price single product$100$35$11$541.85x
Same product with 10% recovery discount$90$35$11$442.05x
Lower-margin two-product bundle$150$75$15$602.50x

Hypothetical Shopify order examples.

Same examples, different targets

Lower margin pushes break-even ROAS higher

Full-price product

54% before ads

10% recovery discount

49% before ads

Lower-margin bundle

40% before ads

The bundle has the highest AOV. It also needs the highest ROAS to break even.

A universal 1.85x target would approve all three orders. The discounted order and the bundle would still lose money at that level.

The dashboard says break-even because the dashboard received the wrong break-even line.

Break-even ROAS is not one fixed number

A single break-even target is useful for quick campaign checks. It becomes dangerous when it replaces a proper look at the costs and profit from the actual orders.

The target changes when any of these inputs change:

  • Discount rate
  • SKU or variant
  • Bundle composition
  • Product cost
  • Shipping destination or method
  • Payment provider
  • Return or refund rate
  • New versus returning customer mix
  • First-order versus lifetime payback window

A 10% Klaviyo abandoned-cart offer may recover a sale that would otherwise be lost. It also reduces net revenue while COGS and fulfillment stay largely unchanged, so the full-price break-even target overstates how much ad spend that order can support.

Bundles can lift AOV and still lower contribution margin. The extra product may have weaker margin, add a picking fee, increase package weight, or trigger a more expensive shipping bracket.

Store-wide averages are useful estimates, not approval for every order that crosses the line.

ROAS vs POAS: why revenue can look good while profit gets worse

ROAS divides the revenue claimed by an ad platform by ad spend. That makes it useful for reading campaign movement, but it cannot tell you whether the sale made money.

POAS means profit on ad spend. It replaces attributed revenue with the profit left after the costs behind those orders. For budget decisions, that is usually the number you were trying to get from ROAS in the first place.

MetricWhat it tells youWhat it misses
ROASRevenue returned per ad dollarProduct cost, shipping, fees, refunds, and discounts
POASProfit returned per ad dollarIt only works when cost inputs are complete

ROAS and POAS answer different questions.

Venon demo Pixel report showing ROAS, POAS, spend, revenue, CAC, AOV, and Profit CM3 by channel.
Venon demo data: ROAS, POAS, CAC, revenue, and CM3 by channel. Open full-size image

Two campaigns can report 2.5x ROAS and produce different profit. One sells a full-price, high-margin hero product to new customers. The other catches returning customers with a discount on a lower-margin product. Meta reports the same ROAS for both, but the budget decision should not be the same.

Attribution adds another problem. Meta, Google, email, and an analytics tool may each claim influence over one purchase. POAS and contribution margin bring the decision back to the economics of the order the store actually received.

SituationWhat it meansDecision
High ROAS, low POASRevenue looks good, profit is weakDo not scale yet
Low ROAS, high POASPlatform reporting looks weak, but orders are profitableInvestigate before cutting
High ROAS, high POASRevenue and profit agreeCandidate to scale
Low ROAS, low POASWeak demand and weak economicsFix offer, product, or channel

Use POAS and contribution margin before changing budget.

Google Ads' target ROAS guide explains how conversion value is compared with spend. The store still has to decide whether that value means revenue or profit.

Meta's business help center covers platform reporting. For analytics-product differences, see Venon's guides to Triple Whale alternatives and Hyros alternatives.

Day-one ROAS and revenue LTV can lie in both directions

A campaign does not always need to be profitable on day one. Future value still has to be measured in profit.

Taking a small loss on the first order can make sense for a subscription, replenishment product, low-entry trial, or strong post-purchase funnel. The condition is simple: later orders must produce enough profit to cover that loss within 30 or 90 days.

Without that evidence, future value is a hopeful line in the forecast. The second order may never arrive, churn may run high, or repeat purchases may depend on another aggressive discount.

Day-one numbers can mislead the other way too. D1 ROAS looks acceptable, but the order relies on low-margin products, expensive fees, or returning demand the ad platform claimed again.

Revenue LTV can hide the same problem. A customer with $300 in lifetime revenue and a $100 CAC looks healthy at 3:1. If the brand keeps only 30% after variable costs, that customer produced $90 before overhead against $100 of acquisition cost.

Why revenue LTV can mislead

$300 in lifetime revenue can still lose money

Compare lifetime profit with CAC. A revenue-to-CAC ratio can hide a loss.

Choose the payback window from observed buying behavior:

  • Use first-order contribution margin for products with little repeat behavior.
  • For products with repeat purchases, check how much profit the customer has created after 30 or 90 days.
  • Track subscription retention and cancellation instead of assuming recurring revenue will continue.
  • Compare lifetime profit with CAC, not lifetime revenue with CAC.

Longer payback means more cash and execution risk.

Recovered Klaviyo orders can improve payback from traffic you already paid to acquire, but discounted recovery orders still need to be judged using their actual contribution margin. See our Shopify abandoned-cart recovery guide for the recovery mechanics.

Small cost changes become large profit changes

Many profit leaks start outside Ads Manager. Carrier rates, tariffs, heavier bundles, payment fees, and refunds can all change the cost of an order.

A $2 cost increase sounds small. Across 20,000 orders, it removes $40,000 before overhead.

$2 extra cost per order

Small cost leaks scale quickly

Impact shown before fixed overhead. The same cost increase also lowers the CAC you can afford.

These costs also change the CAC the business can afford. If contribution before ads falls from $54 to $50, the old acquisition target is no longer accurate.

Quarterly spreadsheet reviews are too slow for costs that change the acquisition target today. Product costs, shipping rules, payment fees, discounts, and returns need to sit close to the growth decision.

Timing can hide the leak. A refund posted two weeks after a sale may miss last week's campaign report. A shipping surcharge may affect one country, while a fee change hits one gateway. Store averages blur both problems.

A weekly profit view should expose those changes before the team raises or cuts spend.

What Shopify operators should do when margin is weak

A weekly review does not need dozens of charts. It needs a sensible order, starting with the store and ending with payback.

Start with the whole store:

  • Total ad spend compared with store revenue (MER), and total acquisition cost per customer
  • POAS alongside ROAS, so profit and revenue are not treated as the same return
  • Net revenue rather than gross sales
  • New-customer CPA and NC ROAS
  • New versus returning customer share

Then check whether the orders made money:

  • Contribution margin by SKU and bundle
  • Discount usage
  • Shipping and fulfillment cost
  • Payment fees
  • Refund and cancellation rate
  • First-order CM3

Finally, check payback:

  • D30 or D90 contribution margin where repeat purchase matters
  • Lifetime profit to CAC
  • Profit from recovered Klaviyo and SMS orders
  • Repeat rate by first-purchase product

A weak-looking Meta campaign may be buying new customers with strong payback. A great-looking one may be harvesting returning demand or pushing low-margin bundles.

Do not scale either one from ROAS alone.

When contribution margin is weak, lowering CPA is only one possible fix. Check discounting, low-margin SKUs, shipping changes, bundle economics, returning-customer credit, and weak POAS hidden behind ROAS.

Check profit before increasing ad spend

Venon connects attribution with POAS, CM3, CAC, MER, new-customer performance, product costs, shipping profiles, and payment fees. Book a demo to see it with your store's cost inputs.

How Venon approaches profit-first reporting

Most attribution dashboards lead with revenue and channel ROAS. Venon keeps those metrics, then adds POAS so merchants can see what the attributed orders left after costs.

Profit Tracking is fully rolled out in Venon. Merchants can configure product costs, shipping profiles, payment fees, returns, and other order costs, then use those inputs in POAS, CM3, and break-even reporting. The dashboard also shows ROAS, CAC, MER, NC MER, AOV, new-customer purchase share, and the CM3 bridge.

It puts two questions in the same report: "Which campaign received credit?" and "Did the resulting orders make money?"

That makes the budget review faster.

There is an important limit. If product costs or shipping rules are incomplete, the contribution-margin calculation is incomplete too. With the costs configured, a founder can inspect the same profit calculation across channels, products, and customer groups before moving budget instead of rebuilding it in a spreadsheet after every campaign review.

A practical CM3 decision workflow

When a campaign looks ready to scale, work through the order in this sequence:

  1. Start with net revenue.
  2. Separate new and returning customers.
  3. Apply COGS at SKU or variant level.
  4. Subtract discounts, shipping, fulfillment, payment fees, refunds, and returns.
  5. Compare contribution before ads with CAC.
  6. Calculate CM3 before overhead.
  7. If repeat purchase matters, compare lifetime profit with CAC over the actual payback window.
  8. Review attribution before assigning the result to one channel.

Campaign review sequence

From order data to a budget decision

  1. 1

    Revenue and customer type

    Start with net revenue. Separate new and returning customers.

  2. 2

    Product and order costs

    Apply COGS, discounts, shipping, fulfillment, fees, refunds, and returns.

  3. 3

    Ads and CM3

    Compare contribution before ads with CAC, then calculate CM3.

  4. 4

    Payback and attribution

    Check lifetime profit where relevant, then verify which channel deserves credit.

Did these orders leave enough money to be worth acquiring?

After those checks, answer one question:

After all the costs, did these orders leave enough money to be worth acquiring?

If the answer is yes, the campaign may deserve more budget. If it is no, check beyond Ads Manager. The problem could be the discount, bundle, shipping, product mix, attribution, or acquisition cost.

Each of those problems needs a different fix. A higher ROAS target alone will not tell you which one you have.

FAQ

What is ecommerce contribution margin?

Ecommerce contribution margin is what remains after selling and delivery costs. Depending on the profit level, that includes COGS, discounts, shipping, fulfillment, payment fees, returns, refunds, and marketing spend.

What is CM3 in ecommerce?

CM3 remains after product, order, and marketing costs but before fixed overhead such as salaries, software, rent, and retainers. Check each tool's cost classification before comparing it.

Is break-even ROAS fixed?

No. Discounts, product mix, bundles, COGS, shipping, fees, returns, and customer type can all change contribution margin and move the break-even point.

Why can a bundle increase AOV but reduce profitability?

Because the extra products can bring lower margin, higher COGS, pick-and-pack fees, or more expensive shipping. Check contribution margin and revenue per visitor, not AOV alone.

Should Shopify brands use ROAS or contribution margin?

Both. ROAS helps you read campaign efficiency. Contribution margin tells you whether the revenue was worth acquiring after variable costs.

Should a campaign be profitable on the first order?

It depends on cash and repeat buying. Measured repeat purchases may support a 30-day or 90-day payback target. Products with few repeat orders need profit up front. Future value counts when later orders produce it.

How does Klaviyo recovery affect contribution margin?

It can improve payback by converting demand from traffic the brand already paid for. If the flow uses a discount, calculate margin from the discounted order, not the full-price target.

Contribution margin makes ROAS useful again

ROAS is useful when its target reflects the orders behind it. One break-even line assumes every order shares the same margin, discount, shipping, fees, refund risk, and customer type. A Shopify store rarely behaves that neatly.

Contribution margin shows those differences. CM3 tells you what the order or campaign left before overhead after selling, delivering, and acquiring it.

Finance and marketing can both use that number. The media buyer keeps ROAS and CPA. The founder sees whether orders leave enough for payroll, software, inventory, and more growth.

Healthy CM3 gives you room to scale. Weak CM3 tells you that a good-looking campaign is making the business tighter, not stronger.

See profit after ads and order costs

Want to review your Shopify growth through contribution margin instead of platform ROAS alone? Book a Venon demo and see how CM3, attribution, new-customer performance, and cost inputs come together.

Experience Venon's Superior Performance

Join over 100+ e-commerce brands saving 60% on analytics costs while achieving faster insights and complete GDPR compliance.