EnableYourData.com

KPI · HR

Employee turnover rate: formula and example.

Employee turnover rate is the percentage of employees who leave in a period, measured against the average headcount. It covers both voluntary and involuntary departures. High turnover costs money and knowledge, because every leaver has to be replaced and the new hire trained.

Employee turnover rate formula

Number of leavers in the period ÷ average headcount × 100%

Worked example

In 2025, 18 employees left Acme Groothandel. The average headcount was 144. The employee turnover rate is 18 ÷ 144 × 100% = 12.5%.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

A higher rate means more people are leaving, so more recruitment and onboarding is needed. Always split it into voluntary and involuntary leavers and break it down by department and role, because an average hides where the problem is. Compare with previous years and with your own target; some turnover is healthy.

Pitfalls with employee turnover rate

  • Including or excluding the end of fixed-term contracts and agency staff without recording the choice.
  • Dividing by headcount on a single date instead of the average over the period.
  • Reporting turnover for a team of five, where one leaver is identifiable and the percentage means little.

SQL & DAX

Calculating employee turnover 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 avg_hc AS (
  SELECT AVG(n) AS n
  FROM (
    SELECT m, COUNT(e.employee_id) AS n
    FROM generate_series(DATE '2025-01-01', DATE '2025-12-01', interval '1 month') AS m
    JOIN employees e ON e.hire_date <= m AND (e.termination_date IS NULL OR e.termination_date > m)
    GROUP BY m
  ) s
),
leavers AS (
  SELECT COUNT(*) AS n
  FROM employees
  WHERE termination_date >= DATE '2025-01-01' AND termination_date < DATE '2026-01-01'
)
SELECT l.n AS leavers, ROUND(h.n, 1) AS avg_headcount,
       ROUND(100.0 * l.n / NULLIF(h.n, 0), 1) AS turnover_pct
FROM leavers l CROSS JOIN avg_hc h;
DAX · Power BI
Headcount =
VAR d = MAX ( 'Date'[Date] )
RETURN COUNTROWS ( FILTER ( ALL ( Employees ), Employees[HireDate] <= d && ( ISBLANK ( Employees[TerminationDate] ) || Employees[TerminationDate] > d ) ) )
Turnover % =
DIVIDE (
    CALCULATE ( COUNTROWS ( Employees ), USERELATIONSHIP ( Employees[TerminationDate], 'Date'[Date] ) ),
    AVERAGEX ( VALUES ( 'Date'[YearMonth] ), [Headcount] )
)

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

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

Divide the number of people who left during the period by the average headcount for that period and multiply by 100%. You can take the average from the headcount at the start of each month. Record whether fixed-term contracts are included.

What is the difference between turnover and attrition?

The terms are often used interchangeably. Where a distinction is made, attrition refers to roles that are not refilled after someone leaves, while turnover counts all leavers regardless of replacement. State which definition you use.

What is a normal employee turnover rate?

It varies widely by sector, role and labour market, so there is no fixed figure. Compare your rate with your own history and with the turnover you expect from retirements and contracts ending. Pay most attention to voluntary departures of people you wanted to keep.

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.