
The contribution margin ratio tells you how much of every sales dollar is left after variable costs. This guide gives you the formula, the per-unit version, and the contribution margin income statement rebuilt for a Shopify P&L. Here is the problem with every other guide ranking for this term: they use a coffee shop or a lemonade stand, and those examples hide the costs that actually kill DTC margin. Shipping. Payment fees. Variable ad spend. By the end of this page you can rebuild your own contribution margin income statement, plug your real numbers into the calculator below, and know whether your ratio is healthy for ecommerce.
Plug in your real order economics. This calculator uses ecommerce inputs, not factory costs, so the output reflects what a Shopify operator actually keeps per order.
See your real per-order contribution margin in a 20-minute Polar walkthrough. We connect your Shopify data and show your true contribution by channel and by SKU, not a generic example.
The contribution margin ratio is the share of revenue left after variable costs, expressed as a percent. It tells you how much of each sales dollar survives to cover fixed costs and then turn into profit.
Three terms get mixed up, so separate them now. Contribution margin in dollars is revenue minus variable costs. Contribution margin per unit is the price of one unit minus its variable cost. The contribution margin ratio is that dollar figure divided by revenue, shown as a percentage. Same idea, three views.
The contribution margin ratio equals revenue minus variable costs, divided by revenue. A 40 percent ratio means 40 cents of every sales dollar remains after variable costs to cover fixed costs and profit.
Keep the distinction sharp. The ratio scales across any volume. The dollar figure tells you the absolute cushion. Operators use both.
The contribution margin ratio formula is straightforward:
Contribution margin ratio = (Revenue - Variable costs) / Revenue
The per-unit form says the same thing for a single order or SKU:
Contribution margin ratio = (Price - Variable cost per unit) / Price
This is standard managerial accounting, the same definition the Corporate Finance Institute uses for cost-volume-profit work. The trick is not the math. The trick is what you load into "variable costs."
Take one order. Real ecommerce cost lines, not a lemonade stand.
Variable cost here is $36, not the $18 of COGS a generic guide would stop at. Shipping erodes contribution. Ad spend compresses the margin further. The ratio that matters is 40 percent, not the 70 percent you would report if you only subtracted product cost.
With Polar: This is exactly the gap the Synthesizer closes. It unifies ad spend, COGS, payment fees, and shipping into one governed semantic layer, then computes CM1, CM2, and CM3 continuously instead of in a static table that only sees product cost. You get the real 40 percent ratio, broken down line by line, without ever building the $36 stack by hand.
Contribution margin per unit is the selling price of one unit minus the variable cost of that unit. For DTC, the unit is usually one order or one SKU, because that is the grain operators make decisions at.
Here is the DTC twist, and it is the whole differentiation of this page. Variable cost per order must include shipping, payment fees, and variable marketing, not just COGS. A SKU can look healthy on product margin and dilute blended contribution once you add the ad cost it took to sell it. Contribution margin after ad spend is the number that decides whether scaling a SKU makes you money or burns it.
Operators think per order because that is where the levers live. Raise AOV, the ratio climbs. Negotiate a shipping rate, contribution per order rises across the whole catalog. This is contribution margin per order, Shopify-style, and almost no guide computes it this way.
With Polar: Computing contribution at the SKU and order grain is where spreadsheets break down. With Custom Metrics and Custom Dimensions in the Synthesizer, you define variable cost per order once, including the ad cost it took to sell each SKU, and that definition flows everywhere. A SKU that looks healthy on product margin but dilutes contribution after ad spend surfaces on its own, so you scale the ones that actually pay.
The contribution margin income statement groups costs by behavior, variable versus fixed, instead of by function. A GAAP income statement buckets costs into COGS, then operating expenses, then overhead. That structure answers an accountant's question. It does not tell an operator how much each incremental order contributes.
The contribution margin income statement reorders everything around one cut: does this cost move with volume, or not? Everything that scales per order sits above the contribution line. Everything fixed sits below it.
Rebuild the P&L by cost behavior and it looks like this:
Gross revenue
- Discounts and returns
= Net revenue
- COGS
- Shipping and fulfillment
- Payment processing fees
- Variable marketing (ad spend tied to orders)
= Contribution margin
- Fixed costs (rent, salaries, software, brand spend)
= Operating profit
That waterfall is the featured concept of this page. It is the operational view of profit, and it is the one that tells you which channels and SKUs actually pay their way.
Building it by hand every month is the catch. Most teams export Shopify, ad platform, and fee data into a spreadsheet and stitch it together, then redo it next month. Polar solves this with Custom Metrics and Custom Dimensions on top of a dedicated Snowflake instance: you define contribution margin once, with your real cost lines, and the metric appears everywhere, no monthly rebuild. Contribution margin two and contribution margin three have been built-in custom metrics in Polar for years, so the full cost stack from COGS through ad spend is already modeled. For the foundations of these numbers, see our DTC unit economics guide.
How to find contribution margin comes down to four steps:
The hard part in ecommerce is step two, specifically getting blended marketing down to a per-order variable cost. This is the omnichannel-CAC trap: blended CAC over-credits paid acquisition and smears ad cost across orders that paid platforms never actually drove, so your per-order variable cost is wrong before you start. Polar Pixel attributes ad cost to orders with click-based, server-side, first-party data and one conversion definition applied identically across Meta, Google, and TikTok, so there is no view-through inflation padding the number. Causal Lift then runs geo-based holdout tests to measure the incremental spend, the spend that actually moved orders, so the variable marketing line in your contribution math reflects real lift, not platform-reported credit. LifetimeID stitches one customer identity across DTC, POS, wholesale, and marketplaces so blended CAC stops double-counting.
Gross margin and contribution margin are not the same number, and confusing them is how a brand convinces itself it is profitable when it is not. Gross margin stops at COGS. Contribution margin keeps subtracting every variable cost: shipping, payment fees, and variable marketing.
A mid-size apparel brand looked healthy on gross margin and was negative on contribution once ads and returns landed. That is the common pattern. Gross margin flatters; contribution margin tells the truth.
A good contribution margin ratio for ecommerce usually lands somewhere between 25 and 50 percent after all variable costs, but one number does not fit every model. The range bends hard on your DTC archetype.
Healthy contribution margin ratio ranges (after all variable costs)
High-AOV, low-velocity brands carry fewer orders, so each one must contribute more. Low-AOV, high-velocity brands run thinner per order and make it up on volume, which means shipping and fees bite harder as a share of AOV. A subscription brand with predictable repeat orders can run profitably at a lower ratio than a one-and-done seller, because acquisition cost amortizes over a customer's lifetime. LifetimeID measures contribution across that lifetime instead of a single order, which is the right lens for repeat models.
This is where a KPI is a definition, not a number. Your ratio is only as good as how you defined variable cost. Two brands quoting "40 percent" can mean completely different things if one excludes ad spend. Define the inputs before you benchmark. The same logic applies to a good contribution margin ratio for a Shopify store: pin down the cost lines first.
With Polar: The Synthesizer holds a single governed definition per metric, so "contribution margin ratio" means one thing across every dashboard, channel, and team. No two teammates quote a different 40 percent because one quietly dropped variable marketing. Sitting on a dedicated Snowflake instance per customer, that definition is yours to query, export, and audit, not a black box you have to take on faith.
The contribution margin ratio drives two decisions every operator makes. First, break-even:
Break-even orders = Fixed costs / Contribution margin per order
At $24 contribution per order and $24,000 in monthly fixed costs, you break even at 1,000 orders. Raise contribution per order to $30 and break-even drops to 800. The ratio moves the whole line.
Second, operating leverage. Once you clear break-even, a high contribution margin ratio means each additional order drops more to the bottom line. That intuition tells you which SKUs and channels to scale, where discounting still leaves contribution intact, and where it does not. Querying this by channel or SKU on demand used to mean filing a request and waiting, the Question Latency Tax. Ask Polar and the Polar MCP let you ask for contribution margin by SKU or channel in plain language and get an answer with citations, reasoning against the governed semantic layer rather than writing raw SQL against your tables.
The contribution margin ratio breaks in predictable ways, and no competitor page will tell you this. Misclassify a fixed cost as variable and the ratio lies. Blended-marketing distortion smears ad cost across the wrong orders. Returns that land in a later period inflate this month and deflate the next. And the ratio ignores time entirely, so a high-contribution SKU that sells once a quarter can matter less than a thin one that turns weekly. The metric is a lens, not a verdict. Pair it with break-even, payback, and lifetime contribution before you bet the budget on it. The cleaner your ecommerce analytics foundation, the less these distortions cost you.
See your real per-order contribution margin in a 20-minute Polar walkthrough. We rebuild the contribution margin income statement on your live Shopify data, attribute ad cost per order with Polar Pixel and Causal Lift, and hand you contribution by channel and SKU without a spreadsheet.
