monkeyman.agency
scaling

Return Fraud Is Eating Your Margin and You Can't See It

Wardrobing, reason-switching, and double-dip refunds quietly drain a Shopify store's margin. Here's how to score risky returns before you approve them.

June 25, 2026 9 min read

Marco runs Atlas Run Co., a running-apparel DTC brand doing around $3M GMV a year on Shopify. His return rate had always hovered near 18%, which for apparel is fine. Then over one quarter it climbed to 31%, and the refund line on his P&L started looking like a second marketing budget.

He assumed it was sizing. Maybe a new fit ran small. So he dug into the data expecting to fix a size chart.

That’s not what he found. A cluster of customers were ordering three sizes of the same shoe, keeping one, and returning the other two worn. Another group kept filing “item not as described” on products that were exactly as described, because that reason code dodged the restocking fee. And a handful had figured out something nastier, which is that they could request a refund and dispute the same charge with their bank at the same time, collecting twice.

None of it looked like fraud on any single order. That’s exactly why it had run for three months before anyone noticed.

The 31% return rate that wasn’t sizing

Marco called, we ran the audit, the gap was abuse. Not all of it, returns are a normal cost of selling apparel online, but a meaningful slice of that jump was people working the system on purpose.

Here’s the trap with this kind of loss. A chargeback fraud hits you for a few hundred dollars in one ugly event you can’t miss. Return abuse hits you for $40 here and $60 there, across hundreds of refunds that each cleared because the customer sounded reasonable and your support rep was trying to be nice. The damage is identical in total. One just hides better.

And it hides inside a number you’ve been trained to treat as customer-friendly. “Approve the return, keep the customer happy” is good advice right up until a chunk of those returns are organized abuse, at which point it’s just a slow leak you’re funding with a smile.

A field guide to how returns get gamed

The first step is naming the patterns, because they don’t all respond to the same fix.

Abuse patternWhat it looks likeBest lever
WardrobingBuy, use or wear once, return as “unworn”Inspection, final-sale on worn-prone items
Reason-switchingFake “defective” or “not as described” to dodge feesVerify defect claims, track reason codes
Double-dipRequest a refund and file a chargeback togetherReal-time fraud scoring, fast refund flags
Serial returningHigh volume of returns across many ordersCustomer-level return-rate tracking

Wardrobing is the classic. Someone buys a dress for an event, wears it once with the tags tucked in, and ships it back as new. Apparel and formalwear eat this constantly, and the product often can’t be resold at full price even when it comes back, so you lose the margin and the inventory.

Reason-switching is sneakier and shows up in your data, not your warehouse. A customer who’d owe a restocking fee for “changed my mind” learns that “arrived damaged” or “not as described” gets a free return, so they just pick the reason code that costs them nothing. Watch the same customer file “defective” on five unrelated products and you’ve found one.

Then there’s the double-dip, which is the one that actually scared Marco. A merchant told us about exactly this on an onboarding call. The customer submits a return through your portal and files a chargeback with their bank for the same order, hoping to collect the refund and the dispute reversal both. Done fast enough, an under-staffed support team pays out before the chargeback even posts.

Returnless refunds opened a brand-new door

A few years ago the smart move was to stop asking for low-value items back. Shipping a $12 phone case to your warehouse costs more than the case, so “keep it, here’s your refund” was pure efficiency. Most stores rolled out returnless refunds and saved a pile on reverse logistics.

The abusers noticed faster than the merchants did.

Once word gets around that your store refunds without requiring the item back, a certain kind of customer starts ordering specifically to trigger it, claiming a problem on items they fully intend to keep. The very thing that saved you money becomes a free-product coupon for anyone willing to send one annoyed email. We’ve seen stores where the returnless threshold quietly became the most-exploited line in their entire policy.

The fix isn’t to kill returnless refunds. They still save real money on genuine cases. The fix is to stop granting them by a flat dollar rule and start granting them by risk, so a first-time complaint from a five-year customer gets the no-questions treatment while the account that’s claimed three “never arrived” packages this month does not.

The signals that score a return before you approve it

You already score orders for fraud risk. Returns deserve the same treatment, and most of the signals are sitting right there in your data.

Customer return rate is the headline. Someone returning 60% of what they buy, every month, is a different risk than someone returning their first item in two years, and they should not get the same automatic yes. Reason-code patterns matter too: a single account that always finds the fee-free reason is telling on itself. So is timing, returns filed at the very edge of your window, or refund requests that show up minutes after a chargeback alert.

Look at the product mix as well. High-resale items, electronics, designer pieces, the stuff that’s easy to flip, draw more organized abuse than your basic catalog. And cross-reference the shipping and account details the same way you would on the order side, because the same person running return scams often runs them across several accounts that share an address or a payment method.

None of these alone proves anything. A loyal customer can have a bad streak of genuine defects. But stacked together, three or four of these signals turn a vague “this feels off” into a number you can actually set a rule against.

What return-scoring software actually does

