Qini Curves and Uplift Evaluation
How to check whether an uplift model — one that ranks people by how much a treatment would help them, not by how likely they are to succeed anyway — is actually any good, using a curve built for that specific job.
Prerequisites: ATE, ATT and Other Treatment Effect Estimands
A regular classifier is graded by comparing its predicted labels to actual labels — an ROC curve, a confusion matrix, straightforward. An uplift model predicts something you can never directly observe for any single unit: how much better a person, account, or trade would do if treated compared to if not, i.e. the individual treatment effect. You can't grade that prediction against ground truth row by row, because you only ever see one of the two outcomes per unit. Evaluating uplift models needs a different tool, and the Qini curve is the standard one.
The construction: rank all units — both treated and untreated — by the model's predicted uplift, from highest to lowest. Walk down that ranking in small increments (say, each decile) and at each point compute the incremental gain so far: the total outcome among treated units up to that point, minus the total outcome among untreated units up to that point, rescaled so the two groups are comparable in size. Plotting that cumulative incremental gain against the fraction of the population targeted gives the Qini curve. A model with no real ability to find who benefits most produces a straight diagonal line — targeting any random 20% of the population captures roughly 20% of the total possible gain. A genuinely useful uplift model bows above that diagonal, because targeting its top-ranked 20% captures much more than 20% of the gain — it found the people the treatment actually helps and put them first. The Qini coefficient is simply the area between the model's curve and the random diagonal, giving a single number to compare models by.
Worked example
A retail-brokerage promotion team tests a fee-discount campaign on a random sample and scores everyone with an uplift model. Sorting by predicted uplift into deciles and computing cumulative incremental trading volume (treated minus control, scaled):
| Decile targeted | Cumulative incremental volume |
|---|---|
| Top 10% | 18% of total achievable |
| Top 20% | 32% |
| Top 50% | 68% |
| Top 100% | 100% |
Random targeting would give roughly 10%, 20%, 50%, 100% at those same points — a straight line. The model's actual numbers (18%, 32%, 68%, 100%) sit well above that line through the middle deciles, meaning the top-ranked customers really do capture a disproportionate share of the promotion's effect, and the campaign could plausibly be sent to the top 50% instead of everyone, keeping most of the incremental volume at a fraction of the discount cost.
What this means in practice
Qini curves are the standard way to decide whether an uplift or heterogeneous-treatment-effect model is worth deploying before committing budget, capital, or risk to targeting only the subgroup it flags — a marketing spend, a trading-limit relaxation, a retention offer. Because the curve is built from group-level comparisons rather than per-unit ground truth, it needs a genuinely randomized or de-confounded treated/control split underneath it; running it on data with selection bias in who got treated will produce a curve that flatters the model without meaning anything.
A Qini curve ranks a population by predicted treatment effect and plots the cumulative incremental gain from targeting the top fraction against the same fraction targeted at random; the area between the model's curve and the random diagonal, the Qini coefficient, summarizes how well the model finds who actually benefits.
Computing a Qini curve on treated and control groups that weren't randomized, or weren't otherwise adjusted for confounding, silently converts it from a measure of uplift-ranking quality into a measure of ordinary predictive accuracy — a model can score well by finding who's simply more active, not who the treatment actually helps.
Related concepts
Practice in interviews
Further reading
- Radcliffe, Using Control Groups to Target on Predicted Lift