Skip to content
Synthetic educational data

Workforce & Employee Attrition Dataset

Explore a fictional workforce through employee records, organizational assignments, recorded exits, and performance reviews. Practice descriptive people analytics without using real employee data.

Good for: Excel PivotTables, workforce reporting, attrition definitions, tenure analysis, joins, and data-quality checks.

Download this dataset

Choose the version that fits your project. You do not need to download every file.

Preview the data

Explore a sample before downloading. Select a table to see its columns, row count, relationships, and what each row represents.

Departments

One row represents: One row per department.

Rows in this table
12
Connects to
Employment records

This preview shows a sample, not the full download.

Sample rows from departments. This preview is not the full download.
department_iddepartment_namebusiness_unitregion
D001EngineeringProduct & TechnologyNA
D002Data & AnalyticsProduct & TechnologyNA
D003ProductProduct & TechnologyEMEA
D004DesignProduct & TechnologyEMEA
D005SalesRevenueNA

Departments data dictionary

Check identifiers, dates, numeric fields, and missing values before writing a query or building a chart.

ColumnWhat it meansData typeMissing valuesKey or requirement
department_idStable department key.text0Required
department_nameDepartment display name.text0Required
business_unitParent business unit.text0Required
regionPrimary operating region.text0Required
View the full data dictionary

departments

One row represents: One row per department.

ColumnWhat it meansData typeMissing valuesKey or requirement
department_idStable department key.text0Required
department_nameDepartment display name.text0Required
business_unitParent business unit.text0Required
regionPrimary operating region.text0Required

job_roles

One row represents: One row per job role.

ColumnWhat it meansData typeMissing valuesKey or requirement
role_idStable role key.text0Required
role_titleRole display title.text0Required
job_familyFunctional role family.text0Required
job_levelAssociate, specialist, senior, or lead.text0Required
salary_band_minSynthetic annual salary-band minimum in USD.decimal0Required
salary_band_maxSynthetic annual salary-band maximum in USD.decimal0Required

employees

One row represents: One row per employee.

ColumnWhat it meansData typeMissing valuesKey or requirement
employee_idStable synthetic employee key.text0Required
hire_dateEmployment start date.date0Required
age_bandSynthetic age range, not an exact age.text0Required
education_levelHighest modeled education category.text0Required
commute_bandModeled one-way commute-distance range.text0Required

employment_records

One row represents: One row per employee employment period; one period per employee in v1.1.0.

ColumnWhat it meansData typeMissing valuesKey or requirement
employment_record_idStable employment-period key.text0Required
employee_idEmployee in this employment period.text0Required
department_idAssigned department.text0Required
role_idAssigned job role.text0Required
started_atEmployment-period start date.date0Required
ended_atRecorded end date for terminated employees.date4,975Nullable
employment_statusactive or terminated.text0Required
termination_typevoluntary, involuntary, or retirement for recorded exits.text4,975Nullable
base_salarySynthetic annual base salary in USD.decimal0Required

performance_reviews

One row represents: One row per employee review event.

ColumnWhat it meansData typeMissing valuesKey or requirement
review_idStable review-event key.text0Required
employee_idReviewed employee.text0Required
review_dateDate of the review event.date0Required
review_scoreSynthetic score from 1 through 5.integer0Required
review_outcomeneeds_support, meets, exceeds, or outstanding.text0Required

About the data

This synthetic dataset models employees, departments, job roles, one employment period per employee, and point-in-time performance reviews. It contains no names, exact ages, addresses, or other direct personal identifiers.

Start by choosing a reporting date and defining the active population. Keep employee, employment-period, and review-event grains separate: joining several reviews to one employment record can duplicate headcount or salary.

What one row represents
Varies by source table
Data covers
Start: 2023-01-01 · End: 2025-12-31
Dataset version
1.1.0
Release published
2026-09-06

How the tables connect

Generated from the same relationship metadata as the table documentation.

Employment recordsemployee_idEmployeesemployee_id

many-to-one

Employment recordsdepartment_idDepartmentsdepartment_id

many-to-one

Employment recordsrole_idJob rolesrole_id

many-to-one

