Workforce report · 12 months to 30 June 2026

People Analytics – findings

Reporting period
01 July 2025 to 30 June 2026
Population
a synthetic European shared-services organisation across Italy, Poland, Germany and Spain
Generated by
python3 src/run_all.py – every number and chart below is reproduced from the code in this repository
The data is synthetic and generated with a fixed seed (src/generate_data.py). No real employee data is used anywhere in this project. The analytical methods, the metric definitions and the recommendations are the parts meant to be judged.

01Attrition & retention

Headline. Average headcount over the window is 3,360. Voluntary turnover is 13.6% (457 exits); total turnover, including dismissals and end-of-contract, is 16.6%. 110 voluntary leavers – 24% of them – held a performance rating of 4 or 5, so a quarter of the loss sits in the population you least want to lose.

Where it is concentrated. Customer Service runs at 16.9%, +3.3 pp against the company average. It carries 30% of the workforce but produces 36% of all voluntary exits.

Voluntary turnover by department12 months to Jun 2026 - exits as % of average headcount (3,360 employees)turnover %0.0%5.0%10.0%15.0%20.0%16.9%14.5%13.4%12.3%11.2%10.4%company average 13.6%Customer ServiceSalesFinanceTechOperationsHR
Voluntary turnover by department
DepartmentHeadcount shareVoluntary turnovervs average
Customer Service30%16.9%+3.3 pp
Sales13%14.5%+0.9 pp
Finance10%13.4%-0.2 pp
Tech15%12.3%-1.3 pp
Operations24%11.2%-2.4 pp
HR8%10.4%-3.2 pp

When people leave. On person-months at risk, the first year runs at 27.9% annualised against 10.8% for staff past two years – a 2.6x difference. Early attrition is an onboarding, manager-quality and expectation-setting problem; it is rarely solved with money.

Voluntary exit rate by tenure bandAnnualised, on person-months at risk - not on end-of-period headcountannualised exit rate %0.0%10.0%20.0%30.0%29.7%26.1%6.0%10.0%11.6%0-5 m6-11 m1-2 y2-5 y5 y +
Voluntary exit rate by tenure

The curve is not a straight line down. It bottoms out at 6.0% in the 1-2 y band and then climbs again to 11.6% for the longest-serving staff. Those are two different problems wearing the same number: the first year is onboarding and expectation-setting, the later rise is promotion stagnation. A single retention programme aimed at 'attrition' would miss both.

Driver analysis

Logistic regression on the 3,243 employees at risk on 1 Oct 2025, predicting a voluntary exit in the following nine months from factors measured before that date. Odds ratios are read against a colleague who does not have the factor, with everything else in the model held constant – so overlapping effects (people below band are often also people waiting on a promotion) are not counted twice.

What predicts a voluntary exitLogistic regression, n = 3,243 at risk - odds ratios, other factors held constant1234Paid below band (compa-ratio < 0.92)3.53xFixed-term contract2.15xNo promotion in 24+ months1.96xFirst year of tenure1.90xEngagement in bottom quartile1.77xReopened HR case in Q11.44xWorks in Customer Service1.32xFully onsite1.23xodds ratio (1.0 = no effect)
Odds ratios
FactorOdds ratiop-value% of population
Paid below band (compa-ratio < 0.92)3.53x<0.00119%
Fixed-term contract2.15x<0.00118%
No promotion in 24+ months1.96x<0.00128%
First year of tenure1.90x<0.00123%
Engagement in bottom quartile1.77x<0.00126%
Reopened HR case in Q11.44x0.01126%
Works in Customer Service1.32x0.05229%
Fully onsite1.23x0.13931%

Pseudo-R2 (McFadden) = 0.122. The model ranks risk; it does not prove causation, and every factor here is something HR can act on.

Note what the model does to Customer Service. On its own it is the worst performer in the company; inside the regression the department term falls to 1.32x (p = 0.05), which is not distinguishable from the rest of the business. Customer Service does not have a culture problem – it has a composition problem: it holds a disproportionate share of below-band salaries, fixed-term contracts and first-year staff. Fix those three and the department gap closes on its own.

