Discounts are the easiest lever in ecommerce and the easiest one to pull too hard. I have watched stores, including one of my own early ones, slide into a place where no customer would buy anything without a code, every month needed a bigger sale than the last, and the brand quietly turned into a discount outlet nobody meant to build. The product was good. The pricing was fine. We just taught people, one promotion at a time, that full price was for suckers.
A real discount strategy is not about running more sales or fewer sales. It is about making sure every discount you give does a job, reaches the right person, and does not bleed into the customers who would have paid anyway. Here is how I think about it now.
The trap: training customers to wait
The core danger of discounting is behavioral. Customers learn. If your store has a sitewide sale every few weeks, your most loyal shoppers, the ones checking your site often, learn to wait for it. You end up handing your biggest discounts to the people who needed the least convincing.
That is the opposite of what you want. The point of a discount is to change a decision: to pull in someone who would not have bought, or to win back someone who drifted away. A discount given to someone already reaching for their wallet is pure margin thrown on the floor.
So the first principle is simple to say and hard to live by: a discount should go to people whose behavior it will actually change, and stay away from everyone else.
Use unique codes, not a public banner
Public, sitewide, always-on discounts are the main way stores train customers to wait. The alternative is targeted codes that go to specific people for specific reasons, and a big part of that is making codes unique rather than shared.
Unique codes change the game in a few ways:
- They do not leak into the general population. A shared code ends up on coupon sites within hours, which means your full-price customers find it too. A unique, one-time code sent to one person cannot spread like that.
- They let you cap usage. One use per code, or a small per-customer limit, means a discount does what you intended once and then stops. No reseller clearing you out.
- They make targeting enforceable. It is one thing to say this offer is for lapsed customers. It is another to send each of them a code that only they can use. Unique codes turn intent into reality.
When I need codes for a targeted campaign now, I generate them in bulk rather than reusing one public code. Our Bulk Discount Codes app makes a batch of unique codes against a single rule, so I can hand out hundreds or thousands of one-time codes without the leak risk of a shared one.
Put limits on everything
Limits are the cheapest margin protection you have, and most stores underuse them. Every discount I run carries at least:
- An expiry date. Urgency helps conversion and it stops a code haunting you months later. A code with no end date is a liability.
- A usage cap. One use per code for personal offers, or a sensible per-customer limit for a campaign code. This single setting prevents most abuse.
- A minimum order value, when it fits. If the goal is a bigger basket, require it. Fifteen off orders over seventy-five pushes average order value up instead of just discounting what people already planned to buy.
- Product or collection scope. Discount the slow-moving stock or the new line you are pushing, not the bestseller that sells itself at full price.
Set these at creation time. Trying to rein in an uncapped, unscoped, never-expiring code after it is loose is a bad afternoon.
Target and segment instead of blasting
The stores that discount well are not more generous, they are more precise. Rather than one offer for everyone, they match the offer to the segment:
- New customers get a modest first-order incentive, because the goal is to overcome the first-purchase hesitation.
- Lapsed customers get a stronger win-back offer, because the goal is to restart a relationship that has value over time.
- Loyal, frequent buyers get rewards and early access more than deep discounts, because discounting them is paying for behavior you already have.
- High-intent cart abandoners might get a small nudge, but not a huge one, because many would convert anyway.
Each of these can run on its own batch of unique codes, with its own rule and limits. That is the practical shape of a segmented strategy: not one banner, but a handful of targeted offers, each sent to the people it is designed to move.
Measure incremental lift, not gross redemptions
Here is the metric that separates a strategy from a habit. Most stores measure a promotion by how much revenue carried a discount code. That number is almost meaningless on its own, because a big chunk of it is customers who would have bought anyway, now just buying for less.
What you actually want to know is incremental lift: how much extra did this discount generate beyond what you would have sold without it? That is harder to measure, but you can get close:
- Compare against a holdout. Send the offer to most of a segment and deliberately not to a slice. The difference in their buying is your real lift.
- Watch full-price sales during the promo. If a sale spikes discounted orders but tanks full-price ones, you are mostly shifting demand, not creating it.
- Track per-segment redemption. Because unique codes tell you who used what, you can see whether the win-back offer brought back dormant customers or just gave a discount to people about to return anyway.
- Look at second orders. A discount that acquires a customer who then buys again at full price was worth it. One that acquires a one-and-done deal hunter was not.
When you measure lift instead of redemptions, you stop congratulating yourself for discounts that cost you money and start finding the ones that genuinely grow the business.
A discount strategy that protects margin is not stingy. It is deliberate. Targeted, unique, capped, scoped, and measured against what you would have earned anyway. Do that and discounting becomes a growth tool again instead of a slow erosion of the prices you worked hard to set.