Returns Refund Accuracy: The Bug That Overpaid Customers (Simply Explained)
A plain-language guide to returns refund accuracy. No jargon, no tech speak, just what it means for your business.
By Mike Hodgen
A customer returned one item to my fashion brand. The system processed it and tried to hand back $52. Clean transaction. Customer happy. No errors anywhere.
One problem. That customer never paid $52. They paid $9.37.
The item was on sale, and the order had a coupon stacked on top. After both discounts, the real price was under ten bucks. But the returns system saw the original sticker price of $52 and was about to refund money we never collected.
One return. One overpayment of $42.63. Not the end of the world.
Except this wasn't one return.
Why a small bug becomes a big leak
Most of my orders carry some kind of discount. A seasonal code. A markdown. A free-gift offer. A returning-customer deal.
If the system overpays on every discounted return, and most returns come from discounted orders, the small leak stops being small. It drips, return after return, month after month. And every report on my screen says everything is fine.
Think of it like a faucet with a slow leak behind the wall. You don't hear it. You don't see it. You just get a water bill that's a little higher than it should be, and you can't figure out why.
It turned out there were actually two leaks, not one.
The first overpaid refunds by using the sticker price instead of what people actually paid.
The second one was sneakier. It leaked store credit on exchanges. And if a customer swapped sizes more than once, it could pile up credit every single time.
The first leak: refunding the sticker price
Here's the simple mistake. The system refunded the catalog price (the sticker on the tag) instead of what the customer actually paid after discounts.
Those two numbers can be miles apart. The gap between them is exactly the money you give away.
Picture a $52 shirt. It's marked down to $26. Then a sitewide coupon and a free-gift deal spread across the cart, and that shirt's real price drops under ten dollars. The customer paid $9.37.
Refund the full $52 and you've handed back $42.63 you never collected. That's not a refund. That's a gift.
This is the most common returns mistake I see. The sticker price is sitting right there in the product record, easy to grab. Someone wired the refund to use it because it was the obvious number. Obvious and wrong.
The second leak: free credit on size swaps
A customer returns a medium and wants a large. Same shirt, same color, just a bigger size. That should cost nothing. It's an even swap.
But the system compared what the shirt cost when they bought it to what it costs today. Prices move. If the shirt got cheaper since they bought it, the system handed the customer store credit for swapping sizes.
They returned a medium, got a large, and walked away with free credit. For nothing. Just because the price happened to drop.
Now here's the ugly part. A customer who swaps sizes twice could collect credit each time. First swap grabs a little. Second swap grabs more. Each one is a dollar here, a few dollars there, so nothing ever sets off an alarm.
Nobody's cheating. The customer is just happy. The system is quietly printing free credit out of thin air.
Why this hid for so long
Nothing broke. That's the part every business owner needs to sit with.
Refunds went through. Customers got their money, sometimes more than they should have, and nobody complains about extra money. Support saw clean transactions. The whole returns process looked perfectly healthy.
The only clue was this. My profit on heavily discounted orders ran a little below what my pricing math predicted. Not dramatically. Just a few points off, consistently, in a direction I couldn't explain.
So I went through the returns process line by line, not because anyone complained, but because the numbers nagged at me. That's when I caught both leaks sitting right next to each other.
Here's the lesson. A returns process can overpay for months and look completely healthy, because the failure is silence, not errors. Errors get noticed. Overpayments don't. The customer is happy, the sale goes through, and the only victim is your profit, which never files a complaint.
Let me be blunt. This could be happening to you right now. Your dashboard wouldn't show it. Your support team wouldn't catch it. Your customers definitely won't tell you. The money just leaves.
The fix: two simple rules
I fixed it with two rules that always hold, plus closing a security hole I found along the way.
Rule one. Every refund is now based on what the customer actually paid, down to the cent. The original price, minus every discount, minus that item's fair share of any order-wide coupon. My $52 phantom refund became the correct $9.37.
Rule two. A same-item size swap always costs exactly zero. No comparing old price to new price. If it's the same shirt in a different size, it's an even swap, every time, no matter how prices moved.
I also found a security hole. The refund amount was being calculated partly from information sent by the customer's web browser, which means a tech-savvy person could fake a request and inflate their own refund. So I locked it down. The system now pulls the real order from our records and ignores any number sent from the outside. You can't tamper with a number the server refuses to trust.
I fixed both with clean rules instead of one-off patches on purpose. Patch one bug and the next discount type just reopens the same wound. Two solid rules close the whole problem, not just the cases I happened to spot.
Check your own returns this week
You don't need me to find out if this is happening to you. Here's a simple audit you can run in an afternoon.
First, pull 10 to 20 recent returns from orders that had any discount. For each, compare the refund to what the customer actually paid after discounts. Any refund higher than that is leaking money. Find even two or three in a sample of twenty, and you've got a structural problem, not a fluke.
Second, run a real test. Return one size for another size of the same item and watch what happens. It should settle at exactly zero. If it spits out any number, you've got the size-swap leak. Try it a second time in a row, because that's where the credit piles up.
Third, ask where the refund number comes from. If your system trusts a price sent from the customer's browser, that's a hole someone can exploit. It should always come from your own records.
Three checks. One afternoon. Real evidence instead of a hopeful guess.
The businesses bleeding the most on this are the ones that discount the most and do the most exchanges. That describes most online brands. That describes mine. The healthier and more promotion-driven your business looks, the bigger this leak can get.
I build and audit this kind of money-moving logic for the brands I run and the clients I work with. If you just realized your returns might be quietly overpaying, the next step is simple. Let me audit your returns math, and we'll find out what the silence is costing you.
Want to explore what AI could do for your business?
Book a free 30-minute strategy call. No pitch deck, no sales team, just a real conversation about your operations and where AI fits.
Get AI insights for business leaders
Practical AI strategy from someone who built the systems — not just studied them. No spam, no fluff.
Ready to automate your growth?
Book a free 30-minute strategy call with Hodgen.AI.
Book a Strategy Call