Selling fashion online

Ecommerce Return Rate: What It Is, Formula, and How to Track

Learn what ecommerce return rate, exchange rate, and failed-delivery rate mean; formulas, worked example, and how to track by product, size, and reason.

The Macgi team · · 9 min read

Woman in casual wear uses tablet for inventory management in a warehouse.
Photo: Tima Miroshnichenko / Pexels

What “ecommerce return rate” actually means

In an online fashion shop, return rate is the share of delivered purchases that customers send back. It is not the same as “refund rate” or “dispute rate,” and it should not include orders that were cancelled before shipping or packages that were never delivered.

For clothing, item-level return rate is usually more useful than order-level return rate. One order may contain two dresses, three sizes, or a top and a pair of trousers. If the customer keeps the top but returns the trousers, an order-level view hides the problem.

Use this formula for item-level return rate:

Return rate = (returned units / delivered units) × 100

If you prefer order-level tracking, use:

Return rate = (returned orders / delivered orders) × 100

The important rule is to keep the numerator and denominator on the same level. Do not divide returned units by delivered orders, or vice versa.

The three rates every fashion store should track

Return rate alone does not tell the full story. For a clothing store, especially one selling in Vietnam with cash on delivery, three rates matter.

Return rate

Return rate tells you how often shoppers send an item back after it has been delivered. Count only items or orders that were successfully delivered and then returned within your return window.

Exchange rate

Exchange rate tells you how often a delivered purchase turns into a size or product exchange rather than a full return. An exchange may still cost you shipping and handling, but it keeps revenue in the store.

Exchange rate = (exchange requests / delivered orders) × 100

Some shops track this by items. Again, choose one definition and use it consistently.

Failed-delivery / COD refusal rate

This is different from return rate. A COD package that the shopper refuses at the door was never accepted, so it was not “returned” in the usual sense. It is a failed delivery.

Failed-delivery rate = (refused or undeliverable COD packages / attempted COD deliveries) × 100

Some stores use total COD orders created as the denominator, but that makes the rate look artificially low because some packages may still be in transit. A cleaner denominator is “attempted COD deliveries” or “COD packages out for delivery.”

Worked example

Imagine a shop has 1,000 delivered orders in a month.

  • 70 delivered orders come back as returns.
  • 40 delivered orders have at least one exchange request.
  • The shop also shipped 600 COD orders, and 90 of them were refused at the door.

The numbers would be:

  • Return rate: 70 / 1,000 = 7%
  • Exchange rate: 40 / 1,000 = 4%
  • COD refusal rate: 90 / 600 = 15%

If the shop tracked items instead of orders, the return rate might be higher or lower depending on how many items were in each order. That is normal—just label what you are measuring.

Black mannequin with a yellow tape measure draped over it in a studio setting Photo: Pavel Danilyuk / Pexels

How to set up return tracking in Shopify, WooCommerce, Haravan, and Sapo

You do not need expensive software to start. A shared Google Sheet with clear columns works well. You mainly need consistent staff habits and one definition of “returned.”

Start with these columns:

Column Example
Order number #1043
Platform Shopify / WooCommerce / Haravan / Sapo
Order date 2026-01-05
Product SKU SKU-114
Size M
Color Black
Type Return / Exchange / COD refused
Reason code Too small
Quantity 1
Amount refunded 450,000 VND
Notes Customer asked for size L

Shopify

In Shopify, use the Orders area to review and tag returned orders. If your theme or plan includes a returns feature, record the reason and items there. Otherwise, export your orders as a CSV, open the file in Google Sheets, and add the return columns manually. Many Shopify stores also use a returns management app from the Shopify App Store. Choose one that lets you tag reasons at item level.

WooCommerce

WooCommerce does not have a full returns dashboard by default. The practical approach is to:

  1. Install a returns or order-status plugin from the WordPress plugin directory.
  2. Create a custom order status such as “Returned” or “Partial return.”
  3. Add order notes with the reason and SKU.
  4. Export orders with a plugin or the built-in reporting export, then combine the data in a sheet.

If you use variable products for size and color, make sure the export includes the product variation, not just the parent product name.

Haravan and Sapo

Haravan and Sapo stores often rely on COD and delivery-partner statuses. Start in the admin order list and export your orders. Mark COD refusals based on the delivery partner’s status or your staff’s confirmation. If the platform does not have a built-in return-reason field, use a shared Google Sheet and assign one person to update it daily. Check the current app marketplace for your platform for return-management apps; options change often.

Measuring return rate by product, size, and reason

A single return rate for the whole store is too broad. You need to see which products, which sizes, and which reasons drive returns.

Per product

Product return rate = (returned units of a SKU / delivered units of that SKU) × 100

For example, if SKU-114 had 40 delivered units and 8 returned units, its return rate is 20%. If another dress had 100 delivered units and 5 returned, its return rate is 5%. That difference tells you where to focus.

Per size

Size return rate = (returned units of size M / delivered units of size M) × 100

This is especially useful in fashion because a dress may sell well but have a high return rate only in size L. That often points to a fit issue in that specific size.

