How to use Contribution Margin Measurement
A practical guide to measuring contribution margin in DTC ecommerce — the inputs, the data sources, and the methodology traps that produce misleading numbers.
Contribution Margin Measurement
The practice of computing the revenue left after all variable costs of fulfilling an order — used to judge whether growth is actually profitable.
Contribution margin measurement is the operational discipline of working out, for a given order, SKU, channel, or cohort, how much revenue remains after every variable cost tied to that sale is subtracted. The inputs are scattered across Shopify, ad platforms, your 3PL, and your payment processor, which is why most stores end up with three different versions of the same number.
Done properly it tells you whether your next euro of ad spend creates profit or burns it. Done sloppily — ignoring returns, mixing fixed and variable costs, using blended COGS — it produces a margin figure that looks healthy right up until the bank balance disagrees.
Most operators learn the contribution margin formula in five minutes and then spend two years fighting over what counts as a variable cost. That fight is the entire point — the formula is trivial, the measurement is not.
This guide walks through how the calculation actually works in production: the three levels of granularity (order, SKU, blended), where each input lives in your stack, and the methodology choices that quietly bias the result. If you want a live widget instead of the math, the contribution margin calculator handles the arithmetic — this page is about doing it correctly.
The three levels of granularity
Contribution margin can be measured at three levels, and each answers a different question. Order-level CM tells you whether a single transaction was profitable. SKU-level CM tells you which products are subsidising which. Blended CM tells you whether the whole business is funding its own growth.
Order-level is the most useful for ad bidding because it maps cleanly onto the CAC you pay per order. It captures the actual shipping cost for the destination, the actual discount applied, and the payment fees on the realised cart value — none of which you get from a SKU-level model.
SKU-level is what you need for assortment and merchandising decisions. It exposes the t-shirt that loses €4 per unit once you back out returns, and the candle that prints money because it ships in a padded mailer instead of a parcel. The companion page on contribution margin by SKU goes deeper on the allocation method.
Blended CM hides the leaks
A healthy 38% blended contribution margin can easily contain a hero SKU running at 55% and three sleeper SKUs running at 12%. If you only watch the blended number, you'll keep scaling spend into the loss-makers because the average looks fine. Always pair blended with at least a SKU-level decomposition.
Where each input actually lives
The reason CM measurement is hard isn't math, it's data plumbing. Revenue and discounts live in Shopify. Ad spend lives in Meta, Google, and TikTok with three different attribution windows. Pick, pack, and shipping costs live in your 3PL's monthly invoice. Payment fees live in Stripe or Shopify Payments. COGS lives in a spreadsheet your operations lead updates whenever a new PO lands.
The cleanest practical setup is to anchor everything to the Shopify order ID, then enrich it with cost data from each system. Ad spend is the awkward one because it doesn't attach to an order — you allocate it after the fact, usually by dividing channel spend by channel orders for the same window. The contribution margin by channel guide covers this allocation in more depth.
Typical variable-cost composition of a €60 DTC apparel order
The chart above is a representative breakdown for an apparel store in the €50-€80 AOV band. Notice that paid media is the single biggest non-COGS line — which is why teams obsessing over a 1-point COGS improvement while ignoring CAC drift are optimising the wrong variable.
Benchmarks by vertical and order tier
Contribution margin varies wildly by vertical because the cost stack varies. Beauty and supplements run high CM because product cost is low and shipping is cheap. Apparel runs lower because returns eat 8-15% of revenue. Furniture and bulky goods run lowest because shipping can swallow 20% of the order on its own.
Use the table below as a sanity check on your own numbers, not as a target. If your beauty store is sitting at 22% CM, something is wrong with either your pricing or your media efficiency — not with your ambition.
Typical contribution margin ranges by vertical and AOV tier (post-CAC, post-returns)
| Vertical | AOV €30-60 | AOV €60-120 | AOV €120+ |
|---|---|---|---|
| Beauty & skincare | 35-45% | 40-50% | 45-55% |
| Apparel & accessories | 25-32% | 28-36% | 32-42% |
| Supplements & food | 30-40% | 35-45% | 40-48% |
| Home & lifestyle | 22-30% | 26-34% | 30-40% |
| Furniture & bulky | 12-20% | 15-25% | 20-30% |
| Electronics & accessories | 15-22% | 18-26% | 22-32% |
These ranges assume you're including paid media in the variable cost stack — which most finance teams don't, and most growth teams should. The contribution margin vs gross margin comparison covers why that distinction matters more than most operators realise.
Methodology pitfalls that distort the number
Five mistakes account for the vast majority of misleading CM numbers. First, using landed COGS that haven't been updated since the last freight spike. Second, forgetting that returns aren't just refunded revenue — they also cost you the inbound shipping, the inspection labour, and often the unit itself if it can't be resold. Third, allocating ad spend on a 7-day click attribution window when your real payback is 30 days, which understates revenue against spend.
Fourth, mixing fixed and variable costs — your 3PL's monthly storage fee is fixed in the short run and does not belong in CM, even though it shows up on the same invoice as the per-order pick fee. Fifth, ignoring the gift-with-purchase and free-sample units that ship alongside paid orders; those are real COGS that need to be allocated back to the order that triggered them. This is also where LTV measurement starts to matter — if CM is negative on first order but positive across the cohort, that's a decision, not a mistake.
Pick one definition and stick to it
The fastest way to derail a margin conversation is to have finance, growth, and merchandising each using a different CM definition. Write down exactly which costs you include and at what allocation method, share it across teams, and review it quarterly. Consistency beats precision — a slightly imperfect formula applied consistently is more useful than a perfect formula nobody agrees on.
Frequently asked questions
Gross margin subtracts only COGS from revenue. Contribution margin subtracts COGS plus every other variable cost tied to the order — shipping, payment fees, returns, and usually paid media. Gross margin is an accounting view; contribution margin is an operating view.
For DTC operators making bidding and channel-mix decisions, yes. Excluding it gives you a margin number that tells you nothing about whether your growth is profitable. Some finance teams prefer a 'pre-marketing CM' for reporting and a 'post-marketing CM' for decision-making — both are valid as long as you're clear which is which.
COGS and shipping rates should be refreshed at least quarterly, or whenever a new PO or 3PL contract lands. CAC needs to be tracked weekly because it moves fastest. A monthly full CM review with a weekly CAC-only check is the practical cadence for most stores in the €1M-€15M revenue band.
Not to measure blended or order-level CM, no. But you need it the moment you want to make assortment, pricing, or merchandising decisions — because blended numbers will hide the SKUs that are bleeding margin. Start order-level, then layer in SKU-level once your data plumbing is stable.
Apply a returns reserve as a percentage of revenue, based on your trailing 90-day return rate. Include refunded revenue, inbound shipping, restocking labour, and write-offs for unsaleable returns. For apparel this typically lands at 8-15% of revenue; for beauty and supplements, 1-3%.
Most 3PLs invoice monthly with per-order pick fees, per-item pack fees, and a storage line. The per-order and per-item lines are variable and belong in CM; storage is fixed and does not. If your 3PL only provides aggregated invoices, divide variable lines by order count for the period as a pragmatic allocation.
LTV is the sum of contribution margin across a customer's purchases over time. If your first-order CM is thin or negative, you're betting that repeat purchases will make the cohort profitable — which only works if your retention is real. Always measure both together, never in isolation.
SKU-specific whenever you can. Blended COGS is acceptable as a starting point but it averages away exactly the signal you need — that your bestseller has 4 points more margin than your average and your worst SKU has 12 points less. The moment your assortment is more than a handful of SKUs, blended starts to mislead.
You don't — not cleanly. The pragmatic approach is to allocate channel spend across orders attributed to that channel within the same time window, using either platform-reported attribution or a marketing-mix model. Order-level ad-cost attribution is a useful fiction; channel-level is closer to reality.
Post-marketing contribution margin of 25-35% is the healthy range for most verticals — enough to cover fixed costs (rent, payroll, software) and still leave operating profit. Below 20% post-marketing and the business is fragile to any CAC increase; above 40% and you're probably under-investing in growth.
Track CAC, channels, and funnel conversion in one place
Metricuno connects ad spend, funnel events, and revenue so you can see CAC by channel, cohort, and campaign — without stitching together five tools.