Contribution margin is revenue minus every variable cost: what a sale leaves you to pay fixed costs and make profit. Here's the formula, how to calculate it for an online store, and one example order and month worked through line by line.
On this page
- What is contribution margin?
- The contribution margin formula
- How to calculate contribution margin for an ecommerce store
- Contribution margin vs gross margin vs net profit
- Why measure contribution margin instead of ROAS
- CM1, CM2 and CM3: the contribution margin levels ecommerce teams use
- Contribution margin per unit
- Contribution margin ratio
- The contribution margin income statement
- Weighted average contribution margin for multi-SKU stores
- What is a good contribution margin for ecommerce?
- How to improve contribution margin
- Common contribution margin mistakes
- Why ChatGPT gets your contribution margin wrong
- Contribution margin, in short
Contribution margin is what a sale leaves you after every cost that came with it, and the contribution margin formula is simple: revenue minus variable costs. Product cost, shipping, payment fees, returns and the ad spend it took to win the order all come off. What remains is the money that pays for your team, your software and your rent, and then becomes profit.
That's the textbook answer, and it's correct. The trouble starts when you run it on a real ecommerce store, because "variable costs" hides a dozen decisions: is shipping revenue, are returns a cost, does ad spend belong in the number at all? This guide covers the formula, contribution margin per unit, the ratio, the income statement format and weighted average contribution margin for multi-SKU stores, then works through a full DTC order and a full month in dollars first, with the percentages alongside, so you can see every line.
What is contribution margin?
Investopedia defines it as the portion of a product's sales revenue that isn't used up by variable costs, and so contributes to covering the company's fixed costs. The Corporate Finance Institute puts the same idea the other way round: contribution margin equals fixed costs plus net income. Either way, it answers one question, which is how much each sale adds to the pot that pays for the business.
Contribution margin = revenue − variable costs. It's what a sale contributes to fixed costs and profit, before those fixed costs come off.
The split that matters is between costs that move with every order and costs that don't. Variable costs rise and fall with sales volume: the product, the box, the postage, the card fee, the refund and, for most DTC brands, the ads. Fixed costs stay roughly the same whether you ship 500 orders or 5,000: salaries, rent, your tech stack, the accountant. Contribution margin counts the first group and ignores the second, which is why it's the number you use to decide whether to sell more of something, and net profit is the number that tells you whether the business as a whole worked.
Harvard Business Review makes the point that profit margin tells you how profitable the company is, while contribution margin tells you how a specific product contributes to that profit. For a store selling 40 SKUs through 3 ad channels, that difference is the whole job.
The contribution margin formula