Cross-dataset finding. Employees who had an HR case reopened in the feature window went on to resign at 10.8% over the next nine months, against 7.7% for everyone else; the effect survives the regression at 1.44x (p = 0.011). A reopened case is rarely about the case: it signals an unresolved problem with pay, contract or manager. HR service quality is a retention variable, not only an efficiency one.

Stated reasons for voluntary exit457 leavers - pay and progression together account for 44% of exitsleavers0255075100125120797160563833CompensationCareer progressionWork-life balanceManager / leadershipBetter external offerRelocationPersonal reasons
Exit reasons

What it costs

At 30% of annual base salary per replacement – the mid-point of the 20-40% range commonly cited for non-executive roles, covering recruiting, onboarding and lost productivity – the 457 voluntary exits carry an estimated EUR 5,083,380, of which EUR 1,279,635 sits with the high-performer group.

Illustrative intervention. 710 active employees (21% of the active population) sit below 0.92 compa-ratio. Bringing them to 0.95 of band costs EUR 2,603,850 a year. Applying the estimated odds ratio to the base rate, that population would produce roughly 69 fewer resignations, worth about EUR 730,798 in avoided replacement cost – it recovers 28% of the uplift bill in year one, before the productivity of the people who stay. Read honestly, that says a blanket uplift does not pay for itself: the version worth piloting is the targeted one, taking the below-band population inside Customer Service and the fixed-term cohort, where the odds ratios are highest and the salaries lowest. The estimate comes from an observational model and sizes the prize; it is not a causal guarantee.

02Pay equity under the EU Pay Transparency Directive

Population: 3,443 active employees, 50% women / 50% men. At this size – 250 workers or more – the organisation reports by 7 June 2027 and every year thereafter (Art. 9(2)), on the preceding calendar year. What follows is computed on a snapshot of active employees at 30 June 2026, which is the shape of the exercise rather than a statutory submission. Gaps are expressed with men as the reference, as in the Directive.

Article 9 reporting itemValue
Mean gender pay gap15.4%
Median gender pay gap14.6%
Women in the highest pay quartile38%
Women in the lowest pay quartile60%
Median salary, womenEUR 33,450
Median salary, menEUR 39,150

Scope: these are the Article 9 items this dataset can support, and they cover base pay only. A real submission also has to report the gap in complementary and variable components – bonus, allowances, benefits in kind – together with the proportion of each gender receiving them. Those components are frequently where the widest gaps sit, and they are not modelled here.

Median base salary by country and genderUnadjusted - reflects who sits in which job, not pay for the same jobEUR (annual)0.0k20.0k40.0k60.0kMenWomen49.5k55.2k31.1k38.3k33.0k38.5k26.9k30.7kDEESITPL
Median salary by country and gender

Where the gap actually comes from

The headline number is 15.4%, but a headline gap does not say whether women are underpaid for the same work or under-represented in the jobs that pay more. Adding controls one block at a time separates the two.

What is left of the pay gap as controls are addedOLS on log(base salary); the female coefficient after each block of controlsgender pay gap %0.0%5.0%10.0%15.0%13.9%3.8%2.1%1.6%Art. 10 trigger 5%Unadjusted gap+ job level+ department+ country, tenure
Decomposition
ModelGender pay gapp-value
Unadjusted gap13.9%<0.001
+ job level3.8%<0.001
+ department2.1%0.009
+ country, tenure1.6%<0.001

The regression works on log salary, so it estimates the ratio of geometric means: 13.9% where the arithmetic mean gap is 15.4%. Same story, slightly different lens – the Article 9 figures reported above are the arithmetic ones.

Job level alone absorbs most of it. Fully adjusted – same level, same department, same country, comparable tenure and contract – the residual gap is 1.6% (p < 0.001). In other words 88% of the headline gap is structural: it is where women sit in the hierarchy, not what they are paid for the same job.

The quartile split says the same thing in plain language: women are 60% of the lowest pay quartile and 38% of the highest.

Share of each gender in each pay quartileReporting item required by Article 9(1)(f) of Directive (EU) 2023/970share of headcount0%25%50%75%100%MenWomen60%40%53%47%48%52%38%62%Q1 (lowest)Q2Q3Q4 (highest)
Pay quartiles

