All projects
ML / AnalyticsOpen source2026

Customer Churn Prediction

AI dashboard that turns telco data into retention decisions.

Customer Churn Prediction preview
Domain
AI / ML · Customer analytics · Telecom / SaaS retention
Category
ML / Analytics
Stack focus
Python · Flask · XGBoost
Links
GitHub

Overview

This project is a full-stack AI product for predicting customer churn. A Flask API serves a calibrated XGBoost pipeline; a React + Tailwind dashboard walks operators through a multi-step customer profile wizard and returns probability, confidence, and risk verdicts.

Training is production-oriented: OneHot preprocessing, stratified CV hyperparameter search, isotonic probability calibration, and threshold optimization aimed at maximizing recall under a precision floor (business-aligned objective, not vanity accuracy).

Benchmarking across model families selected XGBoost as the winner, with optimized metrics around ~0.66 recall, ~0.60 precision, and ROC-AUC ~0.84 — packaged as deployable model artifacts with a documented report.

Key features

  • Multi-step prediction wizard (demographics → services → contract → financials)
  • Animated churn probability gauge and risk verdict
  • Calibrated probabilities with tunable decision threshold
  • Business objective: maximize recall with precision ≥ 0.60
  • Feature engineering (avg monthly spend, active services count)
  • Model benchmarking leaderboard across families
  • Dark professional UI, fully responsive
  • REST API: POST /predict and GET /health

Real-world usage

Where this kind of system shows up outside a portfolio context.

  • Telecom and subscription businesses ranking who is likely to leave
  • Retention teams prioritizing outreach when churn risk crosses a threshold
  • Data science teams demoing calibrated ML in a product UI, not only notebooks
  • Product managers stress-testing threshold trade-offs (precision vs recall)

Challenges

  • Imbalanced churn labels and choosing metrics that match business cost
  • Calibrating probabilities so operators can trust risk scores
  • Packaging training artifacts for repeatable inference in Flask

What I learned

  • Thresholds should optimize business objectives, not default 0.5
  • Calibration and feature engineering move the needle as much as model choice
  • A clear API + wizard UX makes ML usable for non-ML stakeholders

Related projects

More work in a similar space or stack.

Want something like this built?

I'm open to internships, collaborations, and product work across backend, AI/ML, and full-stack apps.