The only project here built on live professional data: a targeting gap I identified inside my own operation, and an end-to-end pipeline built and validated to close it.
The operation screens 2,500–5,000 applications an intake cycle against a hard interview capacity of 300–600 — and that scarce capacity was allocated by a blanket eligibility rule, with nothing ranking one application as riskier than another. I built an end-to-end supervised learning pipeline on 3,957 anonymised CAS-shield applications from the live operation (16 features, four intake cycles, 2022–2025), classifying interview outcomes so the highest-risk cases surface first under the UK’s tightened 2025 compliance rules. My employer enabled the professional side of the work: access to operational data, and the room to build on it.
Compared classifiers, then two-stage Random Forest tuning (RandomizedSearchCV then GridSearchCV), testing class weighting, resampling and feature engineering against significant class imbalance. Test balanced accuracy 0.85 (up 4.7 points on baseline), ROC-AUC 0.89, and 88.9% recall on the minority Failed class. Five-fold CV held at 0.86 ± 0.03. Accommodation, age, deposit and course fee drove over 94% of importance — I chose a model a compliance officer can interrogate and defend over a marginally sharper one they cannot. Awarded 72% on the 60-credit research project, part of an MSc Data Science awarded with Distinction.
View repository ↗- Python
- scikit-learn
- Random Forest
- Live operational data
- Fraud & risk
- anonymised cases
- 3,957
- ROC-AUC
- 0.89
- Failed-class recall
- 88.9%
- balanced accuracy
- 0.85
Problem I identified
I spotted the operational gap — interview capacity allocated by a blanket rule rather than by risk — and designed the modelling approach to close it. The employer enabled the data; they did not set the problem.
Why it never shipped
It is a validated proof of concept, not a production system. Before it could go into the operation, the executive team relaxed interview requirements and the business case changed. The lesson I took: adoption depends on the policy environment and the stakeholder coalition, not on the evaluation metrics.
Distinction overall
72% on the 60-credit dissertation, studied full-time alongside a full-time Grade 8 role, and part of an MSc Data Science awarded with Distinction.
