HR Analytics · Python

Workforce Planning Analytics — Sunny Valley International

An executive view of 107 employees combining the current state (composition, Saudization, renewals, age and tenure) with an interactive three-year workforce plan: demand, attrition, required hiring and the Saudization path.

  1. 1Employee register107 staff · pseudonymised
  2. 2HR DQ rulesHR-01…08
  3. 3Planning model2027–2029
  4. 4DashboardJSON → Chart.js
Current state

Composition by nationality

Job families by nationality

Teaching, transport, support, administration, finance, HR

Renewal calendar — next 12 months

Contract and iqama expiries · plan renewals and recruitment early

Key findings

Generated by the pipeline
  • Saudization currently stands at 13.1% (14 of 107) — the planning priority for the next three years.
  • Egyptian nationals are 84.1% of the workforce and hold 76 of 81 teaching posts — a concentration that calls for succession and localisation planning.
  • 21 renewals (contracts and iqamas) fall due in the next three months; the peak is Jun 2027 with 77.
  • Under the base scenario (5% annual enrolment growth) headcount reaches 122 by 2029, with 57 hires over three years — 24 of them Saudi.
  • Projected Saudization at end of Year 3 is 26.2% against a 25% target; reaching it requires at least 37% of new teaching and transport hires to be Saudi.
  • All 14 bus drivers and 3 cleaners are expatriates: drivers are a phased-localisation candidate; cleaning is a candidate for outsourcing.

Age profile

Tenure profile

Payroll distribution

Shares only · groups under 3 staff merged
Three-year workforce plan

Simulate demand, attrition, hiring and the Saudization path

Change the assumptions and the plan recalculates instantly for every job family and year: expected demand, leavers (attrition and retirement), required hires, the Saudi share of those hires and the resulting Saudization rate.

Plan assumptions

The target is set by management against current Nitaqat requirements; the model does not assume a specific band.

Projected headcount by nationality

Saudization path vs target

Hiring plan by job family and year

Demand · leavers · hires (of which Saudi) · year-end headcount
HR data governance

Trusted, protected employee data

Before any analysis the register is checked against eight rules, and privacy controls follow the Personal Data Protection Law: pseudonymised IDs, no individual pay published and small groups merged.

RuleDimensionCheckCheckedFailedPassAction
HR-01UniquenessPseudonymised employee ID is unique 1070100.0%Merge duplicate records
HR-02ValidityNationality from reference list 1070100.0%Fix coding
HR-03ValidityJob family from approved catalogue 1070100.0%Fix coding
HR-04CompletenessIqama expiry present for expatriates 93297.8%Complete from Muqeem
HR-05ConsistencyNo iqama date on Saudi records 140100.0%Clear invalid value
HR-06ConsistencyTeacher gender matches section 1070100.0%Review assignment
HR-07ValidityAge 18–65 and hire date not in future 1070100.0%Verify employee file
HR-08ConsistencyHeadcount reconciles to approved structure 30100.0%Reconcile with payroll & Mudad

Pseudonymised IDs

No names, national IDs or iqama numbers in the analytics layer — only EMP-xxx codes.

Pay as shares only

Payroll appears as shares and a relative index; groups under 3 staff are merged to prevent re-identification.

Reconciled to source

Headcount reconciles to the approved structure, payroll and Mudad; iqama dates are completed from Muqeem.

Planning model

hr_pipeline.py
# for each year y and job family f
demand  = D0[f] * (1 + growth * factor[f]) ** y
leavers = H[f] * attrition[nat] + retirements[f][y]
hires   = max(0, demand - (H[f] - leavers))
saudi   = hires * (1 if f in SAUDI_ONLY else saudi_share)
H[f]    = H[f] - leavers + hires
saudization[y] = sum(H_saudi) / sum(H)
  • DemandTeaching and transport grow with enrolment, administration at half the rate; finance, HR and support stay flat.
  • LeaversAn attrition rate per group plus staff reaching age 60 in each year.
  • SaudizationAdministration, finance and HR are fully Saudi today and stay so; the chosen Saudi share applies to teaching and transport hires, and the minimum share that meets the target is solved by binary search.

Data note: headcount and its split by nationality and role reflect the company’s actual structure; individual attributes (age, hire, contract and iqama dates, pay bands) are modelled and anonymised to protect privacy.