EnableYourData.com

KPI · E-commerce

Returning customer rate: formula and example.

Returning customer rate is the number of customers who order in a period and had ordered before, divided by all customers who order in that period. It shows the make-up of your customer base: does revenue depend on existing customers or new ones? Together with the number of new customers, it explains your customer growth.

Returning customer rate formula

Customers in the period with an earlier order ÷ all customers in the period × 100%

Worked example

In September, 1,500 customers order from Acme Groothandel. Of these, 600 had ordered before. Returning customer rate is 600 ÷ 1,500 × 100% = 40%.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

A higher rate means existing customers make up a larger part of your buyers, which usually signals good loyalty and lower acquisition costs. A falling rate can mean two things: existing customers are dropping away, or you are attracting lots of new ones. Always look at the absolute numbers of new and returning customers alongside it.

Pitfalls with returning customer rate

  • Using a short history, so customers from before the data starts are wrongly counted as new.
  • Not linking guest checkouts to existing customers, for example by email address.
  • Confusing it with customer retention rate, which measures what share of last period's customers keep buying.

SQL & DAX

Calculating returning customer 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
WITH firsts AS (
  SELECT customer_id, MIN(order_date) AS first_order
  FROM orders
  WHERE status <> 'cancelled'
  GROUP BY customer_id
)
SELECT date_trunc('month', o.order_date) AS month,
       COUNT(DISTINCT o.customer_id) AS customers,
       ROUND(100.0 * COUNT(DISTINCT o.customer_id)
               FILTER (WHERE f.first_order < date_trunc('month', o.order_date))
             / NULLIF(COUNT(DISTINCT o.customer_id), 0), 1) AS returning_customer_pct
FROM orders o
JOIN firsts f ON f.customer_id = o.customer_id
WHERE o.status <> 'cancelled'
GROUP BY 1
ORDER BY 1;
DAX · Power BI
Returning Customer Rate =
VAR PeriodStart = MIN('Date'[Date])
VAR Buyers = VALUES(Orders[customer_id])
VAR Returning =
    FILTER(Buyers, CALCULATE(MIN(Orders[order_date]), REMOVEFILTERS('Date')) < PeriodStart)
RETURN
    DIVIDE(COUNTROWS(Returning), COUNTROWS(Buyers))

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

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

Count the customers who order in a period and had ordered before, then divide by all customers who order in that period. With 800 customers of whom 280 had bought before, the rate is 35%. You can also calculate it on order count or revenue.

What is the difference between returning customer rate and retention rate?

Returning customer rate looks at today's customers and asks how many have bought before. Retention rate looks at an earlier period's customers and asks how many still buy. The first describes your current customer mix; the second how well you keep customers.

Is a high returning customer rate always good?

Not always: the rate also rises when you win few new customers. A healthy picture is a stable or rising absolute number of returning customers next to a steady flow of new ones. So look at both counts, not only the percentage.

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.