A 20% return rate tell you almost nothing. Two stores can post the same 20% and land in very different financial spots.
The real damage sits in what happens after the refund, in costs that rarely make it onto a P&L. We'll walk through where that shows up, then show you how to calculate your own true cost per return instead of guessing from an industry average.
The cost hiding behind your return rate
The National Retail Federation and Happy Returns put the 2025 online return rate at 19.3%, inside an overall retail return rate of 15.8% and $849.9 billion in total returns.
That number swings hard by category:
-
Apparel: 20% to 40%
-
Footwear: around 18%
-
Electronics: 8% to 15%
-
Beauty: 4% to 12%
A 22% return rate is a red flag for a supplements brand. It's a decent result for a fast fashion label. So compare your rate to your own category, not the blended average, or you'll chase a target that has nothing to do with your business.
The bigger problem is that return rate measures how often returns happen, never how much each one costs you. Two stores can share the same 20% rate and land in completely different financial positions, because the rate says nothing about what each return costs to process.

What happens after a customer clicks "return this item"
A refund is only the line item you see. The real cost accumulates in the steps that happen next:
-
A shipping label, usually paid by you
-
Receiving and inspection at your warehouse or 3PL
-
A decision: restock as new, mark down, or write off
-
Repackaging, if the item goes back on the shelf
-
At least one customer service touch, from a refund status question to an exchange setup
One cost merchants often forget is the payment processing fee of the platform. Shopify Payments, like most processors, keeps the original transaction fee even when you refund the full order. You need to know what you are paying to accept that sale, because you don't get it back when the customer sends the item away.

The chargeback rate shown in the Shopify Admin. If disputes are adding to your refund volume, that's a second processing cost stacking on top of the transaction fee you already lose.
What return rate does to your margin
Below is a simplified example. It won't match your store exactly, but it shows the mechanism at work.
Assumptions:
-
1,000 orders at $50 each
-
$20 cost of goods, so $30 gross margin per order
-
$15 in paid media spend per order
-
20% return rate, 200 orders
Zero returns gives you $30,000 in margin. Most P&Ls assume returns just scale margin down with revenue, landing at $24,000 once those 200 orders come back.
But that's not the number that matters. Each return also carries a hard cost, plus the $15 already spent acquiring that order, plus what the item loses in resale value. The hard cost breaks down like this:
-
Return shipping label: $7
-
Inspection and restocking labor: $6
-
Customer service time: $3
-
Repackaging: $2
-
Non-refunded payment fee: $2
Add those up and you get $20 per return, before the acquisition spend or the markdown. Add the $15 in dead acquisition spend, plus an average $5 markdown loss on returns that can't resell at full price, and each return drags $40 out of your margin, not $20.
|
No returns |
20% return rate |
|
|
Orders |
1,000 |
1,000 |
|
Returns |
0 |
200 |
|
Gross margin before return costs |
$30,000 |
$24,000 |
|
Hard cost per return ($20 x 200) |
n/a |
$4,000 |
|
Dead acquisition spend on returned orders ($15 x 200) |
n/a |
$3,000 |
|
Average markdown loss on unsellable returns ($5 x 200) |
n/a |
$1,000 |
|
Real gross margin |
$30,000 |
$16,000 |
|
Margin drop vs. zero returns |
0% |
47% |
$30,000 drops to $16,000, a 47% hit from a 20% return rate. That gap widens on cheaper items, since none of these costs shrink with the item's price.

Shopify tracks returns as sales reversals rather than a separate report, so filter the Sales report by "Is reversed" to pull reason codes for each line item.
Calculate your store’s cost per return
Here is the data you need to calculate your true cost per return.
-
Return shipping cost, pulled from the average label cost on your carrier's dashboard
-
Labor, timed on receiving, inspecting, and restocking a typical return, multiplied by your loaded hourly rate
-
Repackaging materials, if you use new poly bags or boxes for restocked items
-
The payment processing fee you don't get back, found in your Shopify billing settings under transaction fees
-
Customer service time, averaged across the refund and exchange status questions a typical return generates
-
The share of returned inventory that can't be resold at full price, applied as a markdown loss
Add those six numbers together and you have your true cost per return. Multiply it by your monthly return volume, and you have a number to put in front of whoever owns your P&L.
Round numbers are fine here. What matters is capturing every cost category you're currently leaving out.
That number sets a threshold. Compare it against an item's price and its realistic resale value. If an item sells for $18 and your true cost per return is $20, processing the return loses you money before you've even counted the refund. Above that threshold, refund the customer and let them keep the item, no box or label required. Set the threshold once, apply it through your returns app or a simple price rule, and revisit it a couple of times a year as shipping and labor costs shift.

What category does to your cost per return
Fit-driven categories carry the highest hard cost per return. A shoe or jacket that comes back damaged or worn resells at full price far less often than an electronics accessory in its original packaging.
| Category | Typical return rate | What drives the cost | Resale outcome |
|---|---|---|---|
| Apparel | 20–40% | Damage, wear, missing tags | Often marked down, rarely full price |
| Footwear | ~18% | Worn soles, box damage | Same as apparel |
| Electronics | 8–15% | Data wiping, security checks, repackaging | Resells near full price if box is intact |
| Beauty | 4–12% | Hygiene and safety holds | Frequently written off entirely |
| Furniture / freight | Lower rate, high dollar cost | Reverse freight | Can exceed the item's entire margin |
| Auto parts (no fitment filter) | 20–30% | Wrong-part orders | Resells fine once the filter is added |
Shopify parts retailers without a year, make, and model fitment filter commonly see return rates of 20% to 30%, almost entirely from wrong-part orders. Add a working fitment lookup to the product page, and that rate typically drops to 5% to 10%. The return cause gets addressed before checkout instead of after delivery.
Customer behavior plays a role too.
The 'Happy Returns' research we cited above found that 51% of Gen Z shoppers bracket their purchases, ordering multiple sizes or colors with the intent to return most of them, compared to 24% of Baby Boomers.
None of that traces back to product or on page image quality.
How to lower the costs of eCommerce returns
Lowering your return rate helps, but for some categories, the bigger lever is what happens to the money once a return starts. Watch what happens to the money once a return starts:
-
Instant exchange or store credit keeps revenue inside your store instead of sending cash back to a card
-
A clearly stated return policy at checkout, instead of buried in a footer link, reduces the pre-purchase hesitation that drives cart and checkout abandonment
-
A return shipping or restocking fee, stated upfront rather than sprung on the customer at the return step, can offset your hard cost without reading as a penalty
Coordinate your returns with your ad platforms

Marketing has a subtler leak. If your Meta Conversions API or Google Ads setup only reports a purchase event and never reports the refund that follows it, your ad platforms keep learning that the sale was a win.
Over time, that steers spend toward the audiences, creatives, and products driving your highest return rates, since the algorithm has no way to know those weren't your best conversions. Feeding refund events back through Conversions API or Google Ads conversion adjustments corrects that. Check it alongside the rest of your pixel setup.

We have written a full guide on how to track purchase and refund events on GA4 for you your store via a custom data layer.
Whatever levers you pull, track margin dollars lost to returns as its own line in your weekly KPI review, not just as a modifier buried inside your overall margin number. A return rate that holds steady while your true cost per return climbs is still a problem, even if the top line percentage looks fine on a dashboard.
What actually moves your margin
Returns are never going to hit zero. Chasing that number wastes energy you could spend elsewhere. The number worth chasing is the gap between your return rate and your true cost per return. Close that gap and the margin comes back.
If you want help building that model for your own store, or a second look at how your Shopify returns flow is set up end to end, our CRO team can walk through it with you.