The setup
A high-value acquisition program: each sale is worth $1,000, each mail piece costs $1.50. The file has 100,000 prospect households with income, net worth, a modeled cruise-ship likelihood, and prior direct-mail response frequency. A random 10% holdout receives no mail, so we can measure what mail actually causes — some people buy anyway.
Without a model, you mail all ~90,000 non-holdout households. With a model, you score every household, rank the file into deciles (decile 1 = best 10%), and mail only where the expected incremental sales cover the postage.
What the model finds
A logistic regression trained on the mailed households' outcomes separates the file sharply: the top decile responds at 0.75%, eleven times the bottom decile's 0.07%. The dashed line is breakeven — the response rate at which incremental sales just cover mail cost. Deciles 1–6 clear it; 7–10 lose money on every piece.
The bottom line
Mail six deciles instead of ten. You give up a handful of sales in the bottom four deciles — but those sales cost more in postage than they bring in.
(89,806 → 53,841)
($60,191 → $82,338)
more than doubled
(163 of 195)
Decile detail
| Decile | Pieces | Response | Incremental sales | Net $ | ROI |
|---|
Everything below the double line loses money: the model tells you exactly where to stop. Incremental sales are mailed sales minus the sales the holdout group shows would have happened anyway (mail lifts response ~5x here).
How the simulation works
The data comes from a transparent, reproducible Python simulation: a hidden response propensity drives each household's chance of buying, mail multiplies the odds ~6×, and the model has to rediscover the pattern from the mailed outcomes alone — just like a real campaign. Three short scripts: generate the data, fit and decile the model, compare the economics.