Learning Log

Discount fatigue: why sale emails stop getting opened

A log, not a case study. We had a client whose every email opened with the offer, and whose open rates fell for months. Here is what we thought was wrong, what we changed, what moved, and what we still cannot explain.

SweetEe ·

discount fatigue, sale emails not performing

Tahan Outdoors makes camping and outdoor gear for Malaysian conditions - heat, humidity, sudden rain, short drives to a campsite rather than week-long expeditions. Good products, a real customer base, an engaged list.

And for a stretch of this year, an email programme that was quietly getting worse while every individual email looked fine.

I am writing this one up as a Learning Log rather than a case study because the interesting part is not the result. It is the three months where we had the numbers, had a hypothesis, and were not yet sure we were right.

What we were running

A promotional calendar, sent on cadence, with the offer in the subject line. A representative run:

  • Last chance: RM25 OFF ends soon
  • CNY Payday Sale Is On!
  • Buy 3 Free 1: Silicone Bowls
  • RAYA SALE: 15% OFF SITEWIDE
  • Bestselling Luminate at 50% OFF

Nothing there is a mistake. Each one is a clear offer, clearly stated, to a list that had opted in. If you handed any of those subject lines to a reviewer in isolation they would pass.

The problem only exists in sequence. Read them as a list, which is exactly how a subscriber experiences them, and the brand says one thing: there is a sale on. Every week. Which is the same as saying nothing.

What we saw

Open rates drifted down over the run. Campaign revenue drifted down with them.

Not a collapse - a slope. That is part of why it took a while to act on. There was no single bad send to point at, no deliverability incident, no obvious cause. Each campaign was slightly worse than the last, well inside the range where you can tell yourself it was the timing, or the product, or the week.

The thing that made it undeniable was putting six months of sends in one table and looking at the trend line rather than the individual rows. I recommend doing this more often than feels necessary.

Three explanations, and why we picked the third

1. Deliverability. The default suspect. Ruled out - placement and list health were stable across the period, and the decline did not track any sending change.

2. List decay. Plausible. An ageing list opens less. But new subscribers were coming in at a normal rate through the popups, and the decline showed up in the recently-engaged segment too, which is the one that should have been least affected.

3. Discount fatigue. The subject line had stopped being information.

The third is the one I believed, and I want to be clear about why, because it is a hypothesis about behaviour and those are easy to invent after the fact.

If every message says sale, then the cost of skipping any single message is zero. The next one will also be a sale. Subscribers were not annoyed and they were not unsubscribing - unsubscribes stayed flat. They had simply learned that nothing is lost by not opening. That is a rational response to a predictable sender, and it is much harder to see than unsubscribes because the list keeps looking healthy.

Two side-by-side loops. On the left, every subject line is the offer, so the subscriber learns that skipping costs nothing and the loop returns to the start. On the right, the subject carries a reason, the subscriber cannot predict the contents, opens, and meets the offer inside.
Discount fatigue is not irritation - it is a subscriber behaving rationally. The left-hand loop closes on itself, and it shows up as falling opens with flat unsubscribes.

What we changed - and what we deliberately did not

We did not change the promotional calendar. Same cadence, same depths, same mechanics. That mattered: if we had cut promotions and rewritten subject lines, any improvement would have been unattributable.

What changed was where the offer sits.

Before: subject line = the mechanic. RAYA SALE: 15% OFF SITEWIDE.

After: subject line = the reason. The trip, the meal, the gear problem, the thing the customer is actually trying to do. The offer moves down into the preview text and the body, where it converts someone already reading rather than trying to earn the open on its own.

Makan. Lepak. Raya Sorted! is still a 15%-off email. The discount is in the preview text, one line below. It just does not open by announcing itself.

The rest of the rotation ran on the same principle - function, benefit, a checklist, a use case. Things worth reading if nothing were on sale, with something on sale underneath.

Two inbox rows compared. In the before version the subject line is the offer itself. In the after version the subject carries the reason and the offer sits one line down in the preview text.
Same send, same cadence, same 15%. The discount was never removed - it was moved out of the doorway.

What happened

Open rates moved from under 40% to over 60%. Revenue per email went up with them.

The second number is the one that matters and the one that is easy to miss. A higher open rate on its own can mean you wrote a better hook and a worse email. Revenue per send moving in the same direction is what tells you the extra opens were the right people.

The qualitative read, for whatever it is worth: people started opening Tahan emails again because they stopped knowing what was inside.

What I got wrong, and the limits

I expected the offers to work less hard. My assumption going in was that burying the discount would cost us conversion on the promo itself and we would make it back on engagement. That is not what happened - the promotions performed at least as well. The offer never needed the subject line. It needed the reader.

This was a live calendar, not a controlled test. Raya sat inside the window, and Raya is a strong season for outdoor gear in Malaysia. Seasonality is doing some of the work in those numbers and I am not going to pretend to know how much.

Open rate is a softer metric than it used to be. Apple's Mail Privacy Protection pre-fetches images and inflates opens. It inflates them consistently across the period, so the movement still means something, but treat the direction as the finding rather than the decimal.

It is one brand, one category, one market. We have seen the same pattern begin to show up elsewhere in the portfolio, which is why I am writing it down, but one brand is a hypothesis with evidence attached - not a rule.

What we are testing next

  1. How long the effect holds. Discount fatigue took months to build. A benefit-led subject line is also a pattern, and patterns are what customers learn. I want to know whether this decays too, and on what timescale.
  2. Whether depth still needs to vary once the subject line is doing the persuading, or whether a consistent offer is now fine.
  3. Whether the same shape works in the flows, not just the campaigns. Flows are triggered by behaviour, so the reader's context is different and the finding may not transfer.

The full argument behind this - why price sets expectation, and how to build a promotional rhythm that protects the position while it sells - is in the companion piece, how to discount without damaging your brand position.

If you put your last twenty subject lines in a single column and read them top to bottom, what would your list say you sell?

Frequently asked questions

What is discount fatigue?

The point at which promotional messaging stops changing behaviour because it has become constant. Customers do not react against it - they stop reacting to it. The usual symptom is falling open rates with flat unsubscribe rates, which is easy to misread as list decay.

Why are my email open rates dropping?

Rule out deliverability and list health first, in that order. If both are stable and the decline is gradual rather than sudden, look at your last twenty subject lines as a single list. If they all promise the same thing, the subject line has stopped carrying information.

Should I stop sending promotional emails?

No. Promotions close the decision cycle and they pay for the rest of the programme. Change where the offer sits, not whether it exists - reason in the subject line, offer in the preview text and the body.

How do you write a sale email subject line that still gets opened?

Write the line you would have written if there were no sale. The use case, the problem, the thing the product makes easier. Then put the offer in the preview text. The subject earns the open, the offer earns the click.

Keep reading