This is where tooling earns its keep, because no human is manually cross-referencing return rates and reason codes on every refund request at volume.

Return-management and fraud apps, the Loop, Signifyd, and Riskified tier of tools, assign each return or refund a risk score the same way order-fraud apps score checkouts. A clean return from a trusted customer sails through to instant approval, which is good for them and cheap for you. A high-risk one gets held for manual review or routed to a stricter path: item required back, inspection before refund, no returnless treatment. The model learns your repeat abusers and auto-tags them, so the customer who’s burned you twice doesn’t get the benefit of the doubt a third time.

The double-dip case is where speed matters most. A good system cross-checks active chargebacks against open refund requests, so you don’t pay out a return on an order that’s simultaneously being disputed at the bank. Catching that overlap in real time is pretty much impossible by hand and trivial for software, and it’s often the single highest-dollar save in the whole setup.

Policy levers that cut abuse without punishing everyone

Tooling scores the risk. Policy decides what happens next, and the art is hitting abusers harder than you hit your honest majority.

Final-sale rules on the high-wardrobing categories, formalwear, special-occasion pieces, deeply discounted clearance, take the most-abused items out of the return pool entirely while leaving your core catalog generous. Shopify’s own return rules let you set final-sale items and restocking fees at the catalog level, so you’re not policing this by hand. Restocking fees on non-defective returns make casual over-ordering a little less free, though you have to verify defect claims or you just push everyone toward reason-switching. Store credit instead of cash refunds keeps the money in your ecosystem and is far less attractive to someone running a scam for cash. And a quiet customer-level cap, flagging or limiting accounts past a return-rate threshold, deals with serial returners without slapping a strict policy on the 95% who never abuse anything.

The principle underneath all of it: your policy should be easy for good customers and expensive for bad ones. Most stores get that backwards, tightening the rules on everybody after one bad month, which annoys their loyal base and barely slows the people actually gaming them.

Measuring the rate and the margin you win back

If you take one number home, make it return-fraud rate, not gross return rate. Gross returns blend honest sizing swaps with abuse and tell you almost nothing. The slice you want is the share of returns that show abuse signals, tracked over time, because that’s the line your interventions actually move.

Watch a few things alongside it. Refund dollars recovered or prevented after you turn on scoring. Returnless-refund abuse rate before and after you switch from a flat rule to a risk-based one. Reason-code distribution, since a healthy store shows mostly sizing and preference, and a gamed one shows a suspicious pile of “defective.” Track those for a quarter and you’ll know whether you have a sizing problem, an abuse problem, or both, instead of guessing.

That distinction is the whole game. You can’t fix what you’ve lumped into one friendly number.

What we keep telling clients

The hardest part of return fraud isn’t catching it. It’s letting go of the idea that every return is a customer-service moment you should win by being generous.

Generosity is the right default for the vast majority of your buyers, and you should protect that. But a blanket “yes” to everyone isn’t generosity, it’s just an unmonitored budget that your most opportunistic customers have already found. The goal isn’t to get stingy. It’s to aim the scrutiny, so the loyal customer with a genuine defect gets an even smoother experience while the serial abuser hits friction for the first time.

So we tell clients to score returns like they score orders, switch returnless refunds from a dollar rule to a risk rule, and put final-sale and store-credit levers on the categories that actually get gamed. Boring, unglamorous, and it works.

Marco didn’t tighten his return policy on everyone, which was his first instinct. He added return scoring, moved returnless refunds to a risk-based trigger, made worn-prone clearance final sale, and set a flag on accounts returning more than half their orders. His honest customers never felt a thing. His return rate came back down toward 20% over the next two quarters, and the double-dip attempts got caught at the door instead of paid out.

Questions we get every week

How do I tell return abuse apart from a real sizing or quality problem? Look at the spread. A genuine product issue shows up across many different customers hitting the same SKU with the same complaint, while abuse concentrates in specific accounts with high return rates and convenient reason codes. If one customer returns half of everything and always finds the fee-free reason, that’s behavior, not a defect.

Should I stop offering returnless refunds because of the abuse? No, they still save real money on genuine low-value returns. Just stop granting them by a flat dollar threshold and grant them by customer risk instead, so trusted buyers get the easy path and flagged accounts have to send the item back.

What’s a double-dip and how do I catch it? It’s when a customer requests a refund through your store and files a chargeback with their bank for the same order, trying to collect twice. You catch it by cross-checking open chargebacks against pending refunds before you pay out, which fraud-scoring tools do automatically in real time.

Will cracking down on returns hurt my customer experience? Only if you do it to everyone. Aim the friction at high-risk returns and accounts with abuse signals, and your honest majority actually gets a faster, smoother experience because you’re no longer treating every refund as a threat.

If your refund line is creeping up and you can’t tell how much is abuse, let’s audit your returns together.

Need help with this?

Send us your store. We'll send back an audit.

Send us your store URL. We'll send back a free audit within 48 hours.

Phone (optional)