EnableYourData.com

KPI · E-commerce

Return rate: formula and example.

Return rate is the number of orders with a return divided by the total number of orders, as a percentage. You can also calculate it by value: returned revenue divided by total revenue. Returns cost shipping, handling and sometimes write-offs, so return rate has a direct effect on your margin.

Return rate formula

Orders with a return ÷ total orders × 100%

Worked example

Of the 1,280 orders Acme Groothandel ships in September, 96 are (partly) returned. Return rate is 96 ÷ 1,280 × 100% = 7.5%. By value, €12,000 comes back on €192,000 of revenue: €12,000 ÷ €192,000 × 100% = 6.25%.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

A higher return rate means more cost and less net revenue; a rise for one product or category often points to an issue with product information, quality or sizing. Compare it by category, by channel and with the same period last year, because returns are seasonal. If you record return reasons, look at those alongside the numbers.

Pitfalls with return rate

  • Including recent orders while the return window is still open, which makes the rate look too low.
  • Allocating returns to the month they arrive rather than the month of the original order.
  • Mixing order counts and values; one returned item from a large order counts as a whole order.

SQL & DAX

Calculating return rate in SQL and DAX

Two examples on a fictitious data warehouse for Acme Groothandel: a PostgreSQL query and a measure for a Power BI model. Adjust table and column names to your own model.

SQL · PostgreSQL
SELECT date_trunc('month', o.order_date) AS month,
       COUNT(DISTINCT o.order_id) AS orders,
       COUNT(DISTINCT r.order_id) AS orders_with_return,
       ROUND(100.0 * COUNT(DISTINCT r.order_id)
             / NULLIF(COUNT(DISTINCT o.order_id), 0), 1) AS return_rate_pct
FROM orders o
LEFT JOIN returns r ON r.order_id = o.order_id
WHERE o.status <> 'cancelled'
  AND o.order_date < current_date - interval '30 days'
GROUP BY 1
ORDER BY 1;
DAX · Power BI
Return Rate (orders) =
DIVIDE(DISTINCTCOUNT(Returns[order_id]), DISTINCTCOUNT(Orders[order_id]))

Return Rate (value) =
DIVIDE(SUM(Returns[amount]), SUM(Orders[total_amount]))

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

Ask for return rate per month, customer or product in the SQL Explorer with AI. The AI writes the SQL, you see the query and run it yourself; the AI only receives metadata.

Read more →

In your Power BI dashboard

Define the KPI as a measure in your Power BI model and show it in the portal, with "Last refreshed" next to it. Access profiles and optional row-level security decide who sees which figures.

Read more →

Custom dashboards (pilot)

Add the KPI as a tile to a custom dashboard, compared with last year. The Dashboard Builder is a pilot and can be switched on per client.

Read more →

Monthly targets

With the built-in Targets app you set a target for the KPI per month, so you see actuals and target side by side.

Read more →

FAQ

Frequently asked questions

How do you calculate return rate in ecommerce?

Divide the number of orders with a return by the total number of orders in the same period and multiply by 100%. With 2,000 orders and 150 returned orders, return rate is 7.5%. Wait until the return window for those orders has closed, otherwise the figure comes out too low.

Should return rate be measured by orders or by value?

Both are useful, but they answer different questions. By order count you see the workload for the warehouse and customer service; by value you see the impact on revenue and margin. State in the KPI definition which variant you are showing.

What is the difference between return rate and refund rate?

Return rate counts orders that are physically sent back, while refund rate measures the money you pay back. They diverge when you refund without a return, for example for a damaged delivery, or when a return is exchanged rather than refunded.

Use AI on your own data. Securely, and without the headache.

In an online demo we show how ENABLE makes your data securely available and how you build on it: describing an app in the AI Builder, plain-language questions, dashboards and APIs. And how we set it up and manage it for you.