Waiving the restocking fee: 6 situations where waiving earns more than it costs
Six situations where waiving the restocking fee earns more than it charges: acquisition-cost arithmetic and a waiver decision table for Shopify refunds.
InventoryX is in development and not available today. ClearStock is the live Shopify app.
A restocking fee is a negotiating position, not a revenue line. Charged on every eligible return, it reads as spite; waived on every request, it's decoration that still annoys people. The fee earns its keep by changing behavior — deterring casual remorse returns and partially covering your costs when they happen anyway. In the six situations below, dropping it changes customer behavior more than keeping it does, and the arithmetic behind each is simple enough to run per refund request. All store numbers are illustrative; set yours from your own orders and margins.
The amount itself — what percentage to charge when you do charge — comes from your cost arithmetic, worked through in the fee math at 10, 15, and 25 percent. This article decides when the number you set should drop to zero.
What the fee is actually for
Two jobs: deterrence and partial cost recovery. The deterrent works on the marginal remorse return — the customer who might order two sizes and send one back thinks twice when a fee awaits. Cost recovery covers inspection, repack, and the markdown on what comes back.
Waiving makes sense whenever the fee fails at both jobs: when the return is your fault (deterrent misfires, recovery isn't the issue), when the customer is worth more than the fee, or when the dispute the fee provokes costs more than the fee collects. There's no legal obstacle — waiving is always permissible, since the disclosure rules constrain charging, not refunding (the enforcement side is covered in the disclosure rules that keep a fee enforceable).
The six situations
1. The return is your fault. Damaged on arrival, wrong item shipped, not as described. A fee on your own error is a second insult stacked on the first, and it's the single most common trigger for a refund dispute going nuclear. The math (with $13.50 as the running illustrative fee in this article): a $13.50 fee on a $90 order against a card dispute fee of $15 on most US Shopify plans (estimated, Shopify pricing, accessed November 2026) — before counting the reversed refund, the item, and the afternoon you'll spend on the response. Waive always, no discussion, and say so in the policy so it never becomes a negotiation.
2. It's their first order and the fee is smaller than your acquisition cost. Say your blended cost per acquired customer is $22 (illustrative — compute yours from ad spend and new orders). A first-time customer returns a $66 order and the 15% fee is $9.90 (illustrative). Holding that fee risks the only post-purchase interaction this customer will ever have with you — and re-acquiring them later costs $22. Waive when the product has re-order potential; for consumables like coffee beans and seed packets, make the waiver automatic in your policy text.
3. The fee is smaller than the cost you're already eating. On a $34 order, 15% is $5.10 (illustrative). If the item is the kind you can't resell once opened — or the situation is headed for a refund without a return — the fee adds friction while recovering almost nothing. The keep-it-versus-return-it break-even in when refunding without the item is cheaper is the test: where recovery value is near zero, skip the fee and close the ticket fast.
4. The customer has re-order history. A buyer on order four or more (illustrative threshold — set yours from repeat-purchase data) is the definition of a customer the fee was never meant to deter. The fee's expected value is the $13.50 running example; the margin on their next order might be $18 on a $60 purchase at 30% margin (illustrative). Waive below a frequency cap — say three fee-waived returns per customer per year (illustrative, self-set) — so goodwill has a ceiling.
5. They'll take an exchange or store credit instead of a refund. A refund ends the revenue; an exchange keeps most of it. Waiving the fee on an exchange is close to free money: you absorb the return label ($6.80 estimated for a typical domestic parcel) instead of paying $22 to re-acquire a customer (both illustrative from the ledger above). State the rule explicitly — "fee waived on exchanges and store credit" — because the asymmetry is what steers customers toward the option that keeps them buying.
6. The dispute is already more expensive than the fee. When a customer uses the word "chargeback," threatens a public review, or has run three rounds of escalation email, the fee is already underwater: a lost dispute costs the $15 fee (estimated, Shopify pricing, accessed November 2026) plus the reversed payment, often plus the item. Waive quickly, document the reason code, and close. Fast capitulation on a doomed dispute isn't weakness; it's pricing.
The waiver decision table
| Signal | Waive the fee? | The math that backs it |
|---|---|---|
| Defective / your error | Always | $13.50 fee < $15 dispute fee + reversal + item (estimated) |
| First order, re-order potential | Waive | $9.90 fee < $22 acquisition cost (illustrative) |
| Serial returner, remorse pattern | Hold | The fee is the deterrent you set |
| Item resells as-new at full price | Hold | You recover fully; fee is near-pure margin — disclose and defend it |
| Exchange / store credit accepted | Waive | Keeps revenue; label cost < re-acquisition cost |
| Escalation language present | Waive | Dispute cost > fee, by construction |
The two "hold" rows matter as much as the waives. A fee that's always waived isn't a policy; it's a suggestion. Holds are what make the fee credible as a deterrent — and credibility is what keeps remorse volume down in the first place.
Waiving cleanly in the refund
In Shopify's refund flow the fee is a field you fill at refund time, so waiving is simply leaving it empty — the refund then returns the full amount (Shopify Help Center, accessed November 2026). Two habits make the waiver system rather than a mood:
- Log a reason code on every waiver. Your-fault, exchange, first-order, escalation — four codes cover most stores. Without codes, "waived" is indistinguishable from "forgotten."
- Keep a waiver budget. Track waived fees monthly; if waivers exceed roughly 3% of refund volume (illustrative self-set cap), your base fee is probably set too high and customers are voting against it. Recalibrate the base number rather than waiving ad hoc. For the label side of the same refund, how to split the label cost by fault handles who pays shipping — a decision independent of the fee itself.
Common questions
Can a restocking fee be waived? Yes — waiving is always your call and always permissible; no rule requires you to charge a fee just because your policy discloses one. Waiving costs nothing legally and, in the six situations above, frequently nets more than charging.
Should I waive the fee for a first-time customer? Yes, when the fee is smaller than what you paid to acquire them and the product has re-order potential — for consumables, make the waiver automatic. Holding a $10 fee against a $22 acquisition cost (illustrative) is saving pennies on the relationship.
Does waiving the fee inconsistently look like favoritism? Not if waivers follow stated rules with reason codes logged. "Fee waived on your-fault returns and exchanges" is a policy, not a mood — the inconsistency customers punish is the kind without a rule behind it.
Can I waive the fee on exchanges but charge on refunds? Yes, and it's a good design — disclose the asymmetry in the policy ("fee applies to remorse refunds, waived on exchanges") so the steering effect is transparent. The exchange keeps revenue in the store; the fee only applies when revenue actually leaves.
Does waiving the fee mean I also pay return shipping? They're independent decisions: you can waive the fee while the customer still pays the label, or vice versa. Most stores pair fee-waivers with your-fault labels and customer-paid labels on remorse returns, all disclosed up front.
Next step
Write two auto-waive rules into your policy today — your-fault returns and exchanges — and add a reason-code field to your refund process so every other waiver gets logged. Then pull last month's refunds and check which of the six situations you mispriced: fees you charged that fit the waive list are this week's goodwill to recover, and the percentage itself should be re-run against the fee math at 10, 15, and 25 percent.