Performance reviewsemployee_idEmployeesemployee_id

many-to-one

Start your first analysis

Open a download, inspect the table, and answer one question. Each example identifies the file and dataset version it uses.

Start with Excel

Use the flat Employee Snapshot sheet to build a PivotTable without joining source tables first.

Download Excel
File used
workforce-employee-attrition-v1.1.0-analysis.xlsx
Dataset version
1.1.0
File size
540.2 KB
  1. 01Open "workforce-employee-attrition-v1.1.0-analysis.xlsx" and select the "Employee Snapshot" sheet.
  2. 02Confirm that hire_date, started_at, and ended_at are dates; base_salary, tenure_days, review_count, and latest_review_score should be numeric where populated.
  3. 03Insert a PivotTable. Place department_name in Rows, employment_status in Columns, and employee_id in Values as a count.
  4. 04Add termination_type as a filter. Do not interpret department differences as evidence that the department caused an exit.

What you can build

Finished output from this release

Active headcount and recorded terminations by department

This checked query counts one employment record per employee and groups by department. It is a descriptive count across the full version 1.1.0 coverage, not an attrition rate and not evidence that a department caused an exit.

department_namebusiness_unitactive_employeesterminated_employees
Customer SuccessRevenue40694
SalesRevenue40694
EngineeringProduct & Technology41090
FinanceCorporate41288
DesignProduct & Technology41387
Data & AnalyticsProduct & Technology41486
View the checked SQL
SELECT d.department_name,
       d.business_unit,
       SUM(CASE WHEN er.employment_status = 'active' THEN 1 ELSE 0 END) AS active_employees,
       SUM(CASE WHEN er.employment_status = 'terminated' THEN 1 ELSE 0 END) AS terminated_employees
FROM employment_records er
JOIN departments d USING (department_id)
GROUP BY d.department_name, d.business_unit
ORDER BY terminated_employees DESC, active_employees DESC, d.department_name;

Headcount and exits report

Compare active employees and recorded terminations by department using an explicit reporting date and population.

Tenure at exit analysis

Measure tenure for recorded exits and compare distributions without treating group differences as causal effects.

Performance review coverage

Identify which employees have zero, one, or several reviews and explain why review-event counts differ from headcount.

Workforce reporting model

Create documented employee, employment-period, role, department, and review models with tests at each grain.

Questions about this dataset

Is this real employee data?

No. The records describe a fictional workforce created for education and testing. They contain no names, exact ages, addresses, or other direct personal identifiers.

Can I use this dataset to predict attrition?

It can support a technical modeling exercise, but its synthetic patterns are not evidence about real employees and should not be used to make employment decisions. A responsible project should discuss fairness, leakage, validation limits, and why a fictional benchmark cannot establish real-world performance.

Does the dataset contain promotions or rehires?

No. Version 1.1.0 contains one employment period and one current assignment per employee. It does not preserve promotion, transfer, rehire, or manager history.

Source, license, and versions

This dataset represents a fictional business. Its records and patterns were generated for education and testing. Use it to practice analytical methods, not to estimate real-world revenue, churn, conversion rates, or market conditions.

Before you interpret the results

  • This is synthetic educational data generated to model a fictional business. It does not represent a real company or establish workforce benchmarks.
  • Associations between employee attributes, reviews, and recorded exits are descriptive and do not establish causation.
  • Version 1.1.0 contains one employment period per employee and does not model rehires, promotions, or assignment history.
  • No names, exact ages, addresses, or other direct personal identifiers are included.

Source, license, and version

Use the version number when sharing your work so others can reproduce it with the same files. Coverage dates describe the records; the release date describes when this package was published.

Maintainer
Analytics Engineering
License
CC BY 4.0
Version
1.1.0
Published
2026-09-06T04:55:00.278Z

Cite this dataset

Analytics Engineering. (2026). Workforce & Employee Attrition Dataset (Version 1.1.0) [Data set]. https://www.analyticsengineering.com/datasets/workforce-employee-attrition.

Found an issue?

Tell us which dataset, version, and file you used, and what you expected to happen. A small example helps us investigate.

Report a dataset issue →