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
- 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.
- Model: A Random Forest classifier predicts the probability of churn for each customer.
- Insights: Feature importance shows which factors matter most.
- Business impact: Revenue at risk for each customer is calculated as
$$\text{Revenue at Risk} = P(\text{churn}) \times \text{Monthly Charges} \times 12$$
- Recommendations: Rule-based logic maps each at-risk customer's behavior to the best action.
- 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.txtmatter 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
ModuleNotFoundErrorfor scikit-learn during deployment, which came down to a missing or misplacedrequirements.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
- data-analytics
- machine-learning
- numpy
- pandas
- python
- random-forest
- scikit-learn
- streamlit
- streamlit.io
Log in or sign up for Devpost to join the conversation.