Blog · Margin

Gross Margin vs Net Margin for Shopify Stores: The One That Actually Matters

Most Shopify operators quote gross margin and decide on gross margin. Then they wonder why a 70% gross margin store is breaking even. The gap is everything that lives below the COGS line — and one of these three margin numbers is the one you should actually be steering by.

Three margin numbers, one that matters

Talk to ten Shopify operators about margin and nine of them will give you a gross-margin number. Talk to ten accountants about margin and nine of them will give you a net-margin number. They're describing the same business with two different numbers, and the gap between those numbers is where most stores quietly run out of money.

There are actually three margin numbers worth knowing. Each answers a different question. Mixing them up is the most common reason a "70% gross margin" store ends up breaking even.

// 01 · Gross
Gross margin
(Revenue − COGS) ÷ Revenue
What's left after you subtract the unit cost of the product itself. Tells you whether your product works as a product. Doesn't include anything you spent to sell it or fulfill it.
// 02 · Contribution
Contribution margin
Gross margin − variable selling costs
Gross margin minus everything that scales with each order — shipping, payment fees, ad spend per acquired customer, return processing. Tells you whether your unit economics work.
// 03 · Net
Net margin
Contribution margin − fixed costs
Contribution margin minus everything that's there whether you sell one order or a thousand — apps, salaries, rent, software, accountant. Tells you whether your business works.

Why Shopify operators default to gross

There's a structural reason. Gross margin is the only one of the three that Shopify Analytics can compute for you out of the box, and only if you've entered a cost-per-item on each variant. Contribution requires ad spend ingest. Net requires both ad spend and a list of your fixed costs.

So when an operator says "we run at 65% margin," what they usually mean is that the variants they entered cost-per-item on subtract from revenue to give a 65% figure. It's the number Shopify will quote them. They're not wrong to quote it — it's just incomplete in a way that matters more the bigger the gap between gross and net gets.

The decisions you can't make on gross margin alone

Three real decisions where leading with gross will route you the wrong direction:

"Should I scale this product?" Gross margin doesn't include the ad cost to acquire customers. A 70% gross product running at 4× ROAS is genuinely worse than a 50% gross product running at 6× ROAS, because the second one has more contribution dollars per order after you back out blended ad spend. Optimizing your assortment on gross margin means optimizing for the wrong product.

"Should I run this 20% discount code?" The gross math says yes if your gross is above 20%. The reality is that the discount lands on a smaller revenue base while keeping the same payment fees, the same shipping, and often a higher return rate (promo customers return more). Run that math on contribution margin and you frequently get a different answer.

"Should I add this $50/month app?" Gross margin has no fixed costs in it. There's no place in a gross-margin worldview to evaluate whether the app's value exceeds its cost — because the cost doesn't show up. You need net margin, or at least an awareness of where your fixed costs sit, to make the call.

The 70% gross margin store breaking even

To make it concrete: here's a real-shape store doing $50K in monthly revenue at a clean 70% gross margin. The walk-down from revenue to net is where everything happens.

$50K/mo store · 70% gross · 7% net
Revenue → Net: the full walkdown
all three margin layers · same store · same month
monthly P&L · DTC apparel example
Top line
Net sales$50,000
COGS−$15,000
Gross margin · revenue − COGS $35,000 70.0%
Variable selling costs
Shipping & fulfillment−$9,000
Payment processing (2.9% + 30¢)−$1,500
Blended ad spend−$19,000
Refunds & chargeback true cost−$1,200
Contribution margin · per order economics $4,300 8.6%
Fixed costs
App subscriptions stack−$800
Net margin · what the business made $3,500 7.0%

70% gross. 7% net. Both numbers are true at the same time, for the same store, in the same month. The store owner who quotes 70% to their accountant is not lying — they're describing one layer of the business. The owner who scales the ad budget against a 70% margin assumption is going to be very confused two months later when bank balance hasn't moved.

Notice where most of the gap lives: ad spend ($19K) and shipping/fulfillment ($9K). Those two lines alone eat 56 of the 63 percentage points between gross and net. The fixed-cost app stack — the thing everyone obsesses over when they're trimming — moves the needle 1.6 points.

Net margin is what you'll be judged on. Contribution margin is what you'll be steering with. Gross margin is a vanity metric below 20% net.

The right number to manage to: contribution margin per order

Net margin is the right answer to "did the business make money this month." It is the wrong number to manage to in real time, because it includes fixed costs that don't change when you change a single decision. You can't move net by tweaking a campaign or pulling a promo — you can only move net at the end of a period, looking back.

Contribution margin per order is the number that responds to your actions immediately. Change your ad creative, contribution moves. Change your product mix, contribution moves. Change your discount strategy, contribution moves. It's the steering wheel of the business in a way that net margin isn't, because net margin is mostly the rear-view mirror.

Here's the heuristic I'd suggest, if you're going to commit to looking at one number daily: contribution margin in dollars per order, broken out by acquisition channel. If that number is stable or rising, your business is healthy at the unit level. If it's falling, you have a problem regardless of what gross margin says.

How to actually compute net on a Shopify store

You have three reasonable paths:

  • The weekly spreadsheet. Pull Shopify Payouts, ad platform CSVs, and a supplier invoice list into a sheet. Build a P&L template once, run it weekly. Free, ~3 hours a week at 200 orders/month, painful to scale beyond 1,000 orders/month.
  • QuickBooks or Xero with manual category mapping. Accounting-grade output. Not real-time — you're reconciling weekly or monthly, not making in-week decisions on this data. Best if your accountant is already in the loop and you want one source of truth across tax and operating.
  • A profit app that does server-side ingest. Real-time net margin and per-order contribution, computed automatically. Costs $9.50–150/month depending on volume and which app. Worth it above the threshold where your time recovering the same data is more expensive than the subscription.
Find the leak below your gross
Bundle shipping calculator
Multi-pack orders are where contribution margin most often disappears for dropshippers — per-line-item shipping math inflates your cost line by 30–50% on every bundle. Plug in your numbers, see the monthly gap.
Open the calculator

The closing argument

Quote the number you'll be judged on. Net margin is the truth. Contribution margin is the steering wheel. Gross margin is a vanity metric below 50% net, and even a useful gross margin number is just one layer of a three-layer answer.

If your gross looks great and your bank balance doesn't, the gap isn't a mystery — it's the 60 percentage points you haven't been measuring. Measure them.

— Neo

Three margin layers, one dashboard

Stop steering
by the wrong number.

7-day free trial · all features on every plan · early adopter pricing 50% off

← All posts