Ecommerce Contribution Margin: The Number That Tells You If Yesterday Made Money

Contribution margin for ecommerce operators. CM1 vs CM2 vs CM3, what's in Human's number, and why a healthy gross margin can still lose money.

9 min

Joel Brda, Founder & CEO of Human. Last updated: August 31, 2026.

For ecommerce operators, contribution margin is what's left of net revenue after COGS, shipping and fulfillment, merchant fees, and marketing spend. At Human, that number is CM3. Human runs this number in Profit Compass. Every new client engagement opens with a Profit Compass audit. It is built to be directionally right every day. Your books remain the system of record.

Shopify, Meta, and Google will show you revenue and ROAS. They will not show you whether that revenue made money after COGS, shipping, fees, and ads. You can hit a ROAS target and still shrink your profit.

What is contribution margin for an ecommerce brand?

Contribution margin is not net profit, and it is not EBITDA. It answers a narrower question than the close: after the costs that move with selling, did this order, day, or month contribute cash? Rent, salaries, and software sit below it. They are not this number.

The path is gross revenue → contribution margin → EBITDA. The books close the last step. The middle step should be visible every day.

A Shopify or BigCommerce brand can show healthy Shopify gross profit and a strong Meta ROAS in the same week contribution margin is negative. For the CFO framing of the same number, see The Contribution Margin Growth Manifesto for CFOs.

How do you calculate contribution margin for a Shopify or BigCommerce brand?

Net revenue is gross store revenue plus shipping charged to customers, minus discounts, minus refunds. Contribution margin (CM3) is that net revenue minus COGS, shipping and fulfillment, transaction/platform fees, and marketing spend.

