DAX definitions
Exact source expressions and direct measure dependencies for the selected page.
Attrition Text
NineBox · Report Views
IF(ISBLANK([Average Headcount]) || [Average Headcount] = 0, BLANK(), FORMAT([Exits (TTM)] + 0, "#,0") & " exits ÷ average headcount " & FORMAT([Average Headcount], "#,0.0") & " (start " & FORMAT([Start Headcount], "#,0") & ", now " & FORMAT([Headcount (As Of)], "#,0") & ") = " & FORMAT([TTM Attrition Rate] + 0, "0.0%") & "; voluntary " & FORMAT([Voluntary Attrition Rate] + 0, "0.0%") & ".")
Direct dependencies: Average Headcount, Exits (TTM), Start Headcount, Headcount (As Of), TTM Attrition Rate, Voluntary Attrition Rate
Average Headcount
PerfEmployee · Flow & Attrition
([Start Headcount] + [Headcount (As Of)]) / 2
Direct dependencies: Start Headcount, Headcount (As Of)
Exit Rate (High Performers)
NineBox · Report Views
CALCULATE([Exit Rate (Window Population)], KEEPFILTERS(PerfEmployee[ratingBand] = "High (4-5)"))
Direct dependencies: Exit Rate (Window Population)
Exit Rate (Low Performers)
NineBox · Report Views
CALCULATE([Exit Rate (Window Population)], KEEPFILTERS(PerfEmployee[ratingBand] = "Low (1-2)"))
Direct dependencies: Exit Rate (Window Population)
Exit Rate (Window Population)
PerfEmployee · Flow & Attrition
DIVIDE([Exits (TTM)], [Population in Window])
Direct dependencies: Exits (TTM), Population in Window
Exit Text
NineBox · Report Views
IF(ISBLANK([Population in Window]), BLANK(), "Trailing-12-month exit rate: " & FORMAT([Exit Rate (High Performers)] + 0, "0.0%") & " among high performers (rated 4–5) vs " & FORMAT([Exit Rate (Low Performers)] + 0, "0.0%") & " among low performers (rated 1–2).")
Direct dependencies: Population in Window, Exit Rate (High Performers), Exit Rate (Low Performers)
Exits (TTM)
PerfEmployee · Flow & Attrition
VAR __AsOf = CALCULATE(MAX(AsOf[asOfDate]), ALL(AsOf)) VAR __Start = EDATE(__AsOf, -12) RETURN CALCULATE(COUNTROWS(PerfEmployee), FILTER(PerfEmployee, NOT ISBLANK(PerfEmployee[terminationDate]) && PerfEmployee[terminationDate] > __Start && PerfEmployee[terminationDate] <= __AsOf))
Direct dependencies: None
Headcount (As Of)
PerfEmployee · Flow & Attrition
CALCULATE(COUNTROWS(PerfEmployee), KEEPFILTERS(PerfEmployee[status] = "Active"))
Direct dependencies: None
Hot Zone Flag
PerfEmployee · Flow & Attrition
IF([Population in Window] >= 20 && [Exit Rate (Window Population)] > [Hot Zone Threshold], "Hot zone", "")
Direct dependencies: Population in Window, Exit Rate (Window Population), Hot Zone Threshold
Hot Zone Threshold
PerfEmployee · Flow & Attrition
0.15
Direct dependencies: None
Net Headcount Change %
PerfEmployee · Flow & Attrition
DIVIDE([Headcount (As Of)], [Start Headcount]) - 1
Direct dependencies: Headcount (As Of), Start Headcount
Population in Window
PerfEmployee · Flow & Attrition
VAR __AsOf = CALCULATE(MAX(AsOf[asOfDate]), ALL(AsOf)) VAR __Start = EDATE(__AsOf, -12) RETURN CALCULATE(COUNTROWS(PerfEmployee), FILTER(PerfEmployee, PerfEmployee[hireDate] <= __AsOf && (ISBLANK(PerfEmployee[terminationDate]) || PerfEmployee[terminationDate] > __Start)))
Direct dependencies: None
Start Headcount
PerfEmployee · Flow & Attrition
VAR __AsOf = CALCULATE(MAX(AsOf[asOfDate]), ALL(AsOf)) VAR __Start = EDATE(__AsOf, -12) RETURN CALCULATE(COUNTROWS(PerfEmployee), FILTER(PerfEmployee, PerfEmployee[hireDate] <= __Start && (ISBLANK(PerfEmployee[terminationDate]) || PerfEmployee[terminationDate] > __Start)))
Direct dependencies: None
TTM Attrition Rate
PerfEmployee · Flow & Attrition
DIVIDE([Exits (TTM)], [Average Headcount])
Direct dependencies: Exits (TTM), Average Headcount
Voluntary Attrition Rate
PerfEmployee · Flow & Attrition
DIVIDE([Voluntary Exits (TTM)], [Average Headcount])
Direct dependencies: Voluntary Exits (TTM), Average Headcount
Voluntary Exit Rate (Window Population)
PerfEmployee · Flow & Attrition
DIVIDE([Voluntary Exits (TTM)], [Population in Window])
Direct dependencies: Voluntary Exits (TTM), Population in Window
Voluntary Exits (TTM)
PerfEmployee · Flow & Attrition
VAR __AsOf = CALCULATE(MAX(AsOf[asOfDate]), ALL(AsOf)) VAR __Start = EDATE(__AsOf, -12) RETURN CALCULATE(COUNTROWS(PerfEmployee), FILTER(PerfEmployee, NOT ISBLANK(PerfEmployee[terminationDate]) && PerfEmployee[terminationDate] > __Start && PerfEmployee[terminationDate] <= __AsOf && PerfEmployee[terminationType] = "Voluntary"))
Direct dependencies: None