ClearStock is live on the Shopify App Store.Install free →

← All blogs

Lost Sales9 min read

What one return actually costs: the full math, line by line

The cost of a return on a $34.90 order runs about $20 — 57% of its revenue. See the full cost line by line, plus a 4-step refunds-CSV audit.

InventoryX is in development and not available today. ClearStock is the live Shopify app.

A return on a $34.90 order doesn't cost you the sale. It costs about $20 — an illustrative figure once return freight, inspection labor, repackaging, the resale discount, and a payment fee the processor keeps are counted line by line. That is 57% of the order's revenue, gone on a transaction your dashboard recorded as a sale, then a refund, and otherwise forgot.

The refund line is the liar here. In Shopify's books the order nets to roughly zero, and a refund reads like a wash: money out matching money in. The real damage sits in six places the refund report never shows, and merchants who add them up usually find returns are their quietest large expense.

The refund is not the cost

There are two ways revenue disappears in a physical-goods business. One is demand that never converts because the shelf was empty — that loss math, SKU by SKU, belongs to the out-of-stock cost guide and I won't repeat it here. Returns are the mirror image: the sale happened, then it unwound, and the unwinding burns real cash on the way back.

That distinction matters because the two losses get managed differently. An empty shelf is a buying problem. A return is a logistics, service, and accounting problem wearing a service costume — and almost nobody prices it correctly, because the obvious number (the refund) is the least informative one.

The six costs inside one return

Return freight. The label on the way back. Stores that make customers pay for return shipping often give it back anyway — through refunds, coupons, or goodwill credits — so "the customer pays" usually means "the customer pays sometimes." Whatever your policy says, the label is a cost of the transaction.

Inspection and refurb labor. Someone opens the box, checks the item against the reason code, wipes it down, re-bags it, and decides its fate: restock, refurbish, or discard. On a small item that's ten to fifteen minutes of paid time; on apparel or electronics it runs longer.

Repackaging. The mailer the product left in is usually destroyed. It comes back needing a poly bag, a box, or new hangtags — consumables bought twice for one sale.

The resale discount. This is the biggest and most ignored line. Best case, the unit goes back on the shelf at full price. Real case: it gets re-listed as open-box at a discount, or it sits until markdown season turns "discount" into "clearance." A returned unit competes with your fresh stock for the same buyer and usually loses, so its true cost is whatever price cut it takes to move it — eventually.

Payment fees the processor keeps. Refunding an order doesn't claw back the original transaction fee at most processors. As of October 2026, Shopify Payments keeps the processing fee when you refund an order (Shopify Help Center). Small per order; real at volume.

The time value. The customer's money went back the day you approved the refund. The product comes back days later, gets processed days after that, and only becomes sellable inventory after inspection. For a few weeks you have neither the cash nor the sellable unit — you're funding the gap both directions.

Worked example: one dog harness, start to finish

A customer orders a dog harness at $34.90, it doesn't fit, they ship it back, you re-list it as open-box. All figures below are illustrative, but they're the kind of numbers a small store actually sees:

Line Amount
Order revenue $34.90
Return label −$7.20
Inspect + repack labor (~12 min at ~$15.50/hr loaded) −$3.10
New poly bag + hangtag −$1.40
Resale discount: re-listed open-box at $27.90 −$7.00
Payment fee kept by the processor on refund (2.9% + 30¢ on $34.90) −$1.31
Total hit on the order ≈ $20.01 — 57% of revenue

Three things worth noticing. First, the refund itself appears nowhere — it's a wash in the ledger. Second, the resale discount is the largest line, and it's the one merchants never book, because it hides inside future margin rather than the return transaction. Third, this is the good outcome: it assumes the harness resold at all. If it sits as aged stock for two quarters, the discount deepens. If it came back damaged, you're into refurb costs or a full write-off instead.

If the customer kept the item — a refund-without-return, which happens more than stores admit — the hit is the full $34.90 minus nothing. That failure mode has its own section below, because it's findable, and findable means recoverable.

The refunds-CSV audit: four steps

A seller posting in r/shopify in August 2026 described auditing the refunds export on a store doing about $60,000/month and finding roughly $1,300 in duplicate refunds — the same orders refunded twice. (Paraphrased from the thread; the routine is the point, not the seller.) On that store's volume, the found money was worth more than any conversion tweak they'd run that quarter.

