This is a complete Power BI project focused on HR Analytics. If you are a beginner wanting to learn how to create a Power BI project from scratch, this is perfect for you. It is also useful for HR professionals who want to better analyze HR data.
In this project, you will get hands-on experience building a Power BI report step-by-step, learning how to turn raw data into useful insights.
Whether you are new to Power BI or looking to improve your HR analytics skills, this project will guide you through each step to create effective visuals and dashboards.
Report Name
HR Analytics: Retention, Satisfaction, and Turnover Insights Dashboard
Download Dataset
Image Icons:
https://www.flaticon.com/
Dataset Columns
This Power BI project utilizes a dataset with the following columns:
- EmpID: Unique Employee ID
- Age: Employee’s age
- AgeGroup: Age group category
- Attrition: Attrition status (active or left the organization)
- BusinessTravel: Frequency of business travel
- DailyRate: Daily pay rate
- Department: Department where the employee works
- DistanceFromHome: Distance (in miles) from home to workplace
- Education: Education level attained
- EducationField: Field of education
- EmployeeCount: Total employee count
- EmployeeNumber: Employee’s unique identifier
- EnvironmentSatisfaction: Work environment satisfaction level
- Gender: Employee’s gender
- HourlyRate: Hourly pay rate
- JobInvolvement: Level of job involvement
- JobLevel: Job position level
- JobRole: Role within the organization
- JobSatisfaction: Satisfaction level with the job
- MaritalStatus: Marital status
- MonthlyIncome: Monthly income
- SalarySlab: Categorized monthly income levels
- MonthlyRate: Monthly pay rate
- NumCompaniesWorked: Number of previous employers
- Over18: Whether the employee is over 18 years old
- OverTime: Overtime status
- PercentSalaryHike: Salary increase percentage
- PerformanceRating: Performance rating
- RelationshipSatisfaction: Satisfaction with work relationships
- StandardHours: Standard work hours
- StockOptionLevel: Stock option level
- TotalWorkingYears: Total career years
- TrainingTimesLastYear: Training sessions attended in the last year
- WorkLifeBalance: Work-life balance satisfaction
- YearsAtCompany: Years worked at the current company
- YearsInCurrentRole: Years in the current role
- YearsSinceLastPromotion: Years since the last promotion
- YearsWithCurrManager: Years working with the current manager
Dataset source: Kaggle
Theme & Page Colors
Theme: #211322, #2E212F, #F34D08, #F7A861, #55332A, #F2B67A, #FAD9AB, #D64550
Page:
Height: 800 px, Width: 1400 px
Canvas background: #000000, transparency: 0%
Wallpaper: #ffffff, transparency: 0%
Shape Fill Color: #211322
Effects:
Background: off, Visual border: #211322, 7 px rounded
Title Color: #F2C811
Measure
AttritionRate = DIVIDE(COUNTROWS(FILTER(HR_Analytics, HR_Analytics[Attrition] = "Yes")), COUNTROWS(HR_Analytics), 0)
JobSatisfactionRatingCategory = IF( HR_Analytics[JobSatisfaction] = 1, "Poor", IF( HR_Analytics[JobSatisfaction] = 2, "Good", IF( HR_Analytics[JobSatisfaction] = 3, "Very Good", IF( HR_Analytics[JobSatisfaction] = 4, "Excellent", "Unknown" ))))
Last Refresh Date = "Last Refresh Date: " & FORMAT(NOW(), "MM/DD/YYYY HH:MM AM/PM")
RetentionRate = 1 - DIVIDE(COUNTROWS(FILTER(HR_Analytics, HR_Analytics[Attrition] = "Yes")), COUNTROWS(HR_Analytics), 0)
I hope you enjoyed the post. Your valuable feedback, questions, or comments about this post are always welcome.
![]()

Cool! Thanks for the detailed instructions 🙂 Going to try it this week…