Discount Learner
In plain English
When someone abandons a basket, you send them a reminder. The question is whether to include a discount, and how big.
Most shops pick one number — usually 10% or 15% — and use it for everyone, forever. That's expensive in a way that's very hard to see, because the sales still happen. You just paid more for them than you needed to.
This tool works out the right number for each situation by trying them and watching what happens.
It's simple in principle. It has six options — 0%, 5%, 10%, 15%, 20%, 25% — and it tries them across your recovery sends. When one clearly works better for a particular kind of customer on a particular channel, it uses that one more often.
The 0% option matters more than you'd expect. A good number of people who abandon a basket just got distracted. They'll come back for a reminder alone. Every discount sent to those people is money given away for a sale you already had.
One more thing: a small share of sends deliberately get no discount as a control group. That's how you find out what your discounting is genuinely adding, rather than what it looks like it's adding.
How to use it
- Click "Discount Learner" in the left-hand menu.
- Set your guardrails first. For each customer type, set the maximum discount you're willing to give. This is a hard limit the tool can never exceed.
- Choose your goal — revenue or profit. If you have thin margins, choose profit.
- If you chose profit, enter your gross margin percentage so it can do the maths.
- Leave it running. It needs about 30 sends per option before it's confident.
- Check the learned discounts after a few weeks to see what it's found.
- Check the holdout comparison to see what your discounting is actually adding.
⏱ ~15 min to set up, then automatic · 💳 Pro+ · 🎯 Stop over-paying for sales you'd have won anyway
Why this matters for your business
Discounting is where margin quietly disappears. Not through big, obvious mistakes — through a default that was set once and never questioned.
Say you send 2,000 recovery messages a month at 15% off, with an average basket of £60. That's roughly £18,000 of discount given away annually on the converted portion alone. If 10% would have converted just as well for a large slice of those customers, you've spent a third of that for nothing.
The difficulty is that you can't tell by looking. The sales came in. The campaign "worked." There's no line in your accounts labelled "discount we didn't need to give."
The only way to know is to try different amounts and compare. That means running a lot of small experiments, tracking the results per customer type and channel, and updating as things change — which no one has time to do by hand.
The control group is the part most discount tools skip, and it's the one that answers the real question. Without it, you know your 15% offer converts at 12%. With it, you know the no-discount group converts at 9% — so your discount is buying 3 percentage points, and you can work out whether that's worth what it costs.
What this typically unlocks
| What you get | Typical result |
|---|---|
| Discount spend on recovery | Often 20–40% lower at similar conversion |
| Knowing what discounting actually adds | Measured, via the control group |
| Different offers per customer type | Automatic rather than one-size-fits-all |
| Margin protection | Guaranteed by guardrails |
| Ongoing effort after setup | None |
What you actually get
The six discount options
0% · 5% · 10% · 15% · 20% · 25%
Customer types it learns separately
| Type | Who they are |
|---|---|
| VIP | Your best customers |
| Loyal | Regular repeat buyers |
| Engaged | Active, buying occasionally |
| New | Recently acquired |
| At risk | Slowing down |
| Dormant | Haven't bought in a while |
| Churned | Effectively gone |
| Unknown | Not enough information yet |
These behave very differently. A VIP often doesn't need a discount at all — they were coming back anyway. A churned customer may need a large one to be worth reactivating. One shared number serves neither well.
Channels it learns separately
It learns separately for email, WhatsApp, and SMS.
Response differs by channel. A WhatsApp message arrives with far more immediacy than an email, so the discount needed to prompt action is often smaller.
Guardrails — your hard limits
For each customer type you can set a minimum and maximum discount. The tool can never go outside them, whatever the data suggests.
| Use it for | Example |
|---|---|
| Protecting margin | Cap new customers at 10% |
| Price agreements with suppliers | Cap a range at 5% |
| Brand positioning | Never discount VIP items |
| Avoiding a discount habit | Cap everything at 15% |
Set these before you switch it on. They're your safety net, and they're the reason you can leave it running unattended.
Revenue or profit
| Goal | What it optimises | Choose when |
|---|---|---|
| Revenue (default) | Total sales value | Margins are healthy, growth is the priority |
| Profit | Money left after cost of goods | Margins are thin, or discounting is expensive |
These genuinely disagree. A 25% discount might bring in more total revenue and less actual profit. If you choose profit, enter your gross margin percentage so the sums are right.
The control group
By default, 10% of recovery sends get no discount at all — a control group.
That's what lets you answer the question that matters: what is discounting actually adding?
Discounted sends converted at 12.4%
Control (no offer) converted at 9.1%
─────────────────
True added lift 3.3 points
Without the control, you'd conclude your discount campaign converts at 12.4% and is working. With it, you can see that three-quarters of those conversions would have happened anyway.
How it decides
| Stage | What it does |
|---|---|
| Learning (under ~30 sends per option) | Tries options in a balanced way, leaning toward what's working |
| Confident (30+ sends per option) | Uses the best-performing option most of the time |
| No data for this channel yet | Borrows from your overall results |
| No data at all | Uses sensible built-in defaults |
You're never left without a sensible discount. Even on day one, before it has learned anything, it falls back to a reasonable default rather than doing nothing.
Pinning — manual override
You can pin a specific discount for a customer type — with a reason and an expiry date.
| Use it for | Example |
|---|---|
| A seasonal campaign | Pin 20% for Black Friday week |
| A margin emergency | Pin 0% until costs settle |
| A commercial agreement | Pin 5% for a supplier-funded range |
Pins expire automatically and learning resumes. That's deliberate — a pin set during one campaign shouldn't quietly govern your discounting for the next year.
How it works (without the technical bits)
Real merchant scenarios
Scenario A — A third of the discount budget was unnecessary
Setup. Homeware brand, flat 15% on every recovery send. 2,400 sends/month, average basket £72.
After nine weeks of learning:
| Customer type | Learned discount | Was |
|---|---|---|
| VIP | 0% | 15% |
| Loyal | 5% | 15% |
| Engaged | 10% | 15% |
| New | 15% | 15% |
| At risk | 20% | 15% |
| Dormant | 25% | 15% |
VIPs converted just as well at 0%. They were coming back regardless; the 15% was pure giveaway.
Results:
| Before | After | |
|---|---|---|
| Average discount given | 15% | 9.4% |
| Recovery conversion | 11.8% | 12.1% |
| Monthly discount cost | £3,060 | £1,970 |
| Annual saving | — | ~£13,000 |
Conversion went slightly up, because at-risk and dormant customers were finally getting an offer big enough to matter.
Scenario B — The control group changing the strategy
Setup. Fashion retailer, confident their 20% recovery offer was essential.
After 90 days:
Discounted sends 18.2% conversion 1,840 sends
Control (no offer) 14.9% conversion 204 sends
──────────────────
True added lift 3.3 points
The maths. 3.3 extra points on 1,840 sends is about 61 extra orders. At an £84 average basket, that's £5,124 of extra revenue.
The 20% discount cost them roughly £5,600 across all discounted conversions.
They were losing money on the discount.
Action. Dropped the cap to 10% and let it learn within that. Conversion settled at 16.8% — below the 18.2%, but far more profitable.
Without a control group they'd have kept doing it forever, because 18.2% looked like a success.
Scenario C — Guardrails preventing an expensive lesson
Setup. Merchant with 28% gross margin switched it on with no guardrails and the goal set to revenue.
What it learned. 25% converted best across most customer types — which is true, and disastrous. At 28% margin, a 25% discount leaves almost nothing.
Caught in week two when profit fell despite revenue rising.
Fix, two changes:
- Switched the goal to profit and entered their 28% margin.
- Added guardrails capping most types at 10%, dormant at 15%.
After it re-learned:
| Revenue goal, no caps | Profit goal, capped | |
|---|---|---|
| Recovery revenue | £41,200 | £36,800 |
| Recovery profit | £2,100 | £7,900 |
Less revenue, nearly four times the profit.
The lesson. Revenue and profit goals genuinely disagree. On thin margins, choose profit and set caps.
Scenario D — Channels wanting different numbers
Setup. Merchant running recovery across email, WhatsApp, and SMS, assuming one number worked for all.
What it learned for "engaged" customers:
| Channel | Learned discount | Conversion |
|---|---|---|
| 15% | 9.2% | |
| 5% | 16.4% | |
| SMS | 10% | 11.8% |
WhatsApp needed a third of the email discount and converted nearly twice as well. The message arrives with immediacy; the nudge itself does most of the work.
Effect. They shifted recovery volume toward WhatsApp where customers had opted in — better conversion at a third of the discount cost.
Scenario E — A pin that expired on purpose
Setup. Merchant pinned 25% across all types for Black Friday week, with a 7-day expiry.
What happened. The pin applied through the promotional period, then expired automatically and learning resumed.
Why the expiry mattered. A previous year they'd set a promotional discount manually and forgotten it. It ran for four months. Estimated over-discounting: about £19,000.
Expiring pins make that mistake structurally impossible.
Best practices
✅ Set guardrails before switching it on. They're your safety net — Scenario C.
✅ Choose the profit goal if your margin is under about 50%.
✅ Leave the control group on. It's the only way to know what discounting adds.
✅ Give it 30+ sends per option before judging. Early results are noisy.
✅ Always put an expiry on a pin. Scenario E.
✅ Review learned discounts monthly. Big shifts usually mean something changed in your business.
❌ Don't pin everything. Pinning every type turns off the learning you're paying for.
❌ Don't use the revenue goal on thin margins. It will discount you into unprofitability.
❌ Don't remove the control group to "get more conversions." You lose the ability to know whether any of it works.
❌ Don't expect instant results. It needs real sends to learn from.
Plan tiers
| Capability | Free | Starter | Pro | Agency | Enterprise |
|---|---|---|---|---|---|
| Automatic discount learning | — | — | ✓ | ✓ | ✓ |
| Per-customer-type learning | — | — | ✓ | ✓ | ✓ |
| Per-channel learning | — | — | ✓ | ✓ | ✓ |
| Guardrails | — | — | ✓ | ✓ | ✓ |
| Revenue or profit goal | — | — | ✓ | ✓ | ✓ |
| Control group & true lift | — | — | ✓ | ✓ | ✓ |
| Pinning with expiry | — | — | ✓ | ✓ | ✓ |
| Multi-store learning | — | — | — | ✓ | ✓ |
Frequently asked
How long before it's useful? It needs roughly 30 sends per option per combination. High-volume shops see confident results in a few weeks; smaller ones take longer. It uses sensible defaults meanwhile.
Does 0% really work? Often, yes — particularly for VIP and loyal customers who were returning anyway. It's usually the biggest saving the tool finds.
Can it give away more than I'm comfortable with? No, if you set guardrails. They're hard limits it cannot exceed.
Why keep a control group that gets nothing? Because it's the only way to know what your discounting adds. See Scenario B — it can completely change the decision.
Can I turn the control group off? It's a small share of sends and it's what makes the results meaningful. Strongly recommended to leave on.
What if my margins vary a lot by product? Enter your overall gross margin and set conservative guardrails. For very different margin tiers, cap the affected customer types lower.
What happens during a big sale? Pin the discount you want for the promotional period, with an expiry. Learning resumes automatically afterwards.
Does this affect anything other than cart recovery? No. It optimises cart-recovery discounts specifically. Other discounts are set where you configure them.
See also
- Cart recovery & post-purchase — the sends this optimises
- Revenue Leaks — abandoned baskets as recoverable money
- Segments & cohorts — the customer types it learns per
- WhatsApp engine — often the best-performing channel here
- Offer Lab — designing offer structure rather than discounts
- Experiments & holdouts — the wider control-group approach
- A/B testing & experiments — testing other changes