There are 3 versions you'll see, and they're all the same idea at different zoom levels:
- Total: contribution margin = revenue − variable costs.
- Per unit: contribution margin per unit = selling price per unit − variable cost per unit.
- Ratio: contribution margin ratio = contribution margin ÷ revenue, shown as a percentage.
For a manufacturer, "variable costs" is mostly materials and direct labour. For an online store, it's a longer list, and the order you subtract it in is useful because each step answers a different question. That's where CM1, CM2 and CM3 come from.
How to calculate contribution margin for an ecommerce store
Step 1: Start from net revenue, not total sales
Take what customers actually paid you for products after discounts and refunds. If you charge for shipping, decide now whether that income sits in revenue (it's real money, so we include it) and then make sure the carrier cost sits in your costs. On Shopify, "net sales" is gross sales minus discounts and sales reversals, and excludes shipping and tax; "total sales" adds taxes, duties, shipping charges and fees back on, according to Shopify's sales report definitions. Pick one base and use it every time, or your percentages won't be comparable month to month.
Step 2: Subtract product cost to get CM1
CM1 is net revenue minus cost of goods sold. Use the landed cost (unit price plus inbound freight and duties), not just the supplier invoice. Shopify's cost per item field is designed for the price you paid the manufacturer "excluding taxes, shipping, or other costs", so if that's all you've entered, your COGS is understated before you start.
Step 3: Subtract the cost of delivering the order to get CM2
Fulfilment and pick-and-pack fees, packaging, carrier postage, payment processing fees and a returns allowance. CM2 tells you whether you can get a product to a customer profitably before you've paid anything to find them. It's the right number for repeat customers who come back through email or organic search.
Step 4: Subtract ad spend and other variable marketing to get CM3
Meta, Google Ads, TikTok and Pinterest spend, plus affiliate and influencer commissions that are paid per sale. CM3 is what most operators mean when they say "contribution margin", and it's the one that tells you whether growth is adding profit or just revenue. When this guide says contribution margin without a number, it means CM3.
A worked example: one DTC order
Here's one invented order for a skincare brand, so you can follow every line. A new customer clicks a Meta ad, buys 2 serums at $40 each, uses a 10% welcome code and pays $5.95 for shipping.
| Line | Amount | Notes |
|---|---|---|
| Gross product sales | $80.00 | 2 × $40 |
| Discount (10% code) | −$8.00 | |
| Shipping charged to the customer | $5.95 | |
| Net revenue | $77.95 | |
| Product cost (landed) | −$19.00 | 2 × $9.50 |
| CM1 | $58.95 | 75.6% of net revenue |
| Pick, pack and packaging | −$3.40 | 3PL pick fee plus box and insert |
| Carrier shipping | −$7.20 | What you pay, not what you charge |
| Payment fee | −$2.56 | 2.9% + 30¢ on $77.95 |
| Returns allowance | −$3.60 | 5% of net product sales |
| CM2 | $42.19 | 54.1% |
| Ad spend (blended cost per order) | −$30.00 | |
| CM3 (contribution margin) | $12.19 | 15.6% |
The payment fee uses Stripe's standard US rate of 2.9% + 30¢ per successful domestic card transaction; check your own processor's rate, because it varies by plan, country and card type. The 5% returns allowance is an assumption for a low-return category. Apparel runs far higher: retailers surveyed by the National Retail Federation and Happy Returns expected 16.9% of 2024 sales to be returned across all retail.

Read it in dollars first. The product leaves $58.95 after its own cost (CM1), $42.19 once it's been picked, packed, posted, paid for and allowed for returns (CM2), and $12.19 once the ad that found the customer is paid (CM3). As percentages that's 75.6%, 54.1% and 15.6%, and at CM1 you'd scale this product without thinking. The dollars tell you what to do with it: $42.19 is the most you can pay to win this order, so if the cost per order drifts from $30 to $43 the sale loses money. That's the reason to track CM3 daily rather than monthly, and it's also how break-even ROAS is worked out: net revenue ÷ CM2, which here is $77.95 ÷ $42.19 = 1.85. Any campaign returning less than 1.85x on orders like this one is buying sales at a loss. The breakeven point ROAS page explains the logic in more detail.
You can run your own order through the free contribution margin calculator, which shows the margin before and after marketing, or use the order profit calculator for a single order's full breakdown.
Contribution margin vs gross margin vs net profit
These 3 get mixed up more than any other metrics in ecommerce, mostly because each one answers a different question. Gross margin is net sales minus cost of goods sold. Contribution margin takes off every variable cost. Net profit takes off fixed costs too.
| Gross margin | Contribution margin (CM3) | Net profit | |
|---|---|---|---|
| Formula | Net sales − COGS | Revenue − all variable costs | Contribution margin − fixed costs |
| Costs included | Product cost only | Product, fulfilment, shipping, fees, returns, ad spend | Everything, including salaries, rent, software, interest and tax |
| Our example order | $53.00 (73.6%) | $12.19 (15.6%) | Depends on the month's fixed costs |
| The question it answers | Is the product priced well against what it costs? | Does this sale, product or channel add money? | Did the business make money? |
| Best used for | Pricing and supplier decisions | Ad spend, product mix, discounts, daily decisions | Monthly and annual results |

The gap between $53.00 of gross profit and $12.19 of contribution margin on the same order is where most DTC brands lose the plot. Shopify's own profit reports calculate gross margin as (net sales − cost) ÷ net sales, using the cost per item you've entered, so a founder reading the admin sees a 73.6% margin, and none of the $40.81 that shipping, fees, returns and the ad take out of it (net of the shipping the customer paid). Shipping, fees, returns and the Meta bill all live somewhere else, and nobody adds them up until the accountant does it 6 weeks after the month closes. For a deeper look at how the margins stack, see our guide to ecommerce profit margins.
Why measure contribution margin instead of ROAS
Most brands still judge marketing on ROAS, the revenue an ad platform says it drove divided by what you spent. It's on every dashboard, and it has 2 problems contribution margin doesn't.
The first is that ROAS depends on each platform's own attribution. Every platform counts the orders it thinks it caused, inside its own windows: by default, a Google Ads conversion can be counted for 30 days after a click, 3 days after an engaged video view and 1 day after an ad is only seen. Meta and TikTok run their own windows, so the same order can be claimed by more than one of them, and the platform totals add up to more orders than your store shipped. Tracking has also got patchier since Apple's App Tracking Transparency arrived in iOS 14.5, which requires apps to ask permission before tracking people across other companies' apps and websites, so platforms fill the gaps with estimates. Google says its Conversions column reports modelled and observed conversions together.
The second is that ROAS ignores every cost except the ad. Product cost, shipping, pick and pack, payment fees, returns and discounts aren't in it, and on our example order the first 5 take $35.76 out of $77.95, after the $8 discount has already come off, before a cent goes to Meta. A 4x ROAS on a discounted, low-margin product can lose money while a 2.5x ROAS on a full-price hero product makes it.
Contribution margin avoids both problems because it's counted from the orders in your store and the costs on your invoices, so it's the same number whichever platform you ask, in dollars you can bank. The contribution margin ratio guide works through 2 campaigns side by side, and our posts on ROAS vs profitability and MER vs ROAS go deeper on why platform ROAS flatters.
CM1, CM2 and CM3: the contribution margin levels ecommerce teams use
There's no accounting standard for CM1, CM2 and CM3. They're an operator convention, and different tools and agencies draw the lines in slightly different places: some put ad spend in CM2, some put returns in CM1, some treat agency fees as variable marketing. The labels matter less than writing your definitions down and using them every time.
| Level | What comes off | The question it answers | Our example order |
|---|---|---|---|
| CM1 | Product cost (landed COGS) | Is the product priced well? | $58.95 · 75.6% |
| CM2 | Fulfilment, packaging, shipping, payment fees, returns | Can we deliver it profitably? | $42.19 · 54.1% |
| CM3 | Ad spend, affiliate and influencer commissions | Are we acquiring customers profitably? | $12.19 · 15.6% |
The useful thing about the ladder is that it tells you where to look when the bottom number goes wrong. If CM1 is falling, it's price, discounting or supplier cost. If CM1 is fine and CM2 is falling, look at carrier rates, packaging, a 3PL invoice or a rise in returns. If CM2 is fine and CM3 is falling, it's ad efficiency, so look at cost per order by channel, creative fatigue or a campaign spending into weak demand.
One point that trips people up: a repeat customer who comes back through an email doesn't carry the $30 acquisition cost. The same 2-serum order from a returning customer keeps CM2 of $42.19, more than 3 times the first order. That's why repeat customers change the economics of a store, and why first-order CM3 and customer lifetime value need to be read together rather than separately.
Contribution margin per unit
Contribution margin per unit is the selling price of one unit minus the variable cost of one unit. For a single-product order it's straightforward. For ecommerce, where most costs are per order rather than per item, you have to share the order-level costs (postage, pick fee, card fee) across the units in the order.
In our example, each serum brings in $38.98 of net revenue (half of $77.95, including its share of the shipping charged) and carries $17.88 of variable cost before ads (half of $35.76). So:
- Contribution margin per unit before ads: $38.98 − $17.88 = $21.10.
- Contribution margin per unit after ads: $21.10 − $15.00 (half the $30 cost per order) = $6.10.
Per-unit contribution margin is what break-even analysis runs on: fixed costs ÷ contribution margin per unit = the units you need to sell to cover them. If this store had $60,000 of monthly fixed costs and every serum was sold to a paid new customer, it would need about 9,840 serums a month to break even. That number is deliberately unflattering, because it ignores repeat buyers, and it's the clearest way to see why paid acquisition alone rarely pays for a team.
The unit economics guide takes this further into CAC payback and lifetime value.
Contribution margin ratio
The contribution margin ratio is contribution margin as a percentage of revenue: contribution margin ÷ revenue. Our example order's $42.19 before ads and $12.19 after them are ratios of 54.1% and 15.6%. The ratio is what lets you compare a $40 order with a $400 one, or January with December, and it's how you turn a fixed-cost budget into a revenue target (more on that below).
A 50% contribution margin ratio means 50 cents of every dollar of revenue is left to pay fixed costs and make profit. Whether that's good depends on which level you're quoting, which is why a ratio without "CM2" or "CM3" next to it isn't worth much. And a ratio can't pay salaries: scaling ad spend usually lowers the ratio a few points while adding dollars of contribution, so manage the dollar figure and use the ratio as a guardrail, mainly for setting break-even ROAS. The ratio guide linked above shows this with a 2-month example.
The contribution margin income statement
A contribution margin income statement (also called a contribution format or variable-cost income statement) lists revenue, subtracts every variable cost to arrive at contribution margin, then subtracts fixed costs to arrive at profit. AccountingTools explains that it reaches the same bottom line as a traditional income statement; only the order of the costs changes. A traditional statement groups costs by function (cost of goods sold, then selling, general and administrative), while the contribution format groups them by behaviour, variable or fixed. Shopify's guide to the contribution format walks through the same comparison.
For a DTC brand, the contribution format is the more useful one, because it's the one that matches how decisions get made. Here's an invented month for the same store:

| Line | Amount | % of net revenue |
|---|---|---|
| Net revenue (after $28,000 discounts and $14,000 returns, plus $16,000 shipping charged) | $314,000 | 100% |
| Product cost (landed COGS) | −$82,000 | |
| CM1 | $232,000 | 73.9% |
| Fulfilment, packaging, carrier shipping | −$42,400 | |
| Payment fees, returns handling | −$11,600 | |
| CM2 | $178,000 | 56.7% |
| Ad spend ($94,000) and affiliate commissions ($6,000) | −$100,000 | |
| CM3 (contribution margin) | $78,000 | 24.8% |
| Fixed costs: team, software, agency retainer, rent | −$60,000 | |
| Operating profit | $18,000 | 5.7% |
The month leaves $78,000 of contribution margin after $100,000 of marketing. That pays the $60,000 of fixed costs and leaves $18,000 of operating profit, and those dollars are the numbers to set targets against. As a ratio it's 24.8%, higher than the 15.6% on our single paid order, because a good share of the month's revenue came from returning customers who cost nothing to acquire. That's normal, and it's why a month-level number and an order-level number tell you different things.
This layout is also how StoreHero's P&L is built: net sales, then gross margin, margin after fulfilment, contribution margin and net profit, every day, with each line as a share of net sales. If you'd rather not build this in a spreadsheet each month, StoreHero pulls the costs from Shopify, your ad accounts, your shipping tools and your payment fees, and shows contribution margin before and after marketing by day and by ad channel, with profit on every order and product. The pricing page has the plans; the free calculator linked above is the quickest way to sanity-check one order first.
Weighted average contribution margin for multi-SKU stores
Most stores don't sell one product, and their products don't earn the same margin. Weighted average contribution margin gives you one per-unit number for the whole catalogue, weighted by how much of each product you sell. The formula is the sum of each product's contribution margin per unit multiplied by its share of units sold (its sales mix).
| Product | CM per unit (before ads) | Share of units sold | Weighted |
|---|---|---|---|
| Serum | $21.10 | 50% | $10.55 |
| Cleanser | $11.40 | 30% | $3.42 |
| Gift set | $18.00 | 20% | $3.60 |
| Weighted average | 100% | $17.57 |
Now push the cleanser on Meta for a month so the mix becomes 30% serum, 50% cleanser, 20% gift set. Same products, same prices, same costs, but the weighted average drops to $15.63, $1.94 less on every unit sold (11%). On 8,765 units, that's about $17,000 less contribution before ads in a single month. If the example month's $94,000 of ad spend and $60,000 of fixed costs were set in advance, the store would need 8,765 units to cover them at the old mix and 9,853 at the new one, purely because of what it chose to promote.
That's the practical use of weighted average contribution margin: it shows you that product mix is a margin lever in its own right, and that the product you advertise matters as much as how efficiently you advertise it.
What is a good contribution margin for ecommerce?
There's no honest single number, and you should be suspicious of anyone who gives you one without saying which level they mean. A 30% contribution margin is excellent if it's CM3 on first orders and thin if it's CM1. Published benchmark tables rarely say which level they're quoting, how the sample was drawn or whether shipping sits in revenue. More importantly, a percentage can't tell you whether you made enough money, so we'd rather show you how to set your own target as a dollar figure than give you a range we can't source.
The method works from your fixed costs, because contribution margin exists to pay them:
- Add up a month of fixed costs. Salaries, software, the agency retainer, rent, insurance, the accountant. In our example month, $60,000.
- Decide the operating profit you want. Say $30,000 a month.
- Add them together. That's the contribution margin (CM3) you need: $90,000.
- Divide by your CM3 ratio to get the revenue target. The example month's ratio is $78,000 ÷ $314,000 = 24.84%, so $90,000 ÷ 24.84% means about $362,300 of net revenue a month.
- Or divide by your revenue to get the ratio target. At $314,000 of revenue, you'd need a CM3 ratio of 28.7%.
Your break-even works the same way: fixed costs ÷ CM3 ratio. For the example month, that's $60,000 ÷ 24.84%, about $241,500 of net revenue. One caveat: this assumes ad spend scales in a straight line with revenue, and it doesn't. Each extra dollar of spend usually buys less than the last, so treat the revenue target as a ceiling on what the current margin structure can deliver, not a promise. Our guide to forecasting ad spend covers how to plan spend against a profit target.
So is a 30% contribution margin good? If it's CM3 and it produces enough dollars to cover your fixed costs and leave the profit you want at a revenue level you can reach, then yes. If it's CM1, it almost certainly isn't. Watch the dollars before the percentage: scaling ad spend usually lowers the ratio a few points while adding contribution margin, and cutting the prospecting that brings in next quarter's repeat customers can lift the ratio while the business makes less. We show this with a worked example in our contribution margin ratio guide.
How to improve contribution margin
Every lever sits on one rung of the CM1 → CM3 ladder, which makes it easier to see what each one is worth. Using the example order:
- Raise average order value. The same customer buying 3 serums instead of 2, at the same $30 cost per order (and allowing 80¢ more for picking and 40¢ more for postage), adds $22.46 of contribution to the order: CM3 goes from $12.19 to $34.65 (15.6% to 30.4%), because the postage, pick fee and ad cost are shared across more product. Bundles and free-shipping thresholds do this; see increasing AOV to boost ROAS.
- Be careful with discounts. The 10% welcome code costs $7.37 of contribution on this order: without it, CM3 is $19.56 instead of $12.19, and that $7.37 is 60% of the $12.19 the discounted order keeps. That's only worth it if it changes whether the customer buys at all, which is the thing to test. Our guide on how and when to discount goes through the trade-offs.
- Spend ads where CM3 is positive. Rank campaigns and products by the dollars of contribution margin they leave after ad spend, not by ROAS. A campaign below break-even ROAS is losing money on every order, however good its revenue looks.
- Push the higher-margin products. As the weighted average example shows, moving 20% of units from a low-margin product to a high-margin one lifts contribution without touching price.
- Cut delivery costs. Carrier rates, packaging size and weight, 3PL fees and pick fees are all CM2 costs, and they're often renegotiable once volume grows.
- Reduce returns. Better size guides, product photography and expectation-setting reduce the returns allowance and the handling cost behind it.
- Fix the product cost. Supplier pricing, order quantities and inbound freight move CM1 for every future order.
- Grow repeat purchase. A returning customer's order carries no acquisition cost, so every point of repeat rate lifts blended contribution margin.
We go deeper on the bigger structural levers in the brand founder's guide to improving margins and 3 proven levers for margin expansion.
Common contribution margin mistakes
Counting shipping income without shipping cost. If shipping charged to customers sits in revenue, the carrier bill has to sit in costs. The reverse mistake is just as common: comparing your contribution margin to Shopify's net sales, which excludes shipping, and wondering why the numbers don't match.
Leaving out returns and payment fees. They're small per order and large per year. On our $77.95 order the payment fee is $2.56 and the returns allowance $3.60, together $6.16 (7.9% of revenue). Leave both out and the order looks like it keeps $18.35 instead of $12.19, half as much again.
Using supplier price as COGS. Freight, duties and inbound shipping are part of what the product costs you. If your cost per item in Shopify is the factory price, CM1 is overstated on every order.
Treating agency and software fees inconsistently. A percentage-of-spend agency fee behaves like a variable marketing cost and belongs above CM3. A flat monthly retainer is a fixed cost and belongs below it. Neither is wrong, but switching between them month to month makes the trend meaningless. Decide once, write it down.
Allocating ad spend by platform-reported attribution. For store-level contribution margin, use the ad spend you actually paid, not the revenue each platform claims, for the reasons in the ROAS section above.
Quoting only the percentage. A margin percentage without the dollars behind it can rise while the business makes less. Report contribution margin in dollars first, per order and per month, and the ratio next to it.
Mixing up the levels. A 50% "contribution margin" from a supplier deck, an agency report and your own dashboard can mean 3 different things. Ask which costs are in it before you compare.
Calculating it once a quarter. Contribution margin changes with every price change, promotion, carrier surcharge and ad auction. The brands that use it well look at it daily, because the decisions it informs (spend, discount, push, pause) are daily decisions.
Why ChatGPT gets your contribution margin wrong
Ask ChatGPT or Claude what contribution margin is and you'll get the textbook answer: revenue minus variable costs. That's correct, and it's also where the trouble starts, because the model has to guess which costs you count as variable. Give it a P&L export and a Meta spend report and ask for your contribution margin, and it will often stop at gross margin or at CM2 (before ads), because nothing in the question tells it that you mean the number after marketing. Brands regularly send us AI explanations of their own numbers that are confidently wrong for exactly this reason.
It isn't a bug in one product. Researchers from OpenAI and Georgia Tech argue in Why Language Models Hallucinate that models guess when uncertain because training and evaluation reward guessing over admitting uncertainty. An undefined business metric is the perfect place to guess.
The fix is definition, not a better model:
- Tell it which level you mean. "Contribution margin means CM3: net revenue minus landed product cost, fulfilment, packaging, carrier shipping, payment fees, a returns allowance, ad spend and affiliate commissions."
- Tell it what revenue is. "Net revenue is gross sales minus discounts and refunds, plus shipping charged."
- Tell it how to treat the grey areas. "Agency retainers and software are fixed costs, not marketing."
- Ask it to show the ladder. "Show CM1, CM2 and CM3 with each line, so I can check it."
Better still, give the AI data where contribution margin is already calculated the way you define it, so it reads the number instead of inventing it. Our free product profitability prompt is one example of how to set that up.
Contribution margin, in short
The formula is revenue minus variable costs. The work is deciding what's variable, writing it down and calculating it often enough to act on. Track the full ladder in dollars, per order and per month, with the percentages alongside: CM1 for price, CM2 for delivery and CM3 for acquisition, because when contribution margin moves, the level that moved tells you who needs to fix it.
StoreHero builds your P&L from Shopify, your ad accounts and your costs, and shows contribution margin before and after marketing by day and channel, with profit on every order and product.
Key takeaways
- Contribution margin = revenue − variable costs. It's what each sale contributes to fixed costs and profit.
- For ecommerce, track 3 levels: CM1 after product cost, CM2 after fulfilment, shipping, fees and returns, CM3 after ad spend.
- On the $77.95 example order, the product makes $53.00 of gross profit but leaves only $12.19 of contribution margin after every variable cost, which is why gross margin misleads.
- Contribution margin per unit, the ratio and weighted average CM are the same idea at different zoom levels; weighted average shows product mix is a margin lever.
- Set your target as a dollar figure: fixed costs + target profit = the contribution margin you need each month. The ratio then tells you the revenue it takes.
- AI tools default to the textbook definition, so tell them which costs you count or give them data where contribution margin is already defined.
Frequently asked questions
What is contribution margin in simple words?
It's the money a sale leaves you after paying every cost that came with that sale: the product, packaging, shipping, payment fees, returns and the ads that won the order. What's left goes towards your fixed costs, such as salaries and rent, and then becomes profit.
Is contribution margin the same as profit?
No. Contribution margin is profit before fixed costs. Net profit is what remains after you also take off salaries, software, rent, interest and tax. A store can have a positive contribution margin and still lose money if the contribution doesn't cover its fixed costs.
What is contribution margin vs gross margin?
Gross margin is net sales minus the cost of the products sold. Contribution margin subtracts every variable cost, so it also takes off fulfilment, shipping, payment fees, returns and, for most ecommerce brands, ad spend. On the example order in this guide, that's $53.00 of gross profit (73.6%) against $12.19 of contribution margin after ads (15.6%).
How do you calculate the contribution margin per unit?
Subtract the variable cost of one unit from its selling price. In ecommerce, share order-level costs such as postage, pick fees and card fees across the units in the order. In this guide's example, a $40 serum sold with a 10% code earns $21.10 per unit before ads and $6.10 after them.
What is a contribution income statement?
It's an income statement that lists revenue, subtracts all variable costs to show contribution margin, then subtracts fixed costs to show operating profit. It reaches the same bottom line as a traditional income statement but groups costs by whether they change with sales, which makes it more useful for pricing, ad spend and product decisions.
Is 30% contribution margin good?
It depends on which level it is and what your fixed costs are. A 30% contribution margin after ad spend (CM3) is strong if it covers your fixed costs at a revenue level you can reach. A 30% margin after product cost only (CM1) is thin for a DTC brand, because shipping, fees, returns and ads still have to come out of it.
What does 50% contribution margin mean?
It means 50 cents of every dollar of revenue is left after variable costs, available to pay fixed costs and make profit. On $100,000 of revenue, that's $50,000 of contribution. Always check whether the 50% is before or after ad spend, because the two can be very different.
What is a good contribution margin?
Set it as a dollar figure first. Add a month of fixed costs to the operating profit you want: that's the contribution margin (CM3) you need each month. Then divide by your contribution margin ratio to see the revenue it takes. Treat any single percentage benchmark with caution unless it says which costs it includes, because the same percentage can be plenty for one brand and nowhere near enough for another.
Sources
- Investopedia: Contribution margin
- Corporate Finance Institute: Contribution margin
- Harvard Business Review: Contribution margin, what it is, how to calculate it, and why you need it
- AccountingTools: Contribution margin income statement
- Shopify: Contribution format income statement
- Shopify Help Center: Sales report definitions
- Shopify Help Center: Profit reports
- Shopify Help Center: Cost per item
- Stripe: Pricing
- NRF and Happy Returns: 2024 retail returns to total $890 billion
- Investopedia: Sales mix
- Kalai et al. (2025): Why Language Models Hallucinate