This is the published formula Human runs on Shopify and BigCommerce accounts. Same math in The Contribution Margin Growth Manifesto for Growth Marketers.

  • Net revenue = Gross store revenue
                + shipping charged to customers
                - discounts
                - refunds
    
    Contribution Margin = Net Revenue
                        - Cost of Goods Sold (COGS)
                        - Shipping & Fulfillment
                        - Transaction/Platform Fees
                        - Marketing Spend

    Shipping charged to customers is cash in. Brand-paid shipping is a cost. Discounts and refunds come out of net.

    In the calculator, shipping, fulfillment, payment fees, and packaging sit in "variable costs (non-ad)." Ad spend is its own line:

  • Gross profit = Net revenue - COGS
    
    Contribution margin (Human's contribution margin = CM3)
                 = Gross profit
                 - Variable costs (non-ad)
                 - Ad spend

    Run the same math on your numbers.

    What is CM1 vs CM2 vs CM3?

    CM1 is net revenue minus COGS. CM2 is CM1 minus shipping, fulfillment, and merchant fees. CM3 is CM2 minus marketing spend. Human's published contribution margin is CM3.

    CM1 is product economics. CM2 is order economics before ads. CM3 is what's left after acquisition. Some blogs put ads in CM2. We put ads in CM3. If another write-up calls the post-marketing number CM2, they are using a different ladder. When Human says contribution margin with no qualifier, that is CM3.

    RungQuestion it answersFormula
    CM1Does the product cost work?Net revenue - COGS
    CM2Do the order economics work before ads?CM1 - shipping & fulfillment - merchant/transaction fees
    CM3 = Human's contribution marginDid the sale (or the day, or the month) make money after ads?CM2 - marketing spend (ad spend)

    Ad spend is the step from CM2 to CM3, not a line inside CM2. CM1 can look healthy while CM3 is negative. Dashboards mislead here: product cost works, and ads plus fulfillment ate the day.

    What is in Human's contribution margin, and what is out?

    Human's contribution margin (CM3) includes COGS (SKU-level where your store supports it), discounts and refunds netted out, merchant fees, brand-paid shipping and fulfillment, packaging, and ad spend. It does not include rent, salaries, software, or other fixed overhead, and it is not designed to match your P&L to the cent.

    InHow it shows up
    COGS, SKU-level where the store supports itPulled from Shopify if you use COGS in Shopify, or a fixed percentage that can be changed in any month.
    Discounts, netted outInside net revenue
    Refunds, netted outInside net revenue
    Merchant / transaction / platform feesCost line
    Shipping (brand-paid) and fulfillmentCost line
    PackagingInside the calculator's "variable costs (non-ad)" bucket
    Ad spend / marketing spendThe step from CM2 to CM3
    Shipping charged to customersAdded to net revenue, not treated as a cost
    OutWhy
    Rent, salaries, software, other fixed overheadNot in the published formula. Below CM, on the way to EBITDA.
    Matching the P&L to the centExplicitly disclaimed. Your books remain the system of record.
    Email/SMS platform fees and agency retainers as a modeled cost lineNot in the published CM formula.
    Attribution model (last-click vs platform vs incrementality)This number does not run incrementality tests.
    "Profit Compass isn't designed to match your accounting to the cent — your books are still the system of record. It's designed to be directionally right, every single day… We keep it honest by modeling COGS at the SKU level where your store supports it, netting out discounts and refunds, including merchant fees and shipping, and periodically reconciling against your P&L… available five weeks before your books are."

    What's the difference between contribution margin and gross margin in ecommerce?

    Gross margin subtracts COGS from net revenue. Contribution margin (Human = CM3) also subtracts shipping, fulfillment, merchant fees, and ad spend. A period can show a healthy gross margin and a negative contribution margin.

    Gross marginContribution margin (Human = CM3)
    SubtractsCOGSCOGS + shipping/fulfillment + merchant fees + ad spend
    What it tells youProduct economicsWhether the order, day, or month made money after the costs that scale with selling it
    Where dashboards misleadShopify "gross profit" looks healthyAds, shipping, and fees ate it
    Live illustration48.5%-12.3%

    The 48.5% / −12.3% pair is a worked example, not a customer's numbers. Run the same math on the contribution-margin calculator.

    Example: by one period, and by one order

    A period can show a mid-40s gross margin and a MER above 2x and still be contribution-margin negative. That is why Human does not run accounts primarily on ROAS or on gross margin.

    Example A. Full period

    LineAmount
    Gross revenue (ecom + amazon)$300,000
    Shipping & handling charged$8,000
    Discounts$50,000
    Refunds$25,000
    Net revenue$233,000
    COGS$120,000
    Gross profit$113,000
    Gross margin %48.5%
    Variable costs (non-ad)$60,000
    Ad spend$90,000
    Contribution margin (CM3)-$37,000
    Contribution margin %-12.3%
    MER2.59

    Gross profit of $113,000 looks like a business. CM3 is −$37,000. The −12.3% is contribution margin as a percent of the $300,000 gross (−$37,000 / $300,000). Against $233,000 net it would be −15.9%. This is an example of unprofitable customer acquisition. Rates in the apparel example below are percent of net. MER 2.59 and 48.5% gross margin did not make the period contribution-margin positive.

    Run the same math on your numbers.

    For MER, see Marketing Efficiency Ratio (MER) for ecommerce.

    Example B. Simple single order

    This $100 order uses only COGS, brand-paid shipping and fulfillment, merchant fees, and allocated ad spend. Round numbers. Teaching math only. Not a Human customer's numbers, not a benchmark.

    LineAmount
    Net revenue$100
    COGS$40
    CM1$60
    Brand-paid shipping and fulfillment$8
    Merchant fees$3
    CM2$49
    Allocated ad spend$20
    CM3$29

    CM1 is product cost. CM2 is the order after getting it out the door. CM3 is what's left after acquisition.

    Contribution margin is a dollar number, not a rate to maximize

    We have an apparel customer that shows why the dollar number is the one to obsess over, not the rate. Human has run their paid media through peak season, including BFCM. Same brand, same products, two holiday windows.

    In that BFCM window, contribution-margin rate compressed and ROAS fell. Contribution-margin dollars, EBITDA, gross revenue, and new customers all rose. We did not maximize a rate. We bought profitable dollars. That is why Human does not run accounts on ROAS or on CM%.

    Window: BFCM, Nov–Dec, 61 days, year-over-year. Same brand, same products. Not an annual figure.

    The trade

    MetricBeforeAfterChange
    ROAS7.8x3.6x-55%
    Ad spend (61-day window)$92K$959K10.4x
    Contribution margin rate (% of net revenue)65.0%45.4%-19.6pp

    The result (same 61 days)

    MetricBeforeAfterChange
    Gross revenue$1.44M$4.19M+191%
    Contribution margin dollars$818K$1.65M+102%
    EBITDA$636K$1.47M+131%
    New customers6,60518,554+181%

    We gave up about half of that efficiency by choice. Margin per dollar compressed, but profit that went to the bottom line increased by about $830,000. That was the price of entry.

    How does this number run a Human account?

    Paid media, Creative, GEO, SEO, Design, Development, and CRO work off the same contribution-margin scoreboard. The marketing reviews open on contribution margin, new customers, and revenue. They close on what moves those numbers: push, hold, or pull.

    Profitable daily revenue through contribution margin is what a marketing team must orient around. That is the part you cannot buy as a login. A developer proposes an upsell widget because a dollar of AOV is worth a specific amount to your bottom line. An SEO prioritizes the pages that drive profitable revenue, not just traffic. It all ladders back to CM.

    Goal bands run in both directions. A ROAS that's too high usually means untapped growth. A soft month is a call we make on the 8th, not a surprise you get on the 30th.

    If you want the team that already sits in that scoreboard, that is a Human ecommerce marketing agency engagement.

    How is this different from waiting on the books, or from another dashboard?

    You already run on two clocks. Meta and Shopify are instant, and they skip cost. The books are right, and they show up too late to change yesterday. Daily contribution margin sits in the middle: not to the cent, and on the desk by breakfast.

    1. Platform ROAS (Shopify, Meta, Google). You have it now. It ignores COGS, fees, and shipping. Revenue and ROAS are not the same thing as whether that revenue made money.
    2. The books. True. System of record. 30 to 45 days too late to decide whether yesterday should have been a push, a hold, or a pull.
    3. Daily contribution margin. Directional, not to the cent. Did yesterday make money after COGS, shipping, fees, and ads? Most brands wait weeks for the answer. Our customers know by breakfast.

    Tools like Triple Whale are genuinely useful, and some of our customers run them alongside us. The difference is the team acting on the number daily, not a second login.

    FAQ

    What is contribution margin in ecommerce?

    For ecommerce operators, contribution margin is what's left of net revenue after COGS, shipping and fulfillment, merchant fees, and marketing spend. At Human, that number is CM3. It is built to be directionally right every day. Your books remain the system of record.

    How do you calculate contribution margin for a Shopify brand?

    Build net revenue (gross store revenue + shipping charged to customers - discounts - refunds), then subtract COGS, shipping and fulfillment, transaction/platform fees, and marketing spend. That output is CM3. Run the same math on your numbers.

    What is CM1 vs CM2 vs CM3?

    CM1 is net revenue minus COGS. CM2 is CM1 minus shipping, fulfillment, and merchant fees. CM3 is CM2 minus marketing spend. Human's published contribution margin is CM3. Some blogs put ads in CM2. We put ads in CM3.

    Is contribution margin the same as gross margin?

    No. Gross margin subtracts COGS. Contribution margin (CM3) also subtracts shipping, fulfillment, merchant fees, and ad spend. On the same period: you can have 48.5% gross margin vs -12.3% contribution margin.

    Is contribution margin the same as profit?

    No. Contribution margin contributes to covering fixed costs and then profit. The path continues to EBITDA. Your books remain the system of record.

    Does Human put ad spend in CM2 or CM3?

    CM3. Ad spend is the step from CM2 to CM3, not a line inside CM2. When Human says contribution margin with no qualifier, that is CM3.

    How accurate is this number?

    Not to the cent. Your books remain the system of record. Our contribution margin is directionally right every day, and usually within 95–99% of closed books. We use SKU-level COGS where the store supports it, net out discounts and refunds, include merchant fees and shipping, and periodically reconcile to the P&L. It's available five weeks before your books are.

    What should I look at if Meta ROAS is 4x and I'm still not sure we made money?

    Contribution margin (CM3), not a higher ROAS target. Mindset: Growth ROAS vs. traditional ROAS.

    What's a good contribution margin for DTC?

    We do not publish a fake benchmark. It depends on your cost stack and whether CM3 covers fixed costs and the growth you want. Calculate yours on the calculator, or start with a free audit.

    See Your Contribution Margin This Week

    Every new client engagement at Human opens with a Profit Compass audit. We connect sources like Meta, Google, Shopify, and GA4. It pulls revenue and customer counts (no personal data). If you keep COGS in Shopify, that comes through too. The usual assumptions you confirm are merchant fees and shipping and handling. Once those connections and assumptions are in, you see your CM3 almost instantly. If the numbers say your current strategy is working, we'll tell you that too. If they don't, you'll see it before you spend a dollar.

    Profit Compass is included at no additional charge in every active engagement. It is not an upsell. It is how we work.

    The calculator is on profitcompass.io.

    Joel Brda, Founder & CEO of Human; co-builder of Profit Compass with Scott Williams; author of High ROAS is Bad For Your Ecommerce Business (2025).


    You’ve Got the Curiosity

    We’ve Got More Marketing Content