Project 9 turns IBM's HR attrition data into something a manager can actually act on: an anonymised, score-free target list of the employees most likely to leave — so retention effort lands before the resignation, not after. Eight models were benchmarked on 1,470 employees; the one that ships was chosen for recall, because a retention list that misses the leavers has missed the point.
This is the shape of the real app, running right here on the page — no video, no screenshot. Each row is an anonymised employee (Rec-####, never a name), banded Low → Medium → High → Very High by attrition risk, and sorted so the people to talk to first sit at the top. Flip Overtime on and the target list grows as the model's strongest driver kicks in; drag the cut-off to decide how wide to cast the net. The score itself is never shown — a manager sees who and how urgent, not a number to argue with.
Attrition is expensive and quiet. A good employee doesn't leave on a Tuesday out of nowhere — the signal builds for months in things HR already records: overtime, pay position, how long since the last promotion, tenure, distance from home. The question this project answers is the one a manager actually acts on: who, right now, is most likely to leave — and therefore worth a retention conversation this quarter? Not a verdict, not a number on someone's file — a ranked, privacy-safe shortlist.
Source: IBM's widely used HR Analytics Employee Attrition dataset — 1,470 employees across Research & Development, Sales, and Human Resources, each described by 30-plus attributes (income, role, overtime, tenure, satisfaction, commute) with a Yes/No attrition label. It is imbalanced by nature: only 237 employees (16.1%) left, which is exactly why headline accuracy is a trap — a model that predicts "nobody leaves" scores 84% and is useless.
Every model was tuned by a genuine hyperparameter search inside the reusable AEGIS model-execution framework, then ranked on the full picture — accuracy, precision, recall, F1, ROC-AUC and MCC — not a single flattering metric. The board below is ordered by ROC-AUC:
| Rank | Model | Accuracy | Precision | Recall | F1 | ROC-AUC | MCC |
|---|---|---|---|---|---|---|---|
| 1 | CatBoost | 80.3% | 0.418 | 0.596 | 0.491 | 0.8095 | 0.383 |
| 2 | Extra Trees | 84.4% | 0.511 | 0.511 | 0.511 | 0.8073 | 0.418 |
| 3 | Logistic Regression ★ served | 78.9% | 0.405 | 0.681 | 0.508 | 0.8069 | 0.406 |
| 4 | SVM | 85.0% | 0.571 | 0.255 | 0.353 | 0.8024 | 0.311 |
| 5 | Random Forest | 84.0% | 0.500 | 0.340 | 0.405 | 0.7928 | 0.324 |
| 6 | LightGBM | 85.4% | 0.583 | 0.298 | 0.394 | 0.7893 | 0.345 |
| 7 | XGBoost | 85.0% | 0.565 | 0.277 | 0.371 | 0.7859 | 0.322 |
| 8 | HistGradientBoosting | 85.4% | 0.577 | 0.319 | 0.411 | 0.7694 | 0.354 |
On raw ROC-AUC the boards are a photo finish: CatBoost (0.8095), Extra Trees (0.8073) and Logistic Regression (0.8069) are separated by a rounding error. So the tie-breaker is the job. This is a retention target list — its whole value is catching the people who will actually leave, so the metric that matters is recall. And on recall it isn't close:
This is the site's recurring discipline in one decision: transparency over accuracy theater. The flashiest number (85% accuracy) is left on the table on purpose, because it would mean quietly missing half the at-risk employees. The champion is named for the decision it serves, and the honest board above shows exactly what that choice costs and buys.
A probability is easy to nod at and forget. Binding it to a ranked, colour-banded list of real seats — with the single strongest driver (overtime) under the manager's thumb — turns "16% baseline attrition" into "these five people, this month, starting with the two in red." The point of the project is pre-emptive retention, and the interface is built to make the next conversation obvious.