Skip to content

Dashboard Design — HR Analytics

Dashboard Purpose

A Power BI dashboard for the CHRO and department heads. Two pages: - Page 1 — Attrition Overview: the state of attrition across the org - Page 2 — Driver Analysis: what's causing it, where to focus

Privacy-first design

This dashboard shows aggregate patterns, not individual employee surveillance. Filters should never narrow below a minimum group size (e.g., 5 employees) to avoid identifying individuals. Frame everything around systemic improvement, not flagging people.


Page 1 — Attrition Overview

┌──────────────────────────────────────────────────────────────────┐
│  Attrition Rate   Headcount   Left (12mo)   Est. Cost   Avg Tenure │
│  16.1%            1,470       237           £8.3M       7.0 yrs    │
├──────────────────────────────────────────────────────────────────┤
│                                                                    │
│  Attrition Rate by Department    Attrition Rate by Job Role        │
│  [Bar]                           [Horizontal bar, sorted]          │
│                                                                    │
├────────────────────────────────┬───────────────────────────────────┤
│  Attrition by Tenure Bucket      │  Attrition by Age Group          │
│  [Column]                        │  [Column]                        │
└────────────────────────────────┴───────────────────────────────────┘
   Slicers: [Department] [Job Level] [Gender]

Page 2 — Driver Analysis

┌──────────────────────────────────────────────────────────────────┐
│  Overtime Workers: 30.5% attrition  vs  No Overtime: 10.4%         │
├──────────────────────────────────────────────────────────────────┤
│                                                                    │
│  Attrition by Overtime (the headline)   Attrition by Income Band   │
│  [Clustered column]                     [Column]                   │
│                                                                    │
├────────────────────────────────┬───────────────────────────────────┤
│  Work-Life Balance vs Attrition  │  Years Since Promotion vs Attr.  │
│  [Column]                        │  [Line]                          │
└────────────────────────────────┴───────────────────────────────────┘

Building in Power BI Desktop

Step 1 — Load

  1. Get Data → CSV → hr_clean.csv
  2. Verify Attrition_flag is a whole number, income fields are decimal

Step 2 — Core DAX Measures

Headcount = COUNTROWS(employees)

Attrition Count = SUM(employees[Attrition_flag])

Attrition Rate = DIVIDE([Attrition Count], [Headcount], 0)

Est Attrition Cost =
SUMX(
    FILTER(employees, employees[Attrition_flag] = 1),
    employees[MonthlyIncome] * 12 * 0.75
)

Avg Tenure = AVERAGE(employees[YearsAtCompany])

-- Overtime attrition (for comparison card)
Overtime Attrition Rate =
CALCULATE([Attrition Rate], employees[OverTime] = "Yes")

Step 3 — KPI Cards

Add cards for: Attrition Rate (conditional format red if > 15%), Headcount, Attrition Count, Est. Cost, Avg Tenure.

Step 4 — Department/Role Bars

  • Visual: Clustered bar
  • Axis: Department (or JobRole)
  • Values: Attrition Rate measure
  • Sort descending, add data labels as %

Step 5 — Overtime Comparison (Page 2 headline)

  • Visual: Clustered column
  • Axis: OverTime
  • Values: Attrition Rate
  • This single chart tells the whole story — make it prominent

Step 6 — Privacy Guard

Set up the slicers so that filtering doesn't expose individuals: - Avoid adding EmployeeNumber or name fields to any visual - Consider a measure that blanks out groups with < 5 employees:

Safe Attrition Rate = IF([Headcount] >= 5, [Attrition Rate], BLANK())


Building in Excel (Alternative)

For an Excel-only version: 1. Create a PivotTable: Rows = Department, Values = Count of Attrition (filtered to "Yes") and Count of all 2. Add a calculated field for attrition rate 3. Insert PivotCharts (clustered column) 4. Add Slicers for Department and Job Role 5. Build the overtime comparison as a separate small PivotTable


Design Principles for HR Dashboards

  • Lead with the actionable driver (overtime), not the demographic ones (age) which HR can't change
  • Avoid blame framing — "Sales attrition is high" not "Sales managers are failing"
  • Protect privacy — aggregate only, minimum group sizes
  • Pair every problem with a lever — don't just show high attrition, show the factor HR can pull

← SQL Analysis · Next: Insights and Recommendations →