The audit is four steps and about an hour in a spreadsheet:

  1. Export the refunds. From the Shopify admin, export orders with refunds included, or pull the refunds view from your analytics. One CSV: every refund, with order numbers, dates, and amounts.
  2. Group by order. Sort or pivot the CSV by order number. Any order appearing twice with two refund lines is a candidate duplicate — the exact failure the r/shopify seller found.
  3. Hunt the two failure patterns. Duplicate refunds (same order, two refund transactions) and refunds without returns (money out, no return label created, no unit inbound). The second pattern includes legitimate goodwill refunds — the audit doesn't judge them, it just makes them visible and intentional.
  4. Reconcile against carrier pickups. For every refund-without-return candidate, check whether a return label was ever scanned. No scan plus a full refund means either a deliberate goodwill call (fine, if someone made it) or a mistake that quietly repeated.

Run it quarterly if you're under a couple million in revenue and refunds are owner-issued. Run it monthly if staff issue refunds without a second pair of eyes — duplicate refunds are almost always a double-click, not a crime.

Where the levers live (and where they don't)

Once you can price a return, three levers exist. The fee lever — charging a portion of restocking costs back to the customer — is a policy decision with real conversion trade-offs, and the mechanics live in the restocking fee policy guide; it deserves its own analysis, not a paragraph here.

The physical-flow lever — what happens when the unit lands, how fast it's inspected, graded, and re-listed — is owned by the returned inventory processing guide. Every day a returned unit waits in a pile is a day its resale discount grows.

The third lever is measurement, and it's the one to pull first. You can't decide between a restocking fee, faster processing, or tighter product pages until you know what a return actually costs you — which is the number the worked example approximates and your own CSV will make exact.

Measure your own number before optimizing anything

The formula, for one quarter at a time:

Cost per return = (return freight + inspection/repack labor + repackaging + resale discount + kept payment fees) ÷ number of returns

Two of those inputs (freight, fees) come straight out of the refunds export. Labor and packaging are estimates — time one return, multiply. The resale discount is the honest one that hurts: compare the re-listed price of returned units against full price, and include the units that never re-sold at all.

Then divide by revenue for the same quarter. That ratio — not a benchmark from a blog, including this one — is the number that decides whether returns deserve a fee, a process change, a product-page fix, or just your attention. In the illustrative example above, one return consumed 57% of its order's revenue; yours will land where your category, prices, and process put it. Measure first. The levers work better with a number attached.

Common questions

Does Shopify keep its transaction fee when I refund an order? Most processors keep the original fee. As of October 2026, Shopify Payments does not return the processing fee when you refund (Shopify Help Center) — that's the $1.31 in the worked example. An estimated $1.31 kept per refunded order is about $655 across 500 refunds: small lines, real money.

How do I find duplicate refunds in Shopify? Export the refunds data (Orders → Export, or the refunds report in analytics), group the CSV by order number, and flag any order with two refund lines. Then look for refunds with no matching return. A seller in r/shopify (2026) reported finding about $1,300 in duplicates this way — paraphrased from the thread.

What's included in the cost of a return? Everything after the refund: return freight, inspection and repack labor, the resale discount on a re-listed unit, the processing fee the platform keeps, and the cash tied up until it resells. The refund itself is only the visible half.

Is a restocking fee worth charging? It can be — it offsets inspection, repackaging, and the resale discount — but it trades recovered cost against conversion friction, and the answer depends on category, price point, and return rate. The trade-offs, legal notes, and setup steps are covered in the restocking fee policy guide.

What's a normal return cost as a percentage of revenue? There's no honest universal number — it swings hard by category, and invented benchmarks are worse than none. Add freight, labor, packaging, resale discount, and kept fees over a quarter and divide by revenue. The illustrative example here consumed 57% of one order's revenue; your ratio is the one that matters.

Next step

Run the four-step refunds audit on last quarter's export this week — duplicate refunds and refunds-without-return are found money, and the whole exercise costs about an hour. Then compute your cost per return with the formula above and write it down where you'll see it the next time someone proposes free returns. And if the audit turns up units that can't be resold at any discount, the accounting side — when a write-off is justified and how to book it — is covered in the inventory write-off guide.