Przejdź do treści

Contribution Margin for Ecommerce: CM1, CM2 and CM3 Explained

6 min czytania
PR

Priya Raghunathan

E-commerce Performance Manager

Contribution margin for ecommerce is the money each order leaves behind after paying for the product, getting it to the customer and acquiring the buyer. Revenue tells you how big your store is. Contribution margin tells you whether growth makes you richer or poorer. For a DTC founder spending on ads, contribution margin ecommerce reporting is what decides how much you can afford to pay for a sale.

The trouble is that "contribution margin" means different things in different spreadsheets. Splitting it into three layers, CM1, CM2 and CM3, fixes that. If you are coming from ad dashboards, our explainer on why your ROAS doesn't match your profit shows the gap that contribution margin closes.

Quick answer

Contribution margin equals net sales minus the variable costs of each order, and in ecommerce it is usually split into three layers. CM1 subtracts product costs, CM2 adds fulfilment, shipping, payment fees and returns, and CM3 adds marketing and ad spend. CM3 pays fixed costs and profit, so judge campaigns on it.

What is contribution margin?

In accounting terms, contribution margin is the revenue left once you subtract every cost that changes with sales volume. The Corporate Finance Institute defines it as sales revenue less variable costs, and lists shipping costs for customer orders as a typical variable cost.

  • Contribution margin = net sales − variable costs
  • Contribution margin % = contribution margin ÷ net sales

Variable costs grow with every order. Fixed costs do not: your team, your office and your software subscriptions cost the same whether you ship 500 orders or 600. Keeping the two apart is the whole point. Contribution margin shows what one more order is worth before overheads.

Start from net sales, not gross sales: subtract discounts and refunds, and leave VAT out.

What goes into CM1, CM2 and CM3?

Each layer of contribution margin subtracts one family of variable costs, so you can see exactly where margin leaks between the product and the bank account. Definitions vary a little between companies; what matters is that you keep yours consistent.

LayerStarts fromSubtractQuestion it answers
CM1Net salesLanded product cost: purchase price, inbound freight, dutiesIs the product priced right?
CM2CM1Shipping to customers, pick and pack, packaging, payment fees, returns handlingDoes each order survive delivery?
CM3CM2Ad spend and other variable marketing: affiliates, influencers paid per postDoes acquisition pay for itself?

CM1, product margin. Close to what most people call gross margin. On Shopify, it depends on the cost per item field, and Shopify's help centre notes that profit is reported only for products and variants that had a cost recorded at the time of sale. Missing costs make CM1 look better than it is.

CM2, order margin. Everything that happens between "paid" and "delivered". Payment fees belong here: Stripe, for example, charges 1.5% + €0.25 for standard EEA cards. Returns belong here too. In December 2024, NRF and Happy Returns projected that US retail returns would reach $890 billion in 2024, and each return costs shipping and handling as well as the lost sale.

CM3, margin after marketing. Subtract what you spent to win the orders. Fixed marketing costs, such as an in-house team's salaries, usually stay below CM3 with other overheads.

Where does ad spend sit in contribution margin?

Ad spend belongs in CM3, because it rises and falls with the orders you buy, unlike rent or salaries. Putting it there keeps two questions apart: whether an order is worth having at all, which CM2 answers, and whether you paid too much to get it, which CM3 answers.

That split is also where your ad metrics come from. CM2 percentage is the margin you use to work out breakeven ROAS: 1 ÷ CM2 %. Our breakeven ROAS calculator walks through it. And CM2 divided by ad spend is POAS, profit on ad spend, measured before ads. A POAS above 1.0 means CM3 is positive.

A worked example: one month, three layers

The numbers below are illustrative only, made up to show the method, not taken from any real store. Amounts exclude VAT.

LineAmount% of net sales
Net sales (after discounts and refunds)€100,000100%
Landed product cost−€38,000
CM1€62,00062%
Shipping to customers−€9,000
Pick, pack and packaging−€3,000
Payment fees−€2,000
Returns handling−€1,000
CM2€47,00047%
Ad spend, all platforms−€25,000
Affiliate and influencer fees−€3,000
CM3€19,00019%
Fixed costs: team, rent, software−€14,000
Operating profit€5,0005%

