360 synthetic employees, generated with a fixed seed so the numbers are the same every time you open this file. We deliberately gave some groups fewer projects, training seats and mentors, so the engine has something to find. Nothing here is real.
For each kind of opportunity we fit an ordinary least-squares regression on skill, level and tenure. The unexplained gap for a group is the average difference between what its members received and what the model expects for people with their skills, level and tenure. The thin line on each bar is the 95% range. A gap is flagged only if that range excludes zero and the group is at least the minimum size. "Also separate overlapping groups" fits all groups in one model, so a gap is not credited to the wrong group when, for example, many women are also returning from leave.
The engine searches for a pair with the same level, similar skill and tenure but very different access. "Expected" is the model's prediction for that person with no access penalty. The promotion likelihood is a logistic model of promotion on skill, level, tenure, projects, training and mentoring.
It cannot prove bias. It sees only the factors in the data, and a gap can have causes it cannot see. Small groups are hidden so no individual is singled out. Skill reading here is rule-based; in the Round 2 build it is an LLM on SAP Generative AI Hub.
Each person has working hours and constraints (caregiving window, shift, time zone). The checker counts who the proposed slot clashes with and searches every half-hour start for the two slots that cover the most people. The assumptions are listed on that screen.