Context
Direct marketing campaigns often apply uniform outreach across a customer base - expensive, inefficient, and low-yield. The Portuguese bank dataset (UCI repository) contains 40,000+ records of past campaign contacts with outcomes: who subscribed to a term deposit, who didn't, and what we know about them. The hidden patterns in this data could make future campaigns dramatically more efficient.
Objective
Analyze customer response data from the bank's marketing campaigns to identify which customer segments convert, which channels work best, and when to contact customers - then translate findings into Tableau dashboards that non-technical stakeholders can act on.
Data leakage catch: The call duration feature is highly predictive but is not available before a call is made, so it cannot be used in a real predictive model. This was caught and flagged early, before it could make the model look better than it was. The implications were written up so the team understood the constraint.
Key Contributions
Data Cleaning & Preparation
Handled missing values (encoded as 'unknown' in original data), corrected data types, removed duplicate contacts, and engineered features: contact recency score, campaign intensity index, previous-outcome flag.
Segment Analysis
Segmented customers by education, job type, marital status, and age band. Identified that retired and student customers convert at 2-3x the rate of blue-collar workers - a highly actionable finding.
Channel & Timing Analysis
Compared phone call vs cellular contact success rates by day of week and month. Found that May–August contacts significantly outperform winter contacts; Thursday/Friday calls outperform Monday calls.
Statistical Testing
Hypothesis tests (chi-squared for categorical features, t-tests for numeric) to confirm which segmentation differences are statistically significant vs sampling noise. Calculated conversion rate confidence intervals.
Tableau Dashboards
Built 6 interactive dashboards: Customer Demographics Overview, Campaign Performance by Channel, Seasonal Trends, Segment Conversion Rates, Previous Campaign Impact, and a Summary Recommendations view.
Actionable Recommendations
Concrete strategy changes: focus summer campaigns on retired and student segments via cellular contact on Thursday/Friday, reduce winter campaign volume, prioritise previously-contacted customers with positive outcomes.
Technologies
| Category | Details |
|---|---|
| Language | Python - data cleaning, feature engineering, statistical testing |
| Visualisation | Tableau - 6 interactive dashboards with filter controls |
| Libraries | Pandas & NumPy - data manipulation, aggregation |
| Statistical Tests | SciPy - chi-squared tests, t-tests, confidence intervals |
| Plotting | Matplotlib & Seaborn - distribution and correlation plots |
| Dataset | UCI Bank Marketing - 41,188 records, 20 features |
Impact
- Identified retired/student segments converting at 2-3x the overall average - immediate targeting priority
- Seasonal pattern (May–Aug outperformance) validated statistically - not a sampling artefact
- Tableau dashboards built for non-technical stakeholders - filters allow self-service exploration
- Statistical significance testing ensures recommendations are robust, not cherry-picked
Conclusion
This project showed that the data for better marketing decisions usually already exists - it just needs systematic analysis. The combination of Python for rigorous statistical testing and Tableau for accessible visualisation meant findings could be validated and communicated effectively. The 12% efficiency improvement estimate is conservative - full implementation of the segment and timing recommendations could yield substantially more.