Project: HR Analytics Dashboard
Build an HR analytics dashboard to monitor workforce metrics, attrition, and employee satisfaction.
Project Overview
| Aspect | Details |
|---|---|
| Objective | Track workforce health, identify attrition risks, monitor diversity |
| Audience | HR managers, department heads, CHRO |
| Data Sources | Employee records, attendance, surveys, performance reviews |
| Key Metrics | Headcount, attrition rate, avg tenure, satisfaction score |
| Security | RLS by department — managers see only their team |
Dashboard Pages
Page 1: Workforce Overview • KPI Cards: Total Headcount, Active vs Inactive, Avg Age, Avg Tenure • Headcount trend (line chart by month/year) • Department breakdown (donut chart) • Gender distribution (stacked bar) • Experience level distribution (column chart)
Page 2: Attrition Analysis • KPI: Attrition Rate, Voluntary vs Involuntary • Attrition by Department (bar chart) • Attrition by Tenure Group (0-1yr, 1-3yr, 3-5yr, 5+yr) • Key Influencers visual: What drives attrition? • Monthly attrition trend with moving average
Page 3: Employee Satisfaction • Average satisfaction score (gauge) • Satisfaction by Department (heatmap/matrix) • Satisfaction vs Attrition correlation (scatter plot) • Survey results breakdown (stacked bar) • Decomposition tree: Factors affecting satisfaction
Page 4: Diversity & Inclusion • Gender ratio by department and level • Age group distribution • Tenure diversity • Pay equity analysis (anonymized ranges)
Key DAX Measures
Total Headcount = COUNTROWS(FILTER(Employees, Employees[Status] = "Active"))
Attrition Rate =
DIVIDE(
COUNTROWS(FILTER(Employees, Employees[Status] = "Inactive")),
COUNTROWS(Employees)
)
Avg Tenure (Years) =
AVERAGEX(
FILTER(Employees, Employees[Status] = "Active"),
DATEDIFF(Employees[HireDate], TODAY(), YEAR)
)
Satisfaction Score = AVERAGE(Surveys[Score])
Voluntary Attrition =
DIVIDE(
COUNTROWS(FILTER(Employees, Employees[ExitType] = "Voluntary")),
COUNTROWS(FILTER(Employees, Employees[Status] = "Inactive"))
)
Row-Level Security Design
| Role | Filter | Users |
|---|---|---|
| HR Admin | No filter (sees all) | HR team |
| Department Manager | [Department] = LOOKUPVALUE(...) | Department heads |
| Employee | [EmployeeEmail] = USERPRINCIPALNAME() | Individual employees |
Features to Implement
• ✅ Dynamic RLS by department • ✅ Key Influencers visual for attrition drivers • ✅ Decomposition tree for satisfaction analysis • ✅ Conditional formatting (red for high attrition departments) • ✅ Tooltip page with employee demographics • ✅ Date range slicer for trend analysis • ✅ Sensitivity labels (Confidential — contains employee data)
Skills Applied
Dynamic RLS, AI visuals (Key Influencers, Decomposition Tree), time intelligence, conditional formatting, sensitivity labels, data governance