← Back to the full chapter
Lesson

2. Turn the target into a decision

Choose offers by incremental value, feasible actions and fair tests.

3 min readApplied extensionUpdated
Read source ↗

Let x hold what is known at decision time, a be an eligible action, and 0 be no offer. Define:

Q(x, a) = E[contribution profit over the window if assigned action a | x]
delta(x, a) = Q(x, a) - Q(x, 0)
chosen action = argmax delta(x, a), among feasible actions including 0
delta(x, 0) = 0

This is a conditional average effect: the expected difference for customers with similar observed context. You see only one of the two outcomes for each person, so you cannot directly label anyone's true uplift. Take the logged reward from the same accounting contract: contribution over the window minus the specified incentive, fulfilment and contact costs, including failed delivery attempts. If net contribution already subtracts a cost, do not subtract it again. Use that net reward for both Q and policy evaluation, no-offer arm included.

A worked example. Suppose an order contributes ₹500 before the incentive. The incentive applies to every completed order in its assigned arm, and sending the offer costs ₹2. Assume no returns or other effects. Suppose randomised data and a validated model gave these made-up purchase probabilities for one customer context:

Assigned actionPurchase probabilityContribution per purchaseExpected profitIncrement against no offer
No offer0.20₹5000.20 × 500 = ₹100₹0
₹50 benefit0.25₹4500.25 × 450 − 2 = ₹110.50₹10.50
₹100 benefit0.30₹4000.30 × 400 − 2 = ₹118₹18
₹200 benefit0.35₹3000.35 × 300 − 2 = ₹103₹3

The largest benefit wins on conversion but loses to the ₹100 benefit on incremental profit. If the ₹100 benefit were infeasible, the policy would pick from the remaining feasible actions. If every active action lost money against no offer, choose no offer. In a real campaign, discounts may apply only on redemption, baskets can change, and returns add later costs. Measure those parts, or model net profit directly, instead of forcing this simple formula onto the business.

Try it yourself. Sending the offer now costs ₹10 instead of ₹2, with the same purchase probabilities. Recompute the increments. Which action does the policy choose, and which active action now loses money against no offer?

Hint and explained answer

Subtract ₹10 instead of ₹2. The ₹50 benefit gives 0.25 × 450 − 10 = ₹102.50, an increment of ₹2.50. The ₹100 benefit gives 0.30 × 400 − 10 = ₹110, an increment of ₹10. The ₹200 benefit gives 0.35 × 300 − 10 = ₹95, an increment of −₹5. The ₹100 benefit still wins. The ₹200 benefit has the highest purchase probability but is now worse than no offer. If the ₹100 benefit were infeasible, the ₹50 benefit's ₹2.50 edge would need an uncertainty check before it could replace no offer.

A discount paid to customers who would have bought anyway is a real cost. Also check whether the offer only pulls a future purchase into the window, moves revenue from a higher-margin product, or pushes out an existing offer. That is how a short-term redemption metric can produce an expensive policy.

Something unclear or out of date? Suggest a correction ↗

Find your next idea

Loading local search…

Search is built from this edition. No account needed.