Read it top to bottom. A 62 percent CM1 looks comfortable. Fulfilment and fees take 15 points. Marketing takes another 28. The store keeps €5,000 on €100,000 of sales, and the layer that moved most is CM3. Breakeven ROAS for this store is 1 ÷ 0.47, about 2.13.

How do you use CM3 to judge campaigns?

Campaign-level CM3 turns a ROAS figure into euros of contribution, which makes budget choices much easier to defend. The method has three steps:

  1. Take net sales per campaign from the store. Use orders tagged by UTM, not platform-reported revenue, which double counts and ignores refunds. Our guide to keeping UTMs clean from ad to Shopify covers the tagging.
  2. Apply the CM2 percentage of what that campaign sold. Campaigns selling different products carry different margins.
  3. Subtract the campaign's spend. What is left is its CM3.

Two illustrative campaigns from the same month:

CampaignSpendNet salesCM2 % of products soldCM2Campaign CM3
A: bestseller bundle€5,000€14,00047%€6,580+€1,580
B: entry-price accessory€4,000€10,00035%€3,500−€500

Campaign B has a store-side ROAS of 2.5 against A's 2.8, close enough that a ROAS dashboard might call them similar. CM3 says A added €1,580 and B lost €500. The fix for B may not be the ads at all: the accessory's margin may be too thin to advertise at that price. A per-SKU profit teardown is the next step.

Simple decision rules follow:

  • Positive CM3 above your target: scale, while watching that CM3 holds as spend rises.
  • Positive but thin: hold, test creative and offers.
  • Negative CM3: cut, or fix price, bundle or product cost before spending more.

Give prospecting campaigns a longer window before cutting, since they feed branded search and repeat purchases that per-campaign CM3 misses. Judge the total on blended numbers too; our MER vs ROAS guide explains why.

Where Wevion fits

Tracking CM3 by campaign means joining store costs with spend from every ad platform, and that join is the step most spreadsheets get wrong or let go stale.

Wevion connects Meta, Google, TikTok, Taboola, Snapchat and Outbrain through each platform's official API with OAuth, brings Shopify or WooCommerce orders and revenue next to that spend in one dashboard, and syncs about every 15 minutes, so the inputs for CM2 and CM3 already sit together.

Wevion's Profitability Analytics, in beta, syncs cost per item from your store and the shipping and fees you set once, then shows profit, margin and POAS, with margin broken down for every SKU. For the full Shopify setup, see our guide to Shopify profit tracking from ROAS to POAS.

Key takeaways

The five points below sum up how contribution margin works for an online store and how to use it on ad spend.

  • Contribution margin is net sales minus variable costs: the money left for fixed costs and profit.
  • CM1 subtracts product costs, CM2 adds fulfilment, payment fees and returns, CM3 adds ad spend and variable marketing.
  • Ad spend sits in CM3. CM2 % sets your breakeven ROAS; CM2 ÷ ad spend is POAS.
  • Judge campaigns on CM3 in euros, using store net sales and the margin of the products each campaign sells.
  • Keep your layer definitions fixed, so month-to-month comparisons stay honest.

Want CM-style profit next to spend from all your ad platforms? Start a 14-day free trial of Wevion on the Pro plan, no card needed.

Wróć do bloga
Udostępnij

Najczęściej zadawane pytania

The Ad Signal

Cotygodniowe spostrzeżenia dla media buyerów, którzy odmawiają zgadywania. Jeden e-mail. Tylko konkrety.

Gotowy na automatyzację operacji reklamowych?

Zacznij uruchamiać kampanie masowo na wielu kontach. Wypróbuj Wevion za darmo przez 14 dni w planie Pro. Na start nie potrzebujesz karty: poprosimy o nią 7. dnia, a płatność ruszy 14. dnia tylko wtedy, gdy ją dodasz.