Categories that would trip Article 10

A category of workers showing a gap of 5% or more that the employer cannot justify on objective, gender-neutral criteria – and does not remedy within six months – triggers a joint pay assessment with workers' representatives. Taking department x job level as the category definition, with a floor of 30 employees and 8 per gender:

Pay gap by category of workersDepartment x job level, categories of 30+ employees - red sits above the 5% joint-pay-assessment trigger5101520Customer Service - L5+14.3%Sales - L3+9.3%Tech - L5+9.1%HR - L3+7.2%Operations - L4+7.0%Tech - L1+7.0%Sales - L1+6.9%Operations - L1+6.8%Finance - L1+5.9%Customer Service - L2+5.3%HR - L2+4.7%Finance - L4+4.3%gap % (men as reference) - dashed line = 5% trigger
Gap by category
Category (department x level)GapEmployeespStatus
Customer Service – L5+14.3%660.008Above trigger
Sales – L3+9.3%970.059Above trigger (small sample)
Tech – L5+9.1%460.127Above trigger (small sample)
HR – L3+7.2%610.211Above trigger (small sample)
Operations – L4+7.0%1010.133Above trigger (small sample)
Tech – L1+7.0%1410.064Above trigger (small sample)
Sales – L1+6.9%1170.268Above trigger (small sample)
Operations – L1+6.8%2230.053Above trigger (small sample)
Finance – L1+5.9%880.318Above trigger (small sample)
Customer Service – L2+5.3%3010.044Above trigger
HR – L2+4.7%800.289Within tolerance
Finance – L4+4.3%440.683Within tolerance

10 of 27 reportable categories sit at or above the trigger, of which 2 are statistically distinguishable from zero at conventional levels. The rest are small groups where a handful of salaries moves the number – which is exactly why the category definition matters: too granular and the report is noise, too coarse and it hides real gaps. Either way each category needs a documented, gender-neutral justification – measurable differences in seniority, scope or performance – or a correction plan, and both are cheaper to prepare now than after the first report is published.

What this means in practice

  1. The remediation bill is small; the pipeline problem is not. Closing the residual like-for-like gap of 1.6% is a rounding error next to the payroll. Changing who gets promoted – women are 38% of the top quartile – is the work that actually moves the headline number, and it takes two to three promotion cycles.
  2. Fix the categories over the trigger first, in the order shown above. Document the justification where one genuinely exists; where it does not, correct the salary.
  3. Instrument hiring and promotion decisions now. From June 2027 the numbers are published, and the explanation has to be ready at the same time as the number.
  4. Run this quarterly, not annually. The report is the deadline; the management information is the point.

03HR service-desk performance

MetricValueRead
Cases handled28,4708.3 per employee per year
SLA attainment76.4%13.6 pp below the 90% target
Median time to resolve16.4 hmean 28.4 h – a long tail
First-contact resolution56.6%cases closed without a hand-off
Reopen rate18.6%cases the employee had to chase again
CSAT4.19 / 545% response rate

Volume is seasonal, and the desk breaks exactly at the peak

January 2026 carries 3,081 cases against 1,842 in August – +67%. Payroll alone moves from 441 to 1,332 cases a month around the annual pay review and tax documentation.

HR case volume by monthPeak (January 2026) runs +67% above the quietest month - the annual pay review and tax documents land togethercases01,0002,0003,0004,000Leave & AbsencePayrollAll casesJul 25AugSepOctNovDecJan 26FebMarAprMayJun
Case volume by month

Attainment moves the opposite way: the correlation between monthly volume and SLA attainment is r = -0.91. It falls to 53% in January 2026 against 94% in the quietest month. Capacity is flat while demand is not, so the desk misses its promise in the months when the questions matter most – pay, tax, contracts.

SLA attainment by monthCorrelation with monthly volume: r = -0.91 - the desk misses SLA exactly when employees need it most% of cases inside SLA0%20%40%60%80%100%Jul 25AugSepOctNovDecJan 26FebMarAprMayJun
SLA attainment by month

Volume concentration

63% of all cases sit in three categories: Payroll, Leave & Absence, Contract & Documents. That concentration is an opportunity, not a complaint: a small number of question types is what self-service and templated answers are good at.

