ChurnPulse
Subscription churn prediction with reasons you can read.
- Role
- Machine learning engineer
- Year
- 2025
- Status
- Prototype
- Tech stack
- Pythonscikit-learnFastAPIPandasDocker
This preview is an interface illustration, not a screenshot of customer data.
Problem
Many churn models return a score with no reasoning, so the team does not know what to do next. Customer data was also messy: missing fields, duplicates, and imbalanced labels.
Approach
I cleaned the data with a reproducible pipeline, compared logistic regression, random forest, and gradient boosting, then chose the model with the best recall/precision trade-off. I added permutation importance and a compact SHAP summary so every prediction has an explanation.
Key features
- Deterministic data cleaning pipeline.
- Three-model comparison with cross-validation.
- Batch and single prediction endpoints.
- Risk-factor summary per customer.
Results
- 01
ROC-AUC of 0.86 on a stratified hold-out test set.
- 02
Churn-class recall rose from 0.61 to 0.78 after threshold tuning.
- 03
The retention team gets a daily priority list, not just a model in a notebook.
Notes
Models that cannot be explained are rarely used. Adding simple reasons made the output trusted, even though accuracy stayed the same.
Facing a similar challenge?
I am happy to discuss technical problems, even before there is a budget or a full specification.