Profit and metrics

Contribution margin in ecommerce: CM1, CM2, CM3 explained

Contribution margin in ecommerce explained: CM1, CM2 and CM3, a worked example from revenue to net profit, and which profit layer fits which decision.

·9 min read·By the ROASaurus team

Key takeaways
  • Contribution margin has no single definition; a common convention splits it into CM1, CM2 and CM3, after product costs, order costs and marketing costs.
  • In ROASaurus, gross profit is revenue minus product, shipping, payment and handling costs, and contribution margin is gross profit minus ad spend and other marketing costs.
  • Judge prices on gross profit, campaigns on profit after ads (POAS), the marketing budget on contribution margin and the business on net profit.
  • For any decision, use the layer that includes every cost the decision changes and no cost it leaves unchanged.
  • Before you compare two tools, check which costs each one subtracts: the gross profit reports in Shopify and the profit reporting in Google Ads leave out shipping and payment fees.

Contribution margin in ecommerce is the money that orders leave after the costs that grow with sales. The term is used for different numbers: some people subtract only product costs, some also subtract shipping and payment fees, and some also subtract ad spend. In ROASaurus, contribution margin is gross profit minus ad spend and other marketing costs.

This guide walks through the layers of profit from revenue to net profit with one worked example. It shows how the common CM1, CM2 and CM3 labels map onto those layers, which layer to use for which decision, and exactly how ROASaurus defines each one.

What is contribution margin in ecommerce?

In accounting, contribution margin is revenue minus variable costs. Variable costs go up when you sell one more unit. What is left contributes to fixed costs, such as salaries and rent, and then to profit. Fixed costs stay the same whether you ship 900 or 1,000 orders this month.

For a webshop, most variable costs come with each order: the product, the packaging, the shipping label and the payment fee. Ad spend is less clear. It is not tied to one order, but it grows with sales when you buy growth through ads. This is why ecommerce teams often split contribution margin into levels.

CM1, CM2 and CM3

Many ecommerce teams and finance tools use three levels. The split is a convention, not a standard, so always check what a tool or a report puts in each level.

LevelCommon definitionThe question it answers
CM1Revenue minus product costs (COGS)Is the product priced well?
CM2CM1 minus order costs: shipping, packaging, handling and payment feesDoes an order make money before marketing?
CM3CM2 minus marketing costs, mostly ad spendDoes the business make money after paying for growth?
A common way to split contribution margin. Teams differ in where they put returns, packaging and marketing costs other than ads.

The profit layers in one worked example

Here is one month of an example store, from revenue down to net profit. Revenue is without VAT and sales tax, and refunds are already taken off.

LineAmountShare of revenue
Revenue (without VAT, after refunds)$100,000100%
Product cost (COGS)−$38,00038%
Shipping paid to carriers−$9,0009%
Payment fees−$2,5002.5%
Packing and handling−$3,5003.5%
Gross profit$47,00047%
Ad spend (Meta, Google Ads, TikTok)−$24,00024%
Profit after ads$23,00023%
Other marketing costs: agency fee, influencer content, email software−$5,0005%
Contribution margin$18,00018%
Operating expenses: salaries, rent, other software−$13,00013%
Net profit$5,0005%
Example store, one month. Each layer takes off one more group of costs.
What each layer leaves, as a share of revenue (example store)
Revenue
100%
Gross profit
47%
Profit after ads
23%
Contribution margin
18%
Net profit
5%
Of every $100 of revenue, this store keeps $5. Most of the difference is product cost and ad spend.

The same month also gives three ratios that are easy to mix up. MER, total revenue divided by total ad spend, is $100,000 ÷ $24,000 = 4.17. POAS, gross profit divided by ad spend, is $47,000 ÷ $24,000 = 1.96. Break-even ROAS is 1 ÷ 0.47 = 2.13. A month-level number like this tells you that the month as a whole made money. It does not tell you which campaign did. See MER vs ROAS for the difference.

Gross profit: what each order leaves

Gross profit is revenue minus the costs that come with each order: product cost, the shipping you pay, payment fees and handling. In the CM1, CM2 and CM3 convention, it is CM2. It is the margin before any ad spend.

