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

← All blogs

Guides8 min read

Restocking fee calculator: worked examples at 10, 15, and 25 percent

Worked restocking fee math at 10, 15, and 25 percent across real order values, plus the break-even formula for which percentage covers return costs.

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

A returned unit costs four things before it can resell: the freight on its trip back, the inspection-and-repack labor, the condition loss on a unit that is no longer new, and the share of returns that never resell at all. Sum those for your own catalog, divide by what the customer paid, and the result is your restocking fee — a number that for some catalogs lands nowhere near the 15% most stores copy off each other's policy pages. Below: the formula, worked examples at 10, 15, and 25 percent across real order values, and the calculator logic for picking a number you can defend at the refund counter. All merchant numbers are illustrative; run your own before you publish.

First, the boundary: when to charge a fee at all, which reason codes justify one, and how to word the policy are covered in designing your restocking fee policy. That article owns the decision to charge. This one owns the amount.

What the fee has to cover

A restocking fee is not a shipping charge. The label has its own line and its own who-pays decision — who pays the return label, and how to split it covers that — and for scale, a typical domestic ground label runs about $6.80 at commercial rates (estimated, USPS Ground Advantage, accessed November 2026). The fee covers what happens to the item after the label:

  • H — handling. Inspection, cleaning, repack, relabel. Minutes × your loaded hourly rate (a $25/hr illustrative rate is a fair starting point for a small team).
  • D — condition loss. Retail price minus realistic recovery. A sealed item resells at full price, so D ≈ 0; an opened item moves to a markdown bin, so D is the markdown.

Fee $ ≈ H + D on a typical remorse return where the item comes back.

In Shopify's refund flow, the fee is a field you fill during the refund — it's deducted from the amount returned to the customer and shown on the refund summary (Shopify Help Center, accessed November 2026). The app applies whatever number you bring; the point of this article is making that number defensible.

Worked example: two yoga mats, one $92 order

A customer returns two MAT-YG-02 yoga mats — $46 each, $92.00 order (illustrative). Reason: changed mind, boxes opened.

  • H: 12 minutes of inspection and repack at $25/hr = 12/60 × 25 = $5.00 (illustrative)
  • D: opened mats go back into sellable stock at a 10% markdown — recovery $82.80, so D = 92.00 − 82.80 = $9.20 (illustrative)
  • Cost to take back: H + D = 5.00 + 9.20 = $14.20

Now the checkpoints:

Fee Fee amount Versus the $14.20 cost
10% $9.20 Under-recovers by $5.00
15% $13.80 Under-recovers by $0.40
25% $23.00 Over-recovers by $8.80

The break-even percentage is 14.20 ÷ 92.00 = 15.4%. On this order the folklore 15% is almost exactly break-even — a coincidence of this example, not a law. A sealed return would drive D to zero and the break-even down to 5.4%; a badly worn return pushes D up and the break-even past 25%. Run the two numbers on a typical return from your orders and you have your number.

The calculator: pick the % whose break-even sits below your median return

The percentage covers your costs when the order value clears (H + D) ÷ fee%. Flipped around, each fee percentage has a break-even order value:

Your typical H + D cost (illustrative) 10% breaks even at 15% at 25% at
$8 $80 $53 $32
$12 $120 $80 $48
$20 $200 $133 $80

Three steps to use it:

  1. Compute H + D for a typical return from your own data — handling minutes from your process, condition loss from your markdown bin.
  2. Pull the median order value of your last 90 days of remorse returns.
  3. Pick the percentage whose break-even row lands just below that median.

If your typical cost is $12 (illustrative) and your median returned order is $95, a 15% fee is roughly break-even and a 25% fee builds a small buffer. If your median is $40, even 25% under-recovers — and at that order value you're probably better off making small returns returnless than charging any fee at all.

Tiering the fee by category

One fee percentage across the whole catalog is simpler to run and simpler to disclose — but when condition loss varies wildly between categories, a single number either over-charges the clean categories or under-recovers on the messy ones. The variable that differs is D, not H: handling minutes barely change by category, while markdown depth does.

