ChurnRadar
An end to end machine learning system that flags customers likely to cancel before they do, with a per customer explanation for every prediction. Built as a live product, not a notebook.
Outcome
84.5%
Model accuracy

In the product

Context
Most businesses only learn a customer has churned after it happens, when it is already too late to act. ChurnRadar answers a sharper question: which customers are showing early warning signs right now, and why. It is built on a real telecom dataset of 7,043 records.
Approach
- 01Cleaned and preprocessed the telecom dataset: handled missing values, encoded categorical features, and engineered the features that mattered for the model.
- 02Trained an XGBoost classifier to 84.5% accuracy on the held out test set, tuning hyperparameters to balance precision and recall on the minority churn class.
- 03Integrated SHAP so every prediction is explainable, surfacing exactly which features drove each individual customer's churn risk score.
- 04Served the model through a FastAPI REST API that returns a churn probability plus a SHAP breakdown in real time, behind a React and TypeScript dashboard.
How it works
Data
Telecom dataset
7,043 records cleaned, encoded, and feature engineered
Model
XGBoost classifier
Tuned on the minority churn class to 84.5% accuracy
Explainability
SHAP layer
Per customer feature attributions for every score
Serving
FastAPI REST API
Live churn probability plus SHAP breakdown
Interface
React dashboard
At risk list, drill into any individual prediction
Deploy
Vercel + cloud API
Live at churnradar-nu.vercel.app
Results
84.5%
Accuracy on held out test data
Real time
Predictions served over REST
Per customer
SHAP explanation for every score
Reflection
The work that mattered most was not the model, it was the explainability and the deployment. SHAP turns a score into a reason a non technical user can act on, and shipping it live proved the system works outside a notebook. This is the project I lean on most.