Back to all projects
Machine Learning2025Prototype

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

  1. 01

    ROC-AUC of 0.86 on a stratified hold-out test set.

  2. 02

    Churn-class recall rose from 0.61 to 0.78 after threshold tuning.

  3. 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.

Start a conversation