Skip to content

Blog

Smarter promotions with causal machine learning

December 16, 2025

|
Kun Hu

Kun Hu

Muxi Xu

Muxi Xu

In August 2025 at the KDD AI Conference in Toronto, Canada, we presented our published research, Causal Machine Learning for Promotions: Industry Evidence and Applications.” In this paper, we describe a two-stage framework for improving promotion efficiency through causal machine learning - first by estimating each customer’s true response to different offers, and then by optimizing which promotions to deliver under practical business constraints. The sections below provide an overview of our paper and the findings that shaped our approach.

Why promotions are tricky

Promotions are one of the most powerful levers for growth in a marketplace like DoorDash. A well-timed coupon can convince a first-time customer to place their very first order, or nudge a busy parent to try grocery delivery along with dinner. But as effective as promotions can be, they also come with a big catch: they’re expensive.

Imagine running a blanket 30% off campaign across millions of users. On paper, it looks great, order volume goes up, customers seem happy, and the campaign can be declared a success. But underneath the surface, there’s a hidden inefficiency. Many of those discounted orders would have happened anyway. In those cases, the promotion didn’t create new demand — it simply gave away margin unnecessarily.

We call this the “non-incremental promotion” problem. Some customers will place an order whether they get a coupon or not. Treating everyone the same not only erodes margins but also misses opportunities to spend smarter. The real challenge isn’t whether promotions work — they do — but how to make them work efficiently by targeting the right customers with the right incentives.

That’s where we realized we needed a better approach: one that could uncover the true incremental impact of promotions and help us design campaigns that drive growth without overspending.

How we frame the problem

The key question to ask is, “How many of those orders happened because of the promotion?”

This forces us to separate correlation from causation — not just whether promotions and orders appear together, but whether the promotion was the true reason behind the order. In other words, we needed to measure the incremental lift created by each promotion.

Framing the problem this way also revealed two very different decisions we needed to make:

  1. Who to target — For fixed-form promotions (like free delivery or 30% off), the main challenge is deciding which customers should get the offer.
  2. How much to offer — For flexible campaigns (like variable discount levels), the challenge shifts to finding the right depth of discount for each customer.

By framing promotions as a causal inference problem, we could start thinking about promotions as precise, personalized interventions. This set the stage for the framework we built to tackle both types of decisions head-on.

Our framework

Once we reframed promotions as a causal problem, the next step was building a framework that could turn that insight into action. We designed a two-part system — one that measures how each customer responds to different promotions, and another that optimizes which offers to deliver under real-world constraints like budgets and eligibility rules.

Step 1: Estimating true response

At the core of our framework is causal machine learning. Instead of simply tracking who used a coupon, we estimate how much the promotion changed that user’s likelihood of ordering — their incremental lift. This means distinguishing between users who would have ordered anyway (the “always buyers”) and those who were actually influenced by the offer (the “persuadables”).

We apply different modeling strategies depending on the type of promotion:

  • Discrete treatments: When the promotion is a fixed offer (like free delivery or 30% off), we use causal learners to decide who should receive it.
  • Continuous treatments: When the promotion allows flexible discounts (like 10%, 20%, or 30%), we treat the discount level as a continuous variable and model how much to offer each user.

This setup lets us capture subtle variations in user sensitivity — some users may need only a small nudge, while others require a stronger incentive.

Step 2: Optimizing promotions under constraints

Modeling user response is just one half of the equation. The other half is making sure our recommendations fit within real-world business limits. Each campaign comes with its own constraints, such as total budget, per-offer limits, or category restrictions. To manage this, we built an optimization layer that decides which promotion to show each user while respecting those limits.

The idea is simple: maximize incremental orders per dollar spent. In practice, the optimizer assigns each customer the promotion that yields the highest expected return, all while staying within the campaign’s overall budget.

Bringing it all together

By combining causal inference with optimization, we built a system that’s not just more efficient, but also more fair and data-driven. It prioritizes customers who are most likely to respond to an offer, ensuring that every promotion contributes to measurable growth.

Case Study 1: Targeting promotions for non‑restaurant deliveries 

The first test of our framework came from a practical challenge: how to encourage DoorDash users who mainly ordered from restaurants to try non‑restaurant categories like grocery, retail, or personal care. These campaigns traditionally relied on blanket coupons like “20% off your first grocery order.” They worked — but at a high cost, often without knowing which users were truly influenced by the offer.

The setup

We ran a series of re‑engagement campaigns offering different types of promotions: dollar‑off coupons, waived delivery fees, and cross‑vertical discounts that applied across grocery and retail. Historically, these offers were launched uniformly — every eligible user saw the same discount. This time, we used our causal framework to personalize targeting.

Instead of treating all users equally, we estimated how each user’s likelihood of ordering would change if they received a specific offer. Using a Double Machine Learning (DML) model, we measured the incremental lift for each user under different promotion types. The model helped us identify who was most likely to respond — the users for whom the promotion would truly make a difference.

Figure 2: Campaign Model Causal Diagram

The results

When we compared the personalized targeting approach to the baseline uniform campaign, the differences were clear. Both strategies drove similar order lifts, but the causal‑targeted campaign was dramatically more cost‑efficient. It achieved nearly the same incremental orders at roughly half the cost per incremental order.

What we learned

This case validated one of our core hypotheses: not all promotions are created equal, and neither are the users who receive them. By targeting the customers who were most responsive, we turned what was once a costly mass campaign into a precision tool. It showed that even without changing the type of offer, smarter targeting alone could deliver major gains in efficiency — and that causal modeling could guide that optimization in a measurable way.

Case Study 2: Optimizing discount for restaurant consumers

We also applied the same framework on a different case: how much discount to offer to restaurant customers. These often allow flexible discount levels — whether a percentage off (e.g., 10%, 20%, 30%), a dollar amount off, or reduced fees. The question wasn’t just who to show the offer to, but how deep the discount should be for each customer.

The setup

We started with an affordability campaign designed to encourage repeat orders from existing restaurant customers. Historically, these programs offered a fixed discount to everyone (or everyone in a given market) — a simple, one-size-fits-all approach. This time, we used our causal framework to personalize the discount amount.

The team treated the discount as a continuous treatment variable, meaning the model could predict how a user’s order probability changed as the discount increased. Using Double Machine Learning, we estimated each customer’s sensitivity to discounts — how much additional incentive they needed to place an order. This allowed us to optimize not just whether to give a discount, but exactly how much to offer to maximize incremental orders under a fixed budget.

The results

When tested in a large-scale A/B experiment, the personalized discounting strategy delivered strong gains. Compared to a uniform discount amount, it achieved a higher order rate lift while also improving cost efficiency — a clear demonstration of efficiency through personalization.

What we learned

This experiment showed the power of modeling promotions as continuous decisions. By capturing the gradient of user response, we could fine-tune incentives rather than rely on flat discounts. In doing so, we not only saved budget but also created a fairer experience — customers received just the right amount of incentive needed to act.

Together, these two case studies demonstrated that causal machine learning can make promotions smarter on both fronts: targeting the right users and tailoring the right discounts.

Conclusion and future directions

Promotions will always be an essential growth tool for marketplaces — but our work shows they don’t have to come at the expense of efficiency. By reframing promotions through the lens of causal inference, we turned a long-standing business challenge into a modeling opportunity. Instead of asking whether a campaign worked, we can now ask for whom it worked and how much it truly mattered.

Across our experiments, causal machine learning delivered tangible impact: higher efficiency, smarter spend, and a better experience for both customers and merchants. Those gains compound over time, enabling us to invest more strategically in customer engagement.

Looking ahead, we’re excited about extending this framework to new frontiers. Sequential decision-making could help adapt promotions over a customer’s lifecycle — for example, deciding not only which offer to show today, but what to show next week based on evolving behavior. Integrating reinforcement learning or contextual bandits could further improve online adaptability, balancing exploration and exploitation in real time.

Ultimately, our goal is to make promotions not just more efficient, but more thoughtful. By combining causal reasoning with scalable machine learning, we’re building a foundation for growth strategies that are both data-driven and customer-centric — ensuring every dollar we spend delivers genuine incremental value.

Stay Informed with Weekly Updates

Subscribe to our Engineering blog to get regular updates on all the coolest projects our team is working on

About the Authors

  • Kun Hu is a Machine Learning Engineer at DoorDash.

  • Muxi Xu is a Machine Learning Engineer at DoorDash.

Related Jobs

Location
United States - Remote
Department
Engineering
Location
San Francisco, CA; Sunnyvale, CA; New York, NY
Department
Engineering
Location
San Francisco, CA; Sunnyvale, CA; New York City, NY
Department
Engineering
Location
United States - Remote
Department
Engineering
Location
United States - Remote
Department
Engineering