Use gross profit for decisions about a product or an order:

  • Prices and discounts. A $50 product with a 47% gross margin rate leaves $23.50. A 20% discount takes $10 off the price. If the costs stay the same, gross profit falls to $13.50. The discount removes 43% of the gross profit on that order.
  • Shipping rates and free-shipping thresholds. The shipping cost of a parcel barely changes with the order value, so it takes a much larger share of the margin on small orders.
  • Which products to advertise. Break-even ROAS comes straight from this layer: 1 ÷ gross margin rate. At 47%, it is 2.13. See break-even ROAS for the full method.

Profit after ads: what the ads leave

Profit after ads is gross profit minus ad spend. It answers one question: did the orders from these ads earn more than the ads cost?

Profit after ads=gross profit − ad spend
POAS
Gross profit ÷ ad spend. Profit after ads is positive when POAS is above 1.0.
Ad spend
What the ad platforms charged, for the same orders and the same period.

In the example month: $47,000 − $24,000 = $23,000, at a POAS of 47,000 ÷ 24,000 = 1.96.

Use this layer per campaign, ad set or product line, with the orders each one brought in. It is the right layer for daily and weekly ad decisions: scale a campaign, cut its budget or pause it. Fixed costs do not change when you raise a budget by $100, so they do not belong in that decision. POAS turns this layer into one ratio, and its break-even point is always 1.0.

Profit after ads per campaign depends on which orders each campaign gets credit for. That is a choice of attribution model, so use the same model for every channel you compare.

Contribution margin: what all marketing leaves

Contribution margin, as ROASaurus defines it, is profit after ads minus your other marketing costs. These costs pay for growth but are not ad spend: an agency retainer, influencer content for a fixed fee, email and SMS software, or a photo shoot for ads. In the CM1, CM2 and CM3 convention, it is CM3.

Use contribution margin for monthly decisions about marketing as a whole:

  • Does the total marketing budget pay for itself, including the agency and the tools?
  • Can the business carry its fixed costs at this level of marketing? In the example, $18,000 of contribution margin covers $13,000 of operating expenses.
  • Is marketing getting more or less efficient from one month to the next?

Marketing costs paid per sale need a choice. An affiliate commission or an influencer fee paid on each order with their discount code grows with every order, like a payment fee. In ROASaurus you add those under Profit › Order fees, so they come off gross profit. A fixed monthly retainer is a marketing cost and comes off below profit after ads.

Grows with each order
  • Product cost (COGS)
  • Shipping and packaging
  • Payment fees
  • Handling and pick-and-pack
  • Affiliate commission per sale
Fixed for the month
  • Agency retainer
  • Email and SMS software
  • Salaries
  • Rent and warehouse
  • Accounting and other software
Costs on the left come off gross profit. Fixed marketing costs on the right come off contribution margin, and the other fixed costs come off net profit.

Net profit: what the business keeps

Net profit is contribution margin minus operating expenses: salaries, rent, software that is not for marketing, accounting and similar costs. In ROASaurus it also takes off the taxes the business pays and lost chargebacks, and it adds other revenue that does not come from orders, such as a subsidy.

Use net profit for decisions about the business: hiring, a new warehouse, the owner's pay and how much cash you can put into stock. Do not use it to judge a single campaign. A campaign does not change your rent, so spreading rent over campaigns makes good campaigns look bad.

Which margin to use for which decision

Each decision changes some costs and leaves others alone. Pick the layer that includes every cost the decision changes, and no cost it leaves unchanged.

DecisionLayer to useWhy
Set a price or a discountGross profit per orderIt shows what one order leaves.
Set a break-even or target ROASGross margin rateBreak-even ROAS = 1 ÷ gross margin rate.
Scale, cut or pause a campaignProfit after ads (POAS)It compares the orders with what the ads cost.
Decide what to pay for a new customerGross profit per customer over 6 to 12 monthsRepeat orders add margin after the first order.
Set the monthly marketing budgetContribution marginIt includes the agency, the content and the tools.
Hire, sign a lease, plan cashNet profitIt includes every cost of the business.
Decisions about single orders and ads use the upper layers. Decisions about the whole business use the lower ones.

The customer row needs more than one month of data. A customer who orders three times in a year leaves three gross profits, but you pay to acquire them only once. How to measure that is the topic of customer lifetime value for Shopify stores.

How ROASaurus defines each layer

If you compare ROASaurus with a spreadsheet or with another tool, map the names first. These are the definitions in ROASaurus profit analytics. Gross profit, contribution margin and net profit are lines in the P&L. Profit after ads is on the Marketing page, per channel and campaign, and in the POAS calculator.

ROASaurus nameFormulaOther names you may see
Gross profitRevenue − COGS − shipping costs − order fees − payment fees − handlingCM2; in some tools, contribution margin or contribution profit
Profit after adsGross profit − ad spendCM3, when ads are the only marketing cost
Contribution marginGross profit − ad spend − marketing costsCM3
Net profitContribution margin − operating expenses − taxes paid − chargebacks + other revenueNet income
The ROASaurus definitions. Order fees include affiliate and influencer fees per order, pick-and-pack and duties.

Tax needs one more note. With the default setting for Taxes collected, revenue and gross profit in the P&L include the tax you collected. A separate line, Taxes collected (pass-through), takes it off just before contribution margin. Choose Left out of revenue under Profit › Cost settings if you want revenue and gross profit without tax, as in this guide. With the default and with Left out of revenue, contribution margin and net profit are without tax.

ROASaurus calculates every layer from your orders, refunds, product costs, shipping and payment fees, and from the ad spend it syncs from your connected ad accounts or that you enter by hand for other channels. Marketing costs and operating expenses come from the costs you add under Profit › Custom costs, each with its category. The P&L in profit analytics shows each line by day, week, month, quarter or year. To try the ad layer on your own numbers, use the free POAS calculator.

Sources

  1. Shopify Help Center: Profit reports
  2. Google Ads Help: Step 2: Provide cost of goods sold (COGS) feed attribute to report on profit margins
  3. Shopify Blog: Contribution Margin vs. Gross Margin: What's the Difference?

In ROASaurus

Keep reading

Profit and metricsBreak-even ROAS: the minimum ROAS your ads needBreak-even ROAS is the ROAS at which ads pay for themselves. Learn the formula, work through examples and set a target ROAS for each product line.Profit and metricsCohort analysis for ecommerce: are new customers worth it?Cohort analysis for ecommerce: group customers by first-order month, read retention and gross profit per customer, and avoid the common mistakes.Profit and metricsMER vs ROAS: which number should you steer on?MER vs ROAS: MER divides total revenue by total ad spend, ROAS looks at one channel. See when to use each, a worked example and how to find break-even MER.
FAQ

Questions, answered

What is the difference between gross margin and contribution margin?

Gross margin is gross profit as a share of revenue: revenue minus the costs of each order. Contribution margin also subtracts marketing costs. In ROASaurus, contribution margin is gross profit minus ad spend and other marketing costs.

What are CM1, CM2 and CM3?

They are three common levels of contribution margin in ecommerce. CM1 subtracts product costs, CM2 also subtracts shipping, payment fees and handling, and CM3 also subtracts marketing costs. The split is a convention, so check how each tool defines it.

Is ad spend a variable cost?

It behaves like one when you buy growth through ads, because spend rises with sales. It is not tied to a single order, so ROASaurus subtracts it after gross profit and not from each order.

Which margin should I use to judge a Meta campaign?

Use profit after ads, or its ratio POAS: the gross profit of the orders the campaign brought in, minus or divided by its ad spend. Fixed costs such as salaries do not change when you change a budget, so leave them out.

How do I calculate contribution margin per order?

Start with gross profit per order: the order revenue without VAT minus product cost, shipping, payment fees and handling. Ad spend and other marketing costs belong to a period, not to one order. Spread them over the orders of that period and subtract each order's share from its gross profit.

Every sale, traced to the ad that earned it

Server-side tracking, profit and lifetime value in one app. 14-day free trial, no credit card.

Start your free trial →