Where the case volume sitsTop three categories carry 63% of all casescases02,0004,0006,0008,00010,00029%49%63%74%83%91%96%100%cumulative %casesPayrollLeave & AbsenceContract & DocumentsBenefitsSystems & AccessOnboarding & OffboardingPerformance & DevelopmentEmployee Relations
Pareto of case categories
SLA attainment by case categoryCompany-wide attainment is 76% against a 90% target% inside SLA0%20%40%60%80%100%57%68%68%76%78%81%85%89%target 90%Employee RelationsPayrollPerformance & DevelopmentOnboarding & OffboardingContract & DocumentsBenefitsLeave & AbsenceSystems & Access
SLA attainment by category

Employee Relations is the weakest category at 57% attainment. Categories with the tightest SLA targets are missed most often, which usually means the target was set by ambition rather than by measured handling time.

What employees actually react to

Average CSAT by case experience1-5 scale, 12,787 rated cases (45% response rate) - overall average 4.19CSAT0.001.002.003.004.005.004.523.094.563.074.004.22SLA metSLA missedSolved first contactReopenedNew agent (<6 m)Experienced agent
CSAT drivers

Missing the SLA costs 1.43 CSAT points (4.52 against 3.09); having to reopen a case costs 1.49 (4.56 against 3.07). Those two penalties are measured against different baselines and they overlap heavily – a breached case is far more likely to be reopened – so they cannot be added up. What can be said is where the floor is: cases that both missed SLA and were reopened average 2.27, against 4.69 for a clean resolution. And Module 1 showed the same reopened cases predicting exits nine months later.

Cases handled by agents with less than six months' tenure resolve first contact 36% of the time against 60% for experienced agents. Ramp-up is a quality variable and belongs in the capacity plan.

Three things worth doing

  1. Flex capacity to the curve. 6,723 cases missed SLA this year and they cluster in the peak months. Moving even part of the team's leave and training out of January 2026, plus a seasonal contract, addresses the largest single cause of breach without adding permanent headcount.
  2. Deflect the repetitive volume. Moving 25% of Payroll and Leave & Absence cases to guided self-service removes about 3,504 cases a year – roughly 2,348 agent hours, or 1.5 FTE at 40 minutes of handling effort per case and 1,600 productive hours per FTE. That is capacity released for the advisory work, not a headcount cut.
  3. Attack rework before speed. Reopened cases consume about 3,548 hours of pure rework a year and carry the worst satisfaction scores in the dataset. Root-causing the top reopen reasons is cheaper than any staffing change and improves both numbers at once.

Method, assumptions and limits

Definitions. Turnover is exits over the period as a percentage of average headcount, not closing headcount. Voluntary and involuntary exits are reported separately, because mixing them hides the number that management can act on. The tenure curve uses person-months at risk as the denominator, so employees who move between tenure bands during the year are counted where they actually were.

The driver model is a logistic regression fitted on a feature window (Jul-Sep 2025) with the outcome measured in the following nine months. Predictors are therefore always observed before the exit they predict, and every employee in the sample carries the same exposure. Odds ratios describe association, not causation: they rank risk and point at where to look.

The pay-gap model is OLS on log(base salary), so coefficients read as percentage differences. Controls are added in blocks – level, then department, then country, tenure and contract – to separate a like-for-like pay difference from a structural one. Adjusted gaps should never be reported on their own: if women are under-represented at senior levels, the model will explain away exactly the gap the organisation most needs to close.

Stated assumptions. Replacement cost is 30% of annual base salary, the mid-point of the range commonly cited for non-executive roles. Agent handling effort is 40 minutes per case and 1,600 productive hours per FTE per year. Deflection assumes a quarter of the volume in the two largest categories can be self-served. Each of these is a lever: change it in src/hrlib.py or src/analysis_service_desk.py and every dependent number updates.

Limits. Single organisation, twelve months, synthetic data. Pay-gap categories below roughly 50 employees have wide confidence intervals and are marked accordingly. Nothing here is legal advice on Directive (EU) 2023/970; the thresholds are modelled to show what the reporting exercise involves.