Traditional ad targeting wastes spend on people who'd buy anyway. This causal ML system estimates individual treatment effects — isolating the users whose behavior actually changes when shown an ad — lifting ROAS from 2.44x → 9.60x while cutting spend by 75%.
Standard conversion-rate targeting is blind to causality. It identifies users likely to convert — but that includes people who would have bought anyway, and misses people who only buy when prompted. The result is wasted budget on Sure Things and Do-Not-Disturbs, while Persuadables — the users where ads actually change behavior — go untargeted.
"At 0.294% conversion and a 339:1 class imbalance, finding the signal required IPW bias correction, propensity clipping, and scale_pos_weight=339 just to train a model that sees the minority class."
Training details — model_card.jsonThe X-Learner with IPW bias correction is the core innovation. Unlike S/T-Learners that treat uplift as a simple difference, the X-Learner cross-estimates treatment effects — using the control model to impute counterfactual outcomes for treated users and vice versa. This dramatically improves ITE estimation on imbalanced RCT data.
The model segments every user into one of four behavioral archetypes based on their estimated treatment effect τ. Each archetype demands a different action — and conflating them is exactly the mistake traditional targeting makes.
Not every decision should be automated. The system flags edge cases for human review — borderline scores, anomalously high uplift predictions, and users at risk of being misclassified as Do-Not-Disturb. Only clearly confident decisions are auto-approved.
| Segment | Disparate Impact | Statistical Parity | 80% Rule | Status |
|---|---|---|---|---|
| Behavioral Signal 1 | 0.237 | 0.308 | FAIL | ⚠️ Bias detected |
| Behavioral Signal 2 | 1.000 | 0.000 | PASS | ✅ Fair |
| Behavioral Signal 3 | 0.392 | 0.192 | FAIL | ⚠️ Bias detected |
| Engagement Level | 0.682 | 0.095 | FAIL | ⚠️ Bias detected |