Match a job Paths Subjects Questions Quizzes Pricing

Case Study: Marketing Uplift Targeting

Who gets the coupon — from randomized logs to a budgeted targeting policy proven in an A/B

Overview Read

Case Study: Marketing Uplift Targeting

"We send a coupon to 15 percent of our customers each month. How would you decide who gets it?" is a staple of marketing-analytics, e-commerce and fintech data science interviews, because the naive answer (target the customers most likely to buy) is wrong in a way that costs real money, and the right answer touches causal inference, modeling, evaluation, experimentation and operations in one story.

This subject is a model answer. It applies theory taught elsewhere instead of re-teaching it: the estimators, Qini curves and the four quadrants come from Uplift Modeling & Heterogeneous Treatment Effects; the three-arm test, holdouts and triggered analysis from Advanced Experimentation: Interference, Marketplaces & Platforms; metric choice and unit economics from Product Analytics, Metrics & LTV; and the IPS/DR policy-value estimators from Off-Policy Evaluation & Offline RL. Notation matches the uplift lesson: \tau(x)=\mu_1(x)-\mu_0(x) is the conditional effect, with persuadables, sure things, lost causes and sleeping dogs as the four segments.

Every number below is from a synthetic simulation (200,000 users, fixed seeds, Python with NumPy, LightGBM and EconML), not from a real company. Because the simulator knows each user's latent response type, it can report the true effect that real data hides; each "true" value below is available only for that reason. Treat the numbers as showing mechanics and relative sizes, not as benchmarks.


Step 1 — Clarify the Problem and Pick the Objective

Questions to ask. What is the treatment (a coupon with a fixed discount), what is the outcome and window (a 7-day purchase), who is eligible (active customers with marketing consent), what is the budget (contacts per cycle, or euros of promo spend), and do we have a past randomized campaign or only hand-targeted history? That last answer decides everything: randomized logs make the project a modeling task, hand-targeted logs make it a causal-identification task first.

Assumptions to state.

Quantity Assumption
Eligible base per send 200,000 customers
Margin per order before discount EUR 30
Discount paid on each redeemed order EUR 6 (a treated buyer redeems)
Contact cost EUR 0.05 per send
Budget 15 percent of the base (30,000 contacts) per send
Past data one randomized campaign, 5 percent treated, 95 percent control

Objective. Not conversions, and not even incremental conversions on their own: the quantity to maximize is incremental profit, equivalently incremental conversions per euro of promo spend, subject to the budget and guardrails. The per-user value of contacting someone is

v(x) = (m-c)\,\tau(x) - c\,\mu_0(x) - s, \qquad m=30,\; c=6,\; s=0.05

The coupon creates margin m-c on each incremental buyer but is also paid to every baseline buyer who redeems it, which is why a customer with \tau\approx0 and a high \mu_0 is a pure cost. Guardrails: unsubscribe rate per contact (a permanent loss of the channel), margin per order (discount depth drift), complaints, and contact-frequency caps. Longer-term, check that coupon-acquired buyers do not train customers to wait for discounts (the LTV framing from Product Analytics, Metrics & LTV); the 7-day window cannot see that, so it belongs in the holdout analysis later.

In the simulation, treating everyone has a true value of -EUR 0.396 per user (about -EUR 79,000 on 200,000 users) even though the average effect is positive (+3.41 points). A positive ATE is not a reason to send blanket coupons.


Pro content

Sign up free, then start a 14-day Pro trial — no card needed.

We use cookies for product analytics to improve OmniAtlas. See our Privacy Policy.