CRM · Customer Data Analytics · SQL · Python · Case Analysis
This course case analysis uses Starbucks Rewards simulation data. It builds a two-layer precision-targeting framework: an SQL attribution pipeline followed by RFM segmentation and demographic analysis, estimating a 15–20% conversion-per-dollar improvement over mass targeting.
Raw Starbucks transaction logs contain a fundamental statistical trap: customers who would have purchased anyway ("organic buyers") are incorrectly counted as offer-driven conversions under simple aggregation. Traditional metrics overestimated campaign performance by 15–18%.
Attribution logic — before vs. after
c.time >= v.time
SQL-based data pipeline
valid_hours
c.time >= v.time to exclude organic completions
net_revenue_contribution = offer_spend − actual_reward
effective_response_rate,
avg_spend_per_offer,
net_revenue_contribution
With clean attribution data, I applied RFM scoring to segment 27 customer clusters (3 tiers × Recency × Frequency × Monetary), then overlaid demographic profiling to identify which segments respond to which offer types.
Key RFM segments
Demographic comparison of VVIP (333) vs. Inactive (111) segments revealed that M_50s and F_50s dominate the best segment (2,899 and 2,757 effective completions respectively). Offer effectiveness also split sharply by gender and type.
Effective response rate by offer & gender
| Segment | Target Group | Action | Expected Impact |
|---|---|---|---|
| VVIP (333) | 4060F | Prioritize Discount offers | Maximize ROI from highest-transaction group |
| Potential (233) | M_50s, F_50s | Reactivation via Discount | Recapture lapsed high-value customers |
| Light (111) | M_10s–20s | Stop BOGO; switch to Experience | Eliminate lowest ROI: 20.1% (10M BOGO) |
| Cherry Pickers | High completion, low spend | Increase offer difficulty | Ensure positive net revenue contribution |