Per reason

Group returns by reason code and calculate the share of returned units.

Reason share = (returns for one reason / total returned units) × 100

Use reasons that are specific enough to act on. Good reason codes include:

  • Too small
  • Too large
  • Fabric or texture different from photos
  • Color different from photos
  • Damaged or defective
  • Wrong item sent
  • Changed mind
  • Late delivery
  • Poor quality stitching

Avoid vague tags like “other” or “customer complaint.” If more than 10% of your returns fall into “other,” split it into smaller reasons.

Modern fashion store with clothing on wooden hangers and warm lighting. Photo: Daniel Maurício Bertoli / Pexels

Why published fashion benchmarks vary so much

You may have seen benchmark posts saying fashion return rates are “around X percent.” Treat those numbers with caution.

Published benchmarks vary because people define returns differently. Some count only full returns, while others include exchanges. Some measure orders while others measure items. Some include COD refusals and some do not. A benchmark from the US or EU may also be based on free postal returns, longer return windows, different shopping habits, and different price points.

Geography matters. A fashion store selling to customers in Ho Chi Minh City with COD delivery will not have the same behavior as a store selling to customers in Berlin with 30-day free returns.

Product type matters too. A basic t-shirt is easier to buy online than a formal dress or a structured blazer. A store selling fitted dresses may naturally see more returns than a store selling loose loungewear, even if both have good product pages.

Because of this, do not obsess over matching a published number. The useful comparison is your own trend:

  • Is your return rate this quarter lower than last quarter?
  • Is a new product line returning more than your older lines?
  • Is one size causing a visible spike?

Internal trends are more actionable than an external average.

Common mistakes when calculating return rate

Many shops accidentally make their return rate look better or worse than it is. Avoid these mistakes.

Mixing orders and items

If you divide returned items by delivered orders, the number is not meaningful. Decide whether you are measuring order-level or item-level, then keep both sides consistent.

Including cancellations

An order cancelled before shipment is not a return. Put it in a separate “cancellation rate” if you want, but do not add it to the return rate.

Mixing COD refusals into returns

A refused COD package was never accepted, so it is a failed delivery, not a return. Mixing the two hides the real reason. A customer who refuses the package at the door may have a different problem from a customer who receives the item and returns it later.

Using the wrong denominator

Use delivered orders or delivered units, not total orders. If you include unfulfilled or transit orders, the rate will be artificially low.

Ignoring the time lag

An item sold on the 25th may be returned on the 5th of the next month. If you compare returns in a week to sales in the same week, you will misread the trend. Look at returns against the period when the items were delivered.

Not recording reasons during the refund

The easiest moment to capture the return reason is when the customer contacts you or when the return arrives. If you wait until month-end, staff will guess. Add the reason code to your return process, not just to a spreadsheet later.

Fix the root causes: product pages and size confidence

Many fashion returns start before the customer buys. The shopper cannot feel the fabric, try the fit, or see how long the item looks on their own body. Your product page has to fill those gaps.

Practical product-page checks for any platform:

  • Show a size chart with garment measurements, not just a generic S/M/L table.
  • State the model’s height, bust, waist, hip, and the size she is wearing.
  • Show photos from front, back, side, and close-up fabric details.
  • Avoid calling a color “red” when it is closer to rust or burgundy.
  • Add a short fit note: “Runs small—size up if between sizes.”
  • Show the length on a real body, not only lying flat.
  • Use video or a 360-degree view if possible.

You may also want to review our guides on how to help customers choose the right size online and product page best practices for fashion. They include checklists you can apply to your current catalog.

Even with strong product pages, some shoppers still cannot imagine the item on themselves. A virtual try-on button next to “Add to cart” can help. Macgi makes an AI virtual try-on widget for online clothing stores that uses your existing product photos. A shopper uploads one full-body photo and sees themselves wearing the product in about 15–40 seconds, which helps them judge the look before buying. The widget works on Shopify, WooCommerce, Haravan, Sapo, and custom sites, and the beta is free for 1,000 try-ons. If you want to test it, try the Macgi widget in the free beta.

FAQ

What is a good ecommerce return rate for fashion?

There is no single good number. A fitted formal dress store will usually have a different rate from a basic knitwear store. Track your own monthly trend and investigate products or sizes that spike above your own average.

Should I track returns by order or by item?

For fashion, item-level tracking is usually more useful because one order can contain several sizes or products. You can also track both, but label them clearly and do not mix them in one calculation.

Is COD refusal part of return rate?

No. Track failed delivery or COD refusal separately. A refused package was never delivered, so it is a different problem from a product that was received and returned.

How often should I review return data?

Look at the numbers weekly for operational issues, monthly for trends, and quarterly for product and sizing decisions. Use a rolling period such as the last 30, 60, or 90 days rather than a single short week.

Do I need a special app to track returns?

No. A structured Google Sheet with consistent columns and reason codes works for small shops. Apps and plugins can save time later, but the process matters more than the tool.

The Macgi team
We build AI virtual try-on for online shoppers.