Uplift Modeling & Heterogeneous Treatment Effects
The boundary: causal-inference-basics owns potential outcomes, confounding, propensity scores and IPW, and ab-testing owns randomization, power and the A/B analysis workflow; this subject assumes both and starts at the question they leave open, "the average effect is positive, so who should get the treatment?". The mathematics of evaluating a policy from logged data (IPS, DR, variance) lives in off-policy-evaluation-and-offline-rl; here we use the results and show the targeting-specific version. advanced-experimentation-interference-and-marketplaces covers when subgroup hunting is safe; this subject is the estimator that does it honestly. Contextual bandits (contextual-bandits-for-personalization) learn a targeting policy online; uplift modeling learns it from a batch of randomized logs.
Interviews ask this as "what is uplift modeling and how is it different from a propensity model?", "how do you evaluate a model whose label you can never observe?", "which meta-learner when only 2 percent of users are treated?", and "your model has great AUC but the campaign lost money, why?". The senior answer names the estimand, states the data requirement, evaluates with Qini on randomized holdout data, and converts the effect into profit with the cost side included.
Everything executable below was run (Python 3.12, NumPy 2.5, SciPy 1.18, scikit-learn 1.9, EconML 0.17, fixed seeds) on a simulated coupon dataset with a known true effect, and is marked "(verified)". Facts recalled from the literature without re-running are marked "(from memory)". The CausalML snippet was not installed or run and is labelled a sketch. Simulated numbers show the mechanics and the relative sizes of effects; they are not benchmarks of real campaigns.