Illustrative profile for three categories, each on a $60 order:

Category Typical H Typical D H + D Break-even % on $60
Sealed electronics (bike lights) $4.17 ~$0 $4.17 7%
Opened soft goods (hiking socks) $4.17 $8.40 $12.57 21%
Bulky durables (dog harnesses) $8.33 $3.00 $11.33 19%

Reading it: a 10% fee is comfortably profitable on sealed returns and badly under-recovers on opened soft goods. If you tier, keep the tiers to two or three and name them by category in the policy — a fee schedule with five brackets is a support ticket generator. Tier only when the D gap is material; a two-point spread isn't worth the policy surface. And whatever tiers you publish, the refund-time deduction must match the tier the returned item actually belongs to, or the disclosure discipline from the legality question breaks down. On the wholesale side the same fee exists as a negotiated line-sheet term rather than a published percentage — the B2B version, including grading and credit memos, is covered in the wholesale returns guide.

Picking a number you can defend

  • Anchor the fee to the arithmetic, then round to a clean number. A stated 15% that roughly equals your measured break-even is defensible in a customer conversation; a stated 25% on a catalog where costs say 12% reads as revenue-grabbing and draws disputes.
  • Price the waiver before the fee. The fee you refund on every complaint costs more than it collected — the waiver economics are worked in the restocking fee waiver guide, and they set an upper bound on what percentage you can defend.
  • Disclose the exact percentage and its scope. Which reason codes, which categories, and that the label is a separate charge. The disclosure rules that make the fee enforceable are covered in the disclosure rules that keep a fee enforceable.
  • Plan for pushback proportional to the percentage. Higher fees generate more refund-time objections; have the arithmetic ready in a reply template — "the fee covers inspection and repack of returned items, and it's lower than the shipping you'd pay at the counter" — where the counter comparison itself leans on the commercial-versus-retail rate gap documented on carrier rate cards (UPS published rates, accessed November 2026).
  • Never exceed the disclosed percentage at refund time. Apply exactly what the policy states; improvising upward at the refund counter is the fastest route to a chargeback.

One note about where this arithmetic lives in our own product: InventoryX runs the same per-order math on a different leak — estimating the revenue lost per SKU when items sit at zero stock. V1 works from out-of-stock days and in-stock velocity; it doesn't touch refund economics, so the calculator above remains spreadsheet work for now. We'd rather say that than imply otherwise.

Common questions

How much should a restocking fee be? Whatever covers your per-return cost of H + D divided into your median returned order value — the two tables above show the arithmetic at 10, 15, and 25 percent. There's no legally required percentage and no industry standard you must match; there's only your own break-even.

Is 25% too high for a restocking fee? It's defensible when your break-even arithmetic says costs approach a quarter of the returned order's value, or when you deliberately price the fee as a deterrent on high-abuse categories. Expect more pushback at 25% and hold the line only if the math and the disclosed policy back you.

Does the restocking fee include return shipping? Usually not — the label is a separate charge with its own who-pays rule, and they can stack on a remorse return. Keep them as separate line items in the policy and the refund so customers can see what each one buys.

How do I apply the fee in Shopify? Enter it as a line during the refund; Shopify deducts it from the amount returned to the customer and displays it on the refund (Shopify Help Center, accessed November 2026). Apply the disclosed percentage exactly — no per-case improvisation upward.

What if the item comes back damaged? Then D rises and your fee under-recovers, which is why the reason code matters more than the percentage: damage caused by the customer belongs in a separate lane with photos and possibly no refund at all, while your-fault damage should waive the fee entirely.

Next step

Take three real remorse returns from the last month and compute H + D for each — handling minutes times your loaded rate, plus the markdown the item actually took. Average them, divide by your median returned order value, and see which checkpoint column you land in. Then write the percentage into the policy using the guidance in designing your restocking fee policy.