Your store's return rate is 8%. That number feels manageable. It is also hiding the fact that one of your best-selling products has a 24% return rate — and after reverse logistics, restocking, and customer service costs, every sale of that product loses you $3.40.
You probably don't know which product it is. Most merchants don't.
Average return rates are a vanity metric
An 8% store-wide return rate is a blended number. It smooths over the products with a 2% return rate and the products with a 30% return rate. It tells you roughly as much as your average revenue per SKU tells you about your best and worst performers — which is almost nothing.
The problem is that most ecommerce platforms report returns at the store level. You see total refunds issued, total refund amount, and maybe a refund-to-sales ratio. What you don't see is a product-level breakdown that answers the question that actually matters: which specific products are getting returned, how often, and what is that costing you?
This is the gap where margin erosion happens quietly. A product can be a top seller by revenue and a net loss after returns — and you won't see it unless you're running ecommerce refund analysis at the SKU level.
The true cost of a return is not the refund amount
When a customer returns a product, the refund they receive is only one component of the cost. The full picture looks considerably worse:
| Cost Component | Typical Range |
|---|---|
| Refund amount (sale price) | 100% of revenue lost |
| Return shipping (if merchant-paid) | $4.50 - $12.00 |
| Restocking and inspection labor | $2.00 - $5.00 |
| Repackaging materials | $0.50 - $2.00 |
| Customer service time (processing, emails) | $3.00 - $8.00 |
| Product depreciation or damage | 5% - 30% of COGS |
| Original outbound shipping (absorbed) | $4.00 - $8.00 |
For a product with a $48 sale price and $8.40 COGS, the original outbound profit might look healthy. But a single return on that product doesn't just erase the $39.60 gross margin — it adds another $15 to $30 in operational costs on top. The return doesn't net to zero. It nets to a loss.
Now scale that across hundreds of returns per month on a single high-return SKU and you have a product that is actively draining cash from your business while appearing to be a strong seller.
How to calculate margin after returns
The formula is straightforward, but it requires product-level return data that most platforms don't surface natively:
Effective margin per unit = (Revenue - COGS - Fulfillment costs) x (1 - Return rate) - (Return rate x Cost per return)
Let's work through a real example with two products:
Product A: Wireless Earbuds
| Metric | Value |
|---|---|
| Sale price | $34.00 |
| COGS | $9.50 |
| Fulfillment (shipping + processing) | $6.80 |
| Gross profit per sold unit | $17.70 |
| Return rate | 6% |
| Cost per return | $18.00 |
| Effective margin per unit | $15.56 |
Product B: Oversized Graphic Hoodie
| Metric | Value |
|---|---|
| Sale price | $52.00 |
| COGS | $14.00 |
| Fulfillment (shipping + processing) | $7.20 |
| Gross profit per sold unit | $30.80 |
| Return rate | 24% |
| Cost per return | $22.00 |
| Effective margin per unit | $18.13 |
Product B looks far more profitable on paper — $30.80 gross profit versus $17.70. But after accounting for its 24% product return rate and the cost of processing each return, the gap narrows dramatically. And this calculation still doesn't account for the customer service burden, the negative reviews from dissatisfied buyers, or the inventory management complexity of handling a constant stream of returned units.
If Product B's return rate climbed to 32% (which is common for apparel with inconsistent sizing), its effective margin drops to $12.58 — below Product A despite a sale price that's $18 higher.
The four patterns behind high return rates
When you identify a product with an abnormally high return rate, the cause almost always falls into one of four categories:
1. Sizing and fit issues
This is the leading cause of returns in apparel and footwear. The product itself might be fine, but if your size chart is inaccurate or your product runs large or small, customers will order, try it on, and send it back. The fix is often a better size guide or updated product descriptions — not discontinuing the product.
2. Misleading product photography or descriptions
When the product that arrives doesn't match the customer's expectation from the listing, returns follow. Color discrepancies, texture differences, and scale misperceptions are the most common triggers. A product with a high return rate and return reasons clustered around "not as described" is almost always a listing problem, not a product problem.
3. Quality and durability issues
If a product breaks, malfunctions, or feels cheap relative to its price point, returns spike. These are the most expensive returns because the product often can't be restocked and resold. A 20% return rate driven by quality issues doesn't just cost you the return logistics — it costs you the entire COGS of the unsalvageable inventory.
4. Seasonal and gifting returns
Products purchased as gifts have higher return rates because the buyer isn't the end user. Seasonal products (holiday decor, summer accessories) see return spikes when customers change their minds after the occasion passes. These returns are predictable and can be factored into margin forecasts — but only if you're tracking return rates at the product level by time period.
Why most platforms leave you blind
Shopify's refund reports tell you how much you refunded and when. WooCommerce tracks refund transactions in your order history. Neither platform connects refund data back to product-level analytics in a way that lets you calculate margin after returns per SKU.
To do this manually, you'd need to:
- Export all refund records with line-item detail
- Match each refunded item back to the original order and product
- Calculate the return rate per product over a meaningful time period
- Estimate the operational cost per return (shipping, labor, materials)
- Subtract return costs from gross margin to get effective margin
- Repeat monthly because return patterns shift with seasons, promotions, and inventory changes
This is tedious work. It's also the kind of analysis that, when done consistently, reveals the two or three products in your catalog that are silently destroying your margins.
How Spark by MishiPay surfaces return-driven margin erosion
When Spark by MishiPay connects to your store, it ingests order data and refund data together, linked at the product level. This means it can automatically calculate return rates per SKU, estimate return costs, and compute margin-after-returns — the metric that tells you what a product actually contributes to your bottom line.
You can ask questions like:
"Which products have a return rate above 15%?"
"What's my effective margin on the hoodie collection after returns?"
"Show me products where returns are eating more than half the gross margin."
The AI cross-references your refund history with product costs, fulfillment expenses, and sales volume to flag the SKUs where returns are a material problem — not just a line item in a refund report.
Instead of discovering a margin problem six months later in a quarterly P&L review, you see it in real time, at the product level, with enough detail to decide whether the fix is a better listing, a pricing adjustment, a supplier conversation, or pulling the product entirely.
The margin you think you have vs. the margin you actually have
Most merchants optimize for the wrong margin number. They look at gross margin — revenue minus COGS — and make decisions based on that. But gross margin ignores the single largest variable cost in ecommerce after COGS: returns.
A product with a 65% gross margin and a 25% return rate may be less profitable than a product with a 40% gross margin and a 3% return rate. The only way to know is to calculate margin after returns at the product level. And the only way to do that consistently, without spending hours in spreadsheets, is to automate it.
Your store almost certainly has a product that looks profitable and isn't. The data to find it is already in your orders and refunds. It just needs to be connected.