- 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.
| Level | Common definition | The question it answers |
|---|---|---|
| CM1 | Revenue minus product costs (COGS) | Is the product priced well? |
| CM2 | CM1 minus order costs: shipping, packaging, handling and payment fees | Does an order make money before marketing? |
| CM3 | CM2 minus marketing costs, mostly ad spend | Does the business make money after paying for growth? |
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.
| Line | Amount | Share of revenue |
|---|---|---|
| Revenue (without VAT, after refunds) | $100,000 | 100% |
| Product cost (COGS) | −$38,000 | 38% |
| Shipping paid to carriers | −$9,000 | 9% |
| Payment fees | −$2,500 | 2.5% |
| Packing and handling | −$3,500 | 3.5% |
| Gross profit | $47,000 | 47% |
| Ad spend (Meta, Google Ads, TikTok) | −$24,000 | 24% |
| Profit after ads | $23,000 | 23% |
| Other marketing costs: agency fee, influencer content, email software | −$5,000 | 5% |
| Contribution margin | $18,000 | 18% |
| Operating expenses: salaries, rent, other software | −$13,000 | 13% |
| Net profit | $5,000 | 5% |
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?
- 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.
- Product cost (COGS)
- Shipping and packaging
- Payment fees
- Handling and pick-and-pack
- Affiliate commission per sale
- Agency retainer
- Email and SMS software
- Salaries
- Rent and warehouse
- Accounting and other software
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.
| Decision | Layer to use | Why |
|---|---|---|
| Set a price or a discount | Gross profit per order | It shows what one order leaves. |
| Set a break-even or target ROAS | Gross margin rate | Break-even ROAS = 1 ÷ gross margin rate. |
| Scale, cut or pause a campaign | Profit after ads (POAS) | It compares the orders with what the ads cost. |
| Decide what to pay for a new customer | Gross profit per customer over 6 to 12 months | Repeat orders add margin after the first order. |
| Set the monthly marketing budget | Contribution margin | It includes the agency, the content and the tools. |
| Hire, sign a lease, plan cash | Net profit | It includes every cost of the business. |
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 name | Formula | Other names you may see |
|---|---|---|
| Gross profit | Revenue − COGS − shipping costs − order fees − payment fees − handling | CM2; in some tools, contribution margin or contribution profit |
| Profit after ads | Gross profit − ad spend | CM3, when ads are the only marketing cost |
| Contribution margin | Gross profit − ad spend − marketing costs | CM3 |
| Net profit | Contribution margin − operating expenses − taxes paid − chargebacks + other revenue | Net income |
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
- Shopify Help Center: Profit reports
- Google Ads Help: Step 2: Provide cost of goods sold (COGS) feed attribute to report on profit margins
- Shopify Blog: Contribution Margin vs. Gross Margin: What's the Difference?