Methodology
How to read this project
Quick notes on the models and metrics so the charts make sense without opening the notebooks again.
T-learner vs CausalForestDML
T-learner
Train one outcome model on treated customers and one on control, then score everyone with CATE(x) = mu1(x) - mu0(x). Simple baseline. The two models can disagree in thin regions of the data.
CausalForestDML
Double ML setup with a forest for heterogeneous effects. It first fits nuisance models for the outcome and treatment, then estimates CATE on the residuals. I used this in Phase 2 because the true effects differ a lot by segment.
Qini vs PEHE
Qini / uplift-at-k
Rank people by predicted CATE and check whether treated outcomes beat control near the top of the list. You only need the RCT labels for this, so it is closer to what you can measure in a real campaign.
PEHE
Mean squared error between predicted CATE and true CATE. You only get this with simulated ground truth (Phase 2). Useful when you care about recovering effect sizes, not just ranking.
Why AUC / accuracy are wrong here
Reproducibility and scope
The modeling pipeline runs in Python and exports saved results to JSON for this dashboard. Phase 1 uses a real randomized marketing dataset, while Phase 2 uses synthetic credit data so the true treatment effects are known. This is a portfolio analysis, not a production lending decision system.