An end-to-end banking analytics project analyzing 45,211 customers to predict term deposit subscription, identify customer segments, and assess credit risk.
| Tool | Purpose |
|---|---|
| Excel / Power Query | Data cleaning & scenario analysis |
| SQL Server (SSMS) | Database design & analytical queries |
| Python 3.10 | EDA, ML prediction, RFM segmentation |
| Power BI | 5-page interactive dashboard |
- Source: UCI Machine Learning Repository
- Dataset: Bank Marketing Dataset
- Size: 45,211 customer records
- Features: 17 columns
- Overall subscription rate: 11.7%
- Students have the highest rate: 28.7%
- March is the best month: 52.0%
- Calls over 10 mins convert at: 48.4%
- Algorithm: Random Forest Classifier
- Accuracy: 84.3%
- AUC Score: 0.916 (Excellent)
- Top predictor: Call Duration (50.4%)
- Champions (3.4%): 31.6% subscription rate
- Average balance: $3,366
- Lost customers (40%): Only $3 avg balance
- Biggest opportunity: Need Attention segment
- Default rate: 1.8% (815 customers)
- High Risk customers: all have a negative balance
- Previous campaign success: 64.7% conversion
- Executive Summary — KPIs, job analysis, risk
- Customer Segmentation — RFM segments
- Churn & Risk Analysis — ML predictions
- Campaign Performance — Monthly trends
- ML Predictions — Feature importance
- Focus on March — 52% subscription rate
- Train agents — longer calls = more subscriptions
- Re-target previous successes — 64.7% rate
- Champion retention — highest value segment
- Re-engage Need Attention — high balance, low engagement
pip install -r requirements.txt- Clone the repository
- Download the UCI Bank Marketing dataset
- Run Power Query cleaning in Excel
- Import data to SQL Server
- Run Python scripts in order (01-04)
- Open Power BI dashboard
python 01_eda.py
python 02_eda_advanced.py
python 03_churn_prediction.py
python 04_rfm_segmentation.py



