Inspiration

Businesses usually find out a customer is unhappy only after they cancel. Retention teams also don't know whom to contact first, so they waste time on low-value customers while high-value ones quietly leave. We wanted a tool that turns customer data into clear decisions: who is at risk, why, and what to do about it.

What it does

ChurnSense AI predicts which customers are likely to churn and turns that into action:

  • Predicts a churn probability for every customer
  • Shows the top reasons customers leave (churn drivers)
  • Estimates the revenue at risk for each customer
  • Recommends a specific retention action, such as a payment plan, a priority support call, a re-engagement email, or a yearly-plan discount
  • Provides a dashboard with filters and a downloadable CSV action list, so the team can start working right away

How we built it

  1. Data: We generated realistic subscription-customer data (tenure, monthly charges, support tickets, late payments, logins, contract type). The app can also take an uploaded CSV.
  2. Model: A Random Forest classifier predicts the probability of churn for each customer.
  3. Insights: Feature importance shows which factors matter most.
  4. Business impact: Revenue at risk for each customer is calculated as

$$\text{Revenue at Risk} = P(\text{churn}) \times \text{Monthly Charges} \times 12$$

  1. Recommendations: Rule-based logic maps each at-risk customer's behavior to the best action.
  2. Dashboard: Streamlit shows the metrics, charts, and a ranked list of customers to save first.

What we learned

  • A prediction alone isn't useful unless it leads to an action, so ranking by revenue at risk matters more than ranking by probability alone.
  • Feature importance makes the model easier to explain to non-technical teams.
  • Simple, explainable rules can work well alongside machine learning.
  • Deployment details such as requirements.txt matter as much as the model.

Challenges

  • Building a complete project (data, model, insights, and dashboard) within a few hours.
  • Choosing sample data realistic enough to show meaningful churn patterns.
  • Fixing a ModuleNotFoundError for scikit-learn during deployment, which came down to a missing or misplaced requirements.txt.
  • Turning model output into advice that a business user can understand and act on.

Results

On our sample data the model reached about 70% accuracy and an AUC of 0.74. Since the data is synthetic, these numbers show the pipeline works rather than real-world performance.

What's next

  • Train on real company data
  • Add SHAP explanations for each customer
  • Automate retention emails
  • Use an LLM to write personalized retention messages

Built With

Share this project:

Updates

Submission history