Analytics Catalog/Workday/Core HR/Turnover & Retention
Explore the catalogModulesHeadcount & FTE TrendMovementWorkerEnterprise model
Workday · Core HR · Report

Turnover & Retention

Two rates, four definitions, endless arguments. This page fixes the denominator once, separates turnover from retention properly, and shows the one query that computes both facts' worth of truth.

RuleOne denominator, average headcount, defined in the model, and the numerator population must match itNeverreport retention as one minus turnover. Retention follows a cohort; turnover counts everyone's exits.
The definitions— turnover, voluntary turnover, retention, and annualization, each stated once.
MetricDefinitionThe catch
Turnover rateExits in the period, divided by average headcount for the period.The denominator is where dashboards diverge. Fix it: the average of month-start and month-end headcount, from the snapshot. One choice, everywhere.
Voluntary turnoverVoluntary exits only, same denominator.Needs the exit classification from the Movement report. Regretted turnover, where the flag is maintained, is the sharper signal.
Retention rateOf the workers present at period start, the share still present at period end.A cohort measure. It ignores people hired during the period, which turnover does not, so the two are not complements. Report both; never derive one from the other.
Annualized rateThe monthly rate multiplied by twelve, labeled as annualized.A projection, not a result. Small teams explode it: one exit from a team of six annualizes to 200%. Always show the counts next to the rate.
The traps— mismatched populations, tenure resets, and rates without counts.
TrapWhat goes wrong
Population mismatchExits counted for employees while the denominator includes contingent workers, or the reverse. Numerator and denominator must use the same population definition, the one fixed on the headcount report.
Transfers counted as exitsCompany transfers processed as termination-plus-hire inflate turnover unless paired back into transfers. Classified once in the Movement model, inherited here.
Turnover by tenureFirst-year attrition depends on which hire date defines tenure, and rehires reset the continuous service date by default. Pick the date deliberately; the Movement report covers the choice.
Rates without countsA 33% quarterly rate can be two people. Publish exits and average headcount beside every rate, and readers stop arguing with percentages.
The owned model, and the SQL— the numerator from the event fact, the denominator from the snapshot, one query.

Turnover is the first report that needs both facts: exits from fct_worker_event, average headcount from fct_worker_snapshot. Same dimensions, same population filter on both sides:

-- monthly turnover by level-2 org; numerator and denominator share the population filter
WITH exits AS (
  SELECT d.month_end_date, o.level_2 AS organization,
         COUNT(*) AS exits
  FROM fct_worker_event f
  JOIN dim_date d ON f.date_key = d.date_key
  JOIN dim_org  o ON f.org_key  = o.org_key
  WHERE f.event_class = 'Termination'
  GROUP BY 1, 2
),
avg_hc AS (
  SELECT d.month_end_date, o.level_2 AS organization,
         AVG(month_headcount) AS avg_headcount
  FROM (SELECT date_key, org_key, COUNT(DISTINCT worker_key) AS month_headcount
        FROM fct_worker_snapshot
        WHERE worker_type = 'Employee' AND is_primary
        GROUP BY 1, 2) s
  JOIN dim_date d ON s.date_key = d.date_key AND d.is_month_boundary
  JOIN dim_org  o ON s.org_key  = o.org_key
  GROUP BY 1, 2
)
SELECT e.month_end_date, e.organization, e.exits, h.avg_headcount,
       ROUND(100.0  * e.exits / h.avg_headcount, 2) AS monthly_turnover_pct,
       ROUND(1200.0 * e.exits / h.avg_headcount, 1) AS annualized_pct
FROM exits e
JOIN avg_hc h ON e.month_end_date = h.month_end_date
            AND e.organization   = h.organization
ORDER BY 1, 2

Sample output, continuing the series from the headcount and Movement reports, 142 workers at March-end, 145 at April-end, 147 at May-end, with 2 exits in April and 1 in May:

month_end_dateorganizationexitsavg_headcountmonthly_turnover_pctannualized_pct
2026-04-30Revenue Org2143.51.3916.7
2026-05-31Revenue Org1146.00.688.2

April: 2 exits over (142 + 145) / 2 = 143.5, which is 1.39% monthly, 16.7% annualized. Every number traces to the two pages before it, which is the point: one model, three reports, no arguments. Sample values are illustrative, never client data.

Want turnover nobody argues with?
We fix the definitions with your team, build both facts, and publish the ties, reconciled against Workday, and you own every line.
Talk to us
Terms on this page
turnover rate
Exits divided by average headcount for the period.
average headcount
The mean of period-start and period-end headcount, from the snapshot. The fixed denominator.
voluntary turnover
Voluntary exits only, same denominator.
regretted exit
A voluntary exit the company wanted to keep. The sharper attrition signal, where flagged.
retention rate
Of workers present at period start, the share still present at period end. A cohort measure.
cohort
A fixed group followed over time. Retention tracks one; turnover does not.
annualized
A monthly rate multiplied by twelve. A projection, labeled as one.
first-year attrition
Exits within twelve months of the chosen hire date. Sensitive to the date choice.