Segments retail banking customers using behavioral data and recommends next-best financial offers to improve campaign conversion, cross-sell, and retention.
Banks run marketing campaigns to promote savings accounts, credit cards, and deposits. Generic campaigns result in low conversion and high costs.
Goal:
• Identify meaningful customer segments
• Personalize offers
• Improve marketing ROI
This project simulates a real banking CRM analytics workflow:
- Exploratory Data Analysis
- Feature Engineering (behavioral metrics)
- Customer Segmentation (KMeans clustering)
- Persona Profiling
- Offer Recommendation Engine (Next Best Offer)
- Campaign Effectiveness Evaluation (A/B Testing Simulation)
- Power BI Dashboard
- Interactive Streamlit App
• Python (Pandas, Scikit-learn)
• Clustering (KMeans)
• Power BI
• Streamlit
• GitHub
data/ → raw & processed datasets
notebooks/ → analytics pipeline
src/ → reusable recommendation logic
dashboards/ → Power BI reports
app/ → Streamlit demo
Interactive Power BI dashboard shows:
• Segment distribution
• Persona characteristics
• Offer targeting
• Conversion insights
Interactive tool to input customer behavior and get:
• Segment classification
• Recommended offer
Run locally:
streamlit run app/streamlit_app.py
• Identified 4 actionable customer personas
• Personalized offers by segment
• Improved expected conversion by ~30–40%
• Demonstrated additional uplift using A/B testing simulation
pip install -r requirements.txt
streamlit run app/streamlit_app.py


