Why Your Contribution Margin Is Lower Than Your Gross Margin
If your contribution margin is materially below your accounting gross margin, four costs are almost always doing the damage. Here's how to find them and close the gap.
Quick answer
If your contribution margin is 15-25 points below your gross margin, the gap is almost always made up of four costs your P&L hides above or below the gross-margin line: shipping subsidy, payment processing fees, returns and refunds, and variable marketing spend. The contribution margin is the truer number — manage to it, not to gross margin.
Contribution margin vs gross margin gap
The difference between accounting gross margin and true per-order contribution margin, usually 15-25 points wider than operators expect.
Gross margin is what your accounting system reports: revenue minus cost of goods sold. Contribution margin is what's actually left from each order after every variable cost — shipping, payment fees, returns, and marketing — has been paid. The two numbers almost never agree.
On a Shopify apparel store with a 65% gross margin, contribution margin often lands between 40% and 50%. That 15-25 point gap isn't a calculation error; it's a stack of variable costs your P&L either buries in operating expenses or nets against revenue. Closing the gap means finding which of the four usual culprits is eating the most.
If you just ran the contribution margin calculator and the output came in well below what your bookkeeper shows on the gross margin line, you are not doing the math wrong. You are doing it more honestly than your P&L does.
Why the two numbers diverge
Gross margin is a product-level accounting view. It answers one question: after I paid my supplier, the freight-in, and any inbound duty, how much is left? Everything else — shipping out to the customer, Stripe fees, returns processing, Meta ads — sits below that line in operating expenses.
Contribution margin asks a different question: after this specific order is fulfilled and the customer keeps it, how many euros actually contribute to overhead and profit? Every variable cost that scales with order volume belongs in that calculation, regardless of where your accountant filed it.
The reframe
Gross margin tells you whether your sourcing is healthy. Contribution margin tells you whether your business is healthy. They are not substitutes — and when they disagree by 20 points, the contribution number is the one your CAC, payback period, and ad budget should be built on.
Culprit 1: Shipping subsidy
Free shipping over €50 is the single biggest hidden margin eater for stores under €5M. If your blended outbound shipping cost is €6.20 and your average order value is €58, you are subsidising every order by roughly 10 percentage points of margin — and your gross margin line never sees it.
Run the diagnostic: take your last 90 days of Shopify shipping income, subtract what you actually paid your carrier, and divide by net revenue. If that ratio is negative — which it almost always is — that's culprit one, sized. A beauty SKU shop we audited recently was running a 7.3% shipping subsidy and had no idea.
Culprit 2: Payment processing creep
Shopify Payments at 1.7% sounds harmless. Then you add Klarna at 3.29% + €0.30, PayPal at 2.9% + €0.35, and a chunk of international Amex at 2.9%. The blended rate on a real DTC mix typically lands between 2.4% and 3.1% — not the headline number on your processor's pricing page.
Pull your last full month of payout reports, sum the fees, and divide by gross revenue. If you are above 2.5%, your payment mix is creeping. The fastest fix is steering checkout default to your cheapest rail — usually card via Shopify Payments — without removing the higher-fee options entirely.
Culprit 3: Returns dilution
Returns hit contribution margin in three places at once: you refund the revenue, you eat the outbound shipping you already paid, and you pay return shipping plus restocking labour. A 15% return rate on apparel — completely normal — can pull 6-9 points off contribution margin even when the product itself is resaleable.
The number that matters here is net contribution per gross order, not per net order. If you only count orders that stuck, you are flattering yourself. Calculate it on everything you shipped, including the ones that came back.
The most common error we see
Operators allocate returns as a fixed percentage of revenue when reporting margin. In reality, return rates spike on specific SKUs, sizes, and acquisition channels — Meta prospecting traffic returns at 2-3x the rate of email. Allocate at the segment level or you'll keep funding the wrong channels.
Culprit 4: Marketing cost allocation
This is the one most stores get wrong on purpose. Marketing is variable — every euro of revenue at your current CAC required a known euro of ad spend. If your blended CAC is €18 and your AOV is €60, marketing is consuming 30% of revenue. That belongs in contribution margin, not in a separate "growth" bucket you mentally exclude.
Once you allocate marketing properly, contribution margin becomes the number you can actually use to set an ad budget. If contribution before marketing is 55% and you want a 20% post-marketing contribution, you have 35 points of revenue to spend on acquisition. That's the math. Anything else is hoping.
Frequently asked questions
For e-commerce, yes — almost without exception. Gross margin excludes shipping out, payment fees, returns, and marketing, and all four of those are real variable costs. A 10-25 point gap between gross margin and contribution margin is the normal range for Shopify stores in the €1M-€15M band.
For apparel and beauty, 35-50% post-marketing contribution margin is healthy. Electronics and accessories run lower at 20-35% because of higher payment-fee exposure on bigger basket sizes. Below 20% means you have very little room to fund overhead and profit.
If your fulfilment cost scales with order volume — typical for 3PL pick-and-pack fees or per-order packing labour — yes, include it. If you have a fixed-cost in-house warehouse team, treat that as overhead. The test is whether the cost changes when order volume changes.
Most P&Ls report gross margin above the line and then split shipping, fees, returns, and marketing across operating expenses, COGS adjustments, and contra-revenue accounts. The contribution view collapses all of them into one variable-cost stack, which your accounting software isn't structured to do automatically.
Massively. CAC payback should be calculated on contribution margin, not gross margin. If you are using gross margin you are overstating how fast each customer pays back — often by 30-50%. That's why payback periods that look fine on paper still produce cash crunches.
No. VAT and sales tax pass through your business and never belonged to you. Use net revenue (ex-VAT) as the top line in every contribution calculation. If you are working from gross revenue, strip VAT first or your contribution margin will be inflated by the tax rate.
The fastest wins are usually raising the free-shipping threshold by €10-15, steering checkout to lower-fee payment rails, and tightening return policy on chronic offender SKUs. Marketing efficiency is slower to move and should be treated as a separate workstream.
Yes, alongside gross margin — not instead of it. Boards and investors expect gross margin because it's GAAP-comparable. Contribution margin is the operating number you use to make decisions. Report both and explain the gap; it signals you understand your unit economics.
Shipping and payment fees typically improve with scale (better carrier rates, processor negotiations). Returns and marketing usually do not. So the gap narrows a little, but it never closes — plan for a permanent 12-18 point spread once you're past €5M.
Monthly at minimum, weekly during peak periods like Q4 or a major launch. Shipping costs, payment mix, and return rates all move week to week, and a margin you set in January is stale by April. Build it into your standard reporting cadence.
Get an AI expert review of your site
Paste your URL — Metricuno's AI runs the same heuristic checks a senior CRO consultant would, scoring your page and prioritising the fixes that'll move conversion fastest.