If you sell online, these two percentages get thrown around as if they mean the same thing. They don't. One can look great while the other bleeds. Understanding the difference between net vs gross margin is the difference between "this product sells" and "this store is profitable."
Gross margin vs net margin: the one-line difference
Gross margin subtracts only the cost of goods sold (COGS). Net margin subtracts everything — COGS plus operating expenses, marketing, interest, and taxes.
Because net margin removes far more, it is always smaller than gross margin. If your two numbers are close together, either your operating costs are unusually lean or, more likely, something is being left out of the calculation.
Both are expressed as a percentage of revenue, which makes them easy to compare across products and across months. The trap is treating a strong gross margin as proof of a healthy business. It isn't.
What is gross margin?
Gross margin is gross profit as a share of revenue. Gross profit is revenue minus COGS — the direct cost of the thing you sold.
The formula:
Gross margin % = (Revenue − COGS) ÷ Revenue × 100
Say you run a print-on-demand apparel store and your average order is $40. The blank garment, the print, and the supplier's base fulfillment charge come to $16 per order. That's your COGS.
($40 − $16) ÷ $40 = 60%
So your gross profit is $24 per order and your gross margin is 60%. That number answers one question well: is the product priced high enough above its production cost to be worth selling at all? A 60% gross margin says yes. But it says nothing about whether you keep any of that $24.
For a fuller breakdown of how COGS and margin fit alongside the other numbers a store tracks, see our ecommerce metrics guide.
What is net margin?
Net margin is net profit as a share of revenue — profit after all costs are paid, including the fixed ones that don't move with each order.
The formula:
Net margin % = Net profit ÷ Revenue × 100
Keep going with the same store. Take a month with 1,000 orders and $40,000 in revenue. Start from gross profit and subtract every remaining cost:
- Gross profit: $24,000 (60% of revenue)
- Shipping, payment fees, and pick/pack (variable costs): about $8,000
- Ad spend across Meta and Google: $10,000
- Fixed costs — rent, software, salaries: $4,000
$24,000 − $8,000 − $10,000 − $4,000 = $2,000 net profit
$2,000 ÷ $40,000 = 5% net margin
Same store, same month. A 60% gross margin became a 5% net margin. Nothing was wrong with the product — the other costs simply ate 55 points of margin on their way to the bottom line.
Why the two numbers diverge
The gap between gross and net margin is the sum of everything gross margin ignores. For most ecommerce stores, three buckets do the damage:
- Variable selling costs — shipping, payment processing, and fulfillment labor. These scale with every order and never appear in COGS. Payment fees alone can quietly reshape your economics; here's how to calculate processing fees so they stop hiding.
- Marketing and ad spend — usually the single biggest wedge between gross and net for a paid-acquisition brand. In the example above, ads alone are a quarter of revenue.
- Fixed overhead — rent, salaries, SaaS, and taxes. Fixed costs don't rise with each sale, so they hurt net margin most when volume is low and matter less as you scale.
This is exactly why a store can post a rising gross margin while its net margin slides. Raise prices and gross margin climbs; but if ad costs or headcount rise faster, net margin still falls. The two numbers moving in opposite directions is a common — and dangerous — pattern.
The number both metrics skip: contribution margin
Here's what the top search results almost never mention. Between gross margin and net margin sits a third number that's arguably the most useful of all for deciding whether to scale a product or a campaign: contribution margin.
Contribution margin subtracts all variable costs — COGS plus shipping, fees, and fulfillment — but not fixed overhead. It answers a question neither of the other two can: does this order, sold through this channel at this ad cost, actually put money in the bank?
Walk one order through all three layers:
| Line | Amount | Running margin |
|---|---|---|
| Revenue (average order) | $40.00 | — |
| − COGS | −$16.00 | 60% gross margin |
| − Shipping, fees, pick/pack | −$8.00 | 40% contribution margin (pre-ad) |
| − Allocated ad spend | −$10.00 | 15% contribution margin (post-ad) |
So the same $40 order shows a 60% gross margin, a 40% contribution margin before advertising, and just 15% after you pay to acquire the customer. Gross margin says "worth making." Contribution margin says "worth selling through this channel." Net margin — after fixed costs — says "the business made money."
If you want to go deeper on how each extra sale changes these layers, our piece on incremental margins picks up exactly here. And because repeat buyers change the math entirely, it's worth reading how the ecommerce customer lifecycle reshapes margin over a customer's lifetime rather than a single order.
Which margin should you actually watch?
Watch all three, for different jobs:
- Gross margin — pricing and product decisions. Too low, and no amount of operational discipline downstream will save you.
- Contribution margin — channel and campaign decisions. This is the number that tells you whether to scale ad spend or pull back.
- Net margin — the scoreboard. Did the business make money this period, after everything?
The mistake is optimizing one in isolation. Cutting ad spend lifts contribution and net margin but can starve growth. Raising prices lifts gross margin but can crater conversion. The reason retention work pays off is that repeat orders carry no acquisition cost, so they land at full contribution margin — which is why the benefits of customer lifecycle marketing show up in net margin fastest.
Getting these numbers right per order
The catch with everything above: the tidy per-order economics only work if you actually know your true cost on every order. Most stores don't. Their data is scattered — product cost in one place, ad spend in a platform that over-claims its own results, shipping and Stripe fees on separate statements. Averages get used because the real per-order number is too much work to assemble.
PodVector connects Shopify, Meta Ads, Google Ads, Printify, and Printful, then computes true per-order profit — COGS, fees, shipping, and ad spend netted out down to the individual order. Victor, its AI operator, reads that live data, surfaces where your margin is actually leaking, and can take Shopify-side actions with your approval. He reads your ad performance and proposes moves; he does not touch your ad account. It's not a dashboard you have to babysit — it's an operator working the numbers this article is about.
FAQs
Is gross margin or net margin more important?
Neither wins outright — they answer different questions. Gross margin tells you whether your product is priced above its production cost. Net margin tells you whether the business as a whole is profitable after every expense. A strong gross margin with a weak net margin means your product is fine but your operating, marketing, or overhead costs are too heavy. You need both to be healthy.
Can gross margin be high while net margin is negative?
Yes, and it's common in ecommerce. A store can run a healthy gross margin and still lose money if ad spend, shipping, fees, and fixed costs together exceed gross profit. This is exactly why gross margin alone is a misleading health check — it stops counting before the costs that most often sink a store even begin.
What's a good net margin for an ecommerce store?
It varies widely by category, business model, and growth stage, so any single benchmark is misleading. Newer, growth-focused stores often run thin or negative net margins by choice, spending heavily on acquisition. What matters more than hitting a specific number is the trend: is net margin improving as you scale, and is your contribution margin positive enough to eventually cover fixed costs?
How is contribution margin different from gross margin?
Gross margin subtracts only COGS. Contribution margin subtracts all variable costs — COGS plus shipping, payment fees, and fulfillment — so it's always lower than gross margin. Gross margin tells you if a product is worth making; contribution margin tells you if it's worth selling through a particular channel at a particular acquisition cost.
Why is my net margin so much lower than my gross margin?
Because net margin absorbs everything gross margin ignores: variable selling costs, marketing and ad spend, and fixed overhead like rent and salaries. For paid-acquisition brands, advertising is usually the biggest wedge between the two. A large gap isn't automatically bad — but if you can't explain where those margin points went, that's a sign your costs need a closer look.