
If you're reading this, you're probably already tired of the old approach.
You pick a discount, probably the same one as last time. The campaign goes out to your whole list, redemptions come in, and you call it a success. Same story next quarter.
That works fine until someone asks whether those customers would have bought anyway.
Promotion optimization is about asking that question and building a system around the answer: who gets this offer, at what moment, with what reward, and how do you actually know it worked.
Here's what's happening in most promo programs, even well-run ones.
A chunk of everyone who redeems your offer was going to buy anyway. They weren't on the fence. They just grabbed the deal because you put it in front of them. And because you didn't measure it, you'll do the same thing next campaign.
There's a learning problem too. A promo with no control group and no hypothesis produces one data point: people used the code. No signal on who actually changed their behavior. No way to know what to do differently next time.
The slowest damage is what it does to your best customers. Run promos on a predictable schedule and the savvy ones figure it out fast. They stop paying full price and start waiting. You've trained them to do it, and every quarter that passes makes that habit harder to undo.

When a promotion underperforms, the first instinct is almost always to make the offer bigger. Bigger discount, longer window, lower threshold. This usually makes things worse. Why? Because the offer is rarely the problem, the targeting is.
Of everyone who redeemed your last campaign, some percentage would have bought without any incentive at all. Those customers cost you twice: once to acquire, once to discount. Without a control group, you have no idea how many of them there were. In a typical unsegmented campaign, that overlap runs anywhere from 20% to 60%, and the campaign report looks the same either way.
The signals that actually predict whether someone will respond to an incentive, rather than just take it, are more specific: how recently they last purchased relative to their normal cadence, whether this offer category matches their purchase history, whether they've responded to incentives before or just collected them, which channels they actually engage on.
If that sounds like a lot, the minimum viable version is just running a holdout group. Hold back 10 to 20% of your eligible audience, don't send them the offer, and compare their conversion rate to the group that got it. That gap (the actual lift your incentive drove) tells you more about your program than a year of redemption counts.
Imagine your best customer finishes a purchase, and 2 hours later gets an email with 20% off the same category. They didn't need it to buy, they just bought. But now they know: if you wait, the discount comes. You just taught one of your best customers to hold off next time. Plus, they feel tricked for paying the full price now – see how a single discount in the wrong moment can destroy a relationship?
Most promotional timing is calendar-driven because calendars are easy to manage. Teams set these schedules once and leave them running. They're proxies for intent, not intent itself, and that's why they consistently underperform behavioral triggers.
Tourlane's referral program was built around this insight. Travel recommendations carry real weight because they come from someone who genuinely enjoyed the experience, at a moment when that feeling is fresh. Tourlane triggered referral asks at peak enthusiasm moments in the journey rather than on a fixed post-signup schedule. The result: 80% conversion rate for referred users and 333% of their referral target.
.webp)
Most programs give everyone the same reward because it's simple. One offer, one email, one campaign. Clean, but it's also wrong for a big chunk of your audience.
A first-time customer is still deciding whether to trust you. The barrier is real and a discount lowers it, that makes sense. But a customer who's bought from you before isn't dealing with a trust barrier anymore.
When the reward lands also matters. Immediate rewards attract customers who are mostly there for the deal. Delayed rewards (credit that unlocks after a second purchase, points that build over time) attract people who actually like the product. If your program keeps pulling in one-time buyers who never come back, look at the reward structure before you blame the targeting.
The experiment: run your next campaign with a split between a standard discount and one alternative format (store credit, a gift, early access, something non-monetary). Keep everything else the same. Then measure not just redemption but what those customers do in the next 90 days: repurchase rate, AOV, churn. The format that drives better downstream behavior is the right one for that segment, regardless of which had higher initial redemption.
CarParts.com restructured their promotion strategy using this kind of thinking and cut promotional margin loss by 40% while increasing engagement by 35%.
Most teams see guardrails as something finance wants and marketing tolerates. Limits on how many times a code can be used, budget caps, expiry dates. They feel like brakes, but they're actually what lets you press the accelerator.
Without per-customer redemption limits, one person on a deal-hunting forum can empty a campaign budget in an afternoon. Without a budget cap, a campaign that unexpectedly goes viral becomes a CFO conversation you don't want to have. Without code expiry, the offer you ran two years ago is still technically live for anyone who finds it. These aren't edge cases. They happen regularly to programs that aren't properly set up, and they're exactly why finance is reluctant to give marketing more room to experiment.
TIER Mobility cut coupon fraud by 60% after tightening their validation logic. The cost saving was real. But the more valuable outcome was a marketing team that felt safe running more campaigns, trying bigger experiments, and moving faster.

Redemption count is the metric everyone reports and one of the least useful. It tells you how many people took the offer. It tells you nothing about whether they would have bought without it.
The holdout test fixes this. On any campaign, withhold the offer from 10 to 20% of the eligible audience. Compare their conversion rate to the group that got the incentive. That gap is your incrementality (the lift you can actually attribute to the campaign). Everything above the holdout baseline is real; everything below it is customers who didn't need the push and got a discount anyway.
Once you run this consistently, "we had 12,000 redemptions" becomes "this campaign drove 3,400 incremental conversions." Those are very different numbers, and they lead to very different decisions about whether to run the campaign again, what the offer should be next time, and which segment is actually worth incentivizing.
Customers acquired through heavy discounting tend to churn faster. The discount was the reason they came, and when it's gone, so is the motivation to stay. If your 90-day retention for incentive-acquired customers is meaningfully worse than for organic customers, your real CAC is higher than your headline number, sometimes by a lot.
The math: $15 in acquisition cost plus a $20 discount to acquire a customer who churns in 60 days looks very different from the same spend on a customer who's still buying 18 months later. Both show up as "acquired" in the campaign report. Only the retention cohort analysis tells you what they were actually worth.
Revenue minus cost of goods minus the discount minus the cost of acquiring that customer. This is the number that tells you whether the campaign was worth running. It's also the number most marketing teams don't calculate, which is how campaigns that look great in redemption reports turn out to be quietly unprofitable when finance looks at them properly.
Running these three measurements: incrementality, cohort retention, contribution margin on every campaign gives you a feedback loop that actually improves your next campaign. Without them, you're spending the same budget every quarter with no clear reason to expect better results.

In practice, the promo optimization loop looks like this: pick a hypothesis: "store credit will drive better repurchase than a percentage discount for customers in their second to sixth month." Then design the test, run both variants to matched segments with a holdout group in each, measure at 30 and 60 days, scale the winner, use what you learned to inform the next hypothesis.
One loop every 2 to 4 weeks gives you 12 to 25 experiments per year. But that volume isn't the point in itself. A team running 20 experiments a year, each improving something by a small amount, ends up in a fundamentally different place than a team running 4 campaigns a year and calling it optimization.