How To Treat Returns And Refunds In Gross Margin

A practical method for netting returns, restocking cost, and unsellable inventory out of gross margin — so your reported number matches the cash that actually lands.
Quick answer
Compute a return-adjusted gross margin by (1) reducing revenue by refunded order value, (2) adding back COGS only for items that come back sellable, (3) writing the rest off as a COGS adjustment, and (4) loading restocking labor and return shipping into COGS. For apparel at a 30% return rate, this typically lands 8-12 points below the headline Shopify margin.
Return-adjusted gross margin
Gross margin after netting out refunds, unsellable returns, restocking labor, and return shipping — the version that matches actual cash.
Return-adjusted gross margin is the version of gross margin that treats returns as the real cost they are: lost revenue on the refunded order, recoverable COGS only for inventory that resells at full price, and a write-down on everything that comes back damaged, opened, or out of season. It also pulls return shipping and restocking labor into COGS rather than parking them in OpEx.
For categories with structurally high return rates — apparel, footwear, anything sold in multiple sizes — the gap between the Shopify-reported margin and the return-adjusted margin is usually 8-12 points. That's the difference between a brand that looks healthy on a P&L screenshot and one that's actually funding inventory it will throw away.
Most Shopify dashboards report gross margin off gross orders. They don't subtract refund value, they don't write down inventory that comes back unsellable, and they don't load the warehouse hours your team spends inspecting and re-tagging returns. For a beauty SKU with a 4% return rate, that gap is rounding error. For a denim brand at 32%, it's the difference between 58% margin and 47%.
Why the headline margin overstates reality
There are four leaks the standard formula misses. First, the refund itself: you give back the full order value, but the platform-reported margin was struck on the original sale. Second, the COGS add-back: only items that come back A-grade can be relisted at full price; B-grade items get discounted, and C-grade items get landfilled.
Third, the labor: someone has to receive, inspect, steam, retag, and reshelf every returned unit — that's restocking labor in per-order gross margin, and it scales with return volume, not order volume. Fourth, the postage: if you offer free return shipping, that label is a hidden margin tax most P&Ls bury under "shipping expense" instead of COGS.
The compounding effect
A 30% return rate doesn't shave 30% off margin — it's worse. Half of returned apparel can't be resold at full price (seasonal, worn, missing tags), each returned unit carries €4-7 of restocking labor, and the return label costs €5-8. Stacked together, the four leaks routinely take an advertised 60% margin down to 48-52%.
How to detect the gap in your own numbers
Pull two numbers for the same period: the gross margin Shopify reports, and a hand-built margin using net revenue (after refunds), COGS plus return-handling costs, and a write-down line for unsellables. If the gap is under 2 points, your return rate is low enough that you can keep using the headline figure. If it's 5+ points, you're making pricing and ad-spend decisions on a number that isn't real.
The cleanest detection signal is reconciling Shopify's reported margin with return-adjusted margin month by month for a full quarter. A widening gap usually means either return rate is creeping up, or the sellable-rate on returned inventory is dropping — both worth catching before the quarter closes.
The four-step fix
Step one: switch your top-line input from gross refund rate to net refund rate. The distinction between net and gross refund rate matters because partial refunds, store credits, and exchanges all behave differently in the margin math. Net refund rate tells you the dollars actually leaving; gross overstates the bleed.
Step two: tag every returned SKU as A-grade (full resale), B-grade (discounted), or C-grade (write-off). Add back COGS only for A-grade. Write down B-grade to its actual resale price. Move C-grade into a COGS adjustment line — that's the unsellable-returns COGS write-down most finance teams skip. Step three: time-shift returns to the cohort that generated them, not the month the refund hit, so your monthly margin reflects the orders that actually drove it.
Try-before-you-buy needs its own treatment
If you run a try-before-you-buy or home-trial program, return rates of 40-60% are normal and the standard formula breaks. Compute return-adjusted margin per shipped trial, not per order — and amortise the restocking cost across the cohort, not the converted buyer. The economics only work if the keep-rate × AOV × keep-margin clears the cost of servicing the rest.
Experiment ideas to close the gap
Once you can see the real number, the experiments worth running are the ones that move return rate or sellable-rate without tanking conversion. Size-recommendation widgets on apparel PDPs, more honest fit photography, and exchange-first return flows (instead of refund-first) each typically shave 2-4 points off return rate. On beauty, addressing return fraud through serialised packaging and proof-of-return-condition can recover 1-2 margin points on categories where opened product is structurally unsellable.
The other lever is the free-shipping policy itself. A €5 return fee — clearly disclosed — typically cuts return rate 15-20% on apparel without measurably hurting first-order conversion, and it converts the hidden return-shipping tax into a revenue line. Test it as a holdout, not a flip, so you can measure the conversion impact alongside the margin gain.
Frequently asked questions
Deduct from revenue. Refunds are reversed sales, not cost of goods. The COGS line should only absorb the inventory write-down for items that don't come back sellable, plus restocking labor and return shipping.
Exchanges shouldn't hit revenue at all — they're a SKU swap. But they do incur restocking labor and outbound shipping a second time, so load those costs into COGS. If the exchanged item has a different price, treat only the delta as a refund or upsell.
Above roughly 8%. Below that, the gap between reported and return-adjusted margin is usually under 2 points and the headline is fine for fast decisions. Apparel at 25-35%, footwear at 20-30%, and try-before-you-buy at 40%+ all need the adjusted version.
Partially. Shopify nets refunded revenue out of net sales in some reports, but it doesn't write down unsellable inventory, doesn't load restocking labor, and doesn't reclassify return shipping as COGS. Expect a 5-10 point gap on high-return categories.
Time-and-motion the return process, get a per-unit minutes figure (typical apparel: 6-10 minutes), multiply by your fully loaded warehouse wage, and divide across return volume. That gives a per-returned-unit cost you can load into COGS rather than burying in OpEx.
Both, with the adjustment explicit. Investors increasingly ask for net gross margin on DTC apparel and footwear because the unadjusted figure is known to overstate. Leading with the adjusted number and showing the bridge builds credibility faster than getting caught on it in diligence.
If you book the refund in the month it processes rather than the cohort that originated the sale, you'll see margin look strong in launch months and weak in the months that follow. Cohort-based return window timing keeps each month's margin tied to the orders that generated it.
Typically 55-75% A-grade (full resale), 15-30% B-grade (discounted or outlet), and 5-15% C-grade (write-off). Seasonal items and swimwear skew worse; staples and outerwear skew better. Knowing your mix is what makes the COGS add-back accurate.
On apparel at 30% return rate and €60 AOV, a €6 return label costs you €1.80 per gross order — about 3 margin points. It's not catastrophic, but it's the single biggest line most brands forget to load. Treat it as COGS, not as a marketing expense.
Use the standard gross margin calculator as the starting point, then layer the four adjustments — net revenue, sellable add-back, write-down, and handling costs — on top. The gap between the two outputs is your hidden margin leak, and it's usually where the biggest unit-economics wins are hiding.
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.