EnableYourData.com

KPI · E-commerce

Refund rate: formula and example.

Refund rate is the amount you pay back to customers in a period, divided by total payments received, as a percentage. It covers refunds after returns, but also after cancellations, damaged deliveries or complaints. Refund rate shows how much of your revenue does not ultimately stick.

Refund rate formula

Amount refunded ÷ payments received × 100%

Worked example

In the third quarter, Acme Groothandel receives €600,000 in payments and refunds €21,000 to customers over the same period. Refund rate is €21,000 ÷ €600,000 × 100% = 3.5%.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

A rising refund rate means more revenue is being lost, through more returns, delivery problems or complaints. Break it down by reason, product category and channel to find the cause, and compare with the same period last year because of seasonality. Set it next to return rate: a refund rate climbing faster than returns points to refunds without a return.

Pitfalls with refund rate

  • Allocating refunds to the month they were paid out when the original payment fell in another month.
  • Missing partial refunds because only full refunds get their own status.
  • Not combining refunds through the payment provider with manual refunds by bank transfer.

SQL & DAX

Calculating refund 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', created_at) AS month,
       SUM(amount) FILTER (WHERE status <> 'failed') AS received,
       SUM(amount) FILTER (WHERE status = 'refunded') AS refunded,
       ROUND(100.0 * SUM(amount) FILTER (WHERE status = 'refunded')
             / NULLIF(SUM(amount) FILTER (WHERE status <> 'failed'), 0), 2) AS refund_rate_pct
FROM payments
GROUP BY 1
ORDER BY 1;
DAX · Power BI
Refund Rate =
DIVIDE(
    CALCULATE(SUM(Payments[amount]), Payments[status] = "refunded"),
    CALCULATE(SUM(Payments[amount]), Payments[status] <> "failed")
)

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

Ask for refund 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 refund rate?

Divide total refunds in a period by total payments received in that period and multiply by 100%. With €4,000 refunded on €100,000 of payments, refund rate is 4%. You can also calculate it on the number of transactions.

What is the difference between a refund and a chargeback?

A refund is money you, the seller, choose to pay back. A chargeback is a reversal the customer forces through their bank or card issuer, usually with extra fees for the seller. That is why chargebacks are tracked separately with chargeback rate.

Why is my refund rate higher than my return rate?

This happens when you also refund without anything coming back, for example for a damaged or late delivery, a price correction or a cancellation after payment. Refund rate may also be calculated by value while return rate is based on order counts. Check that both KPIs use the same basis.

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.