How to Stop Discounting Without Losing Sales

Almost nobody decides to become a discount store. They drift into it. A code for the launch, a code for the newsletter, a code for the abandoned-cart flow, a sitewide sale to rescue a slow quarter, and eighteen months later a third of your orders carry a discount and nobody remembers approving that. If you want to stop discounting without losing sales, switching the codes off on a Monday morning is the one approach that reliably fails.
The way out is a sequence, not a decision. You replace what each discount was actually doing, one job at a time, and you change the scoreboard you judge it by. Here is the order that works.
How stores fall into the discount cycle
A discount is the only lever in e-commerce that works immediately, every time, with no setup. Traffic is flat and the month is closing, so you send 10% off. It works. That is the trap: it works well enough, fast enough, that it becomes the default answer to every soft week.
Each use makes the next one necessary. The Marketing Science study by Kopalle, Mela and Marsh found that promotions lift sales in the moment but push down baseline sales afterwards, and that higher-share brands in their data tended to over-promote relative to what maximised profit. The short-term win and the long-term cost land on different reports, which is exactly why the cycle survives.
You are in it if any of these are true:
- Your best repeat customers only buy during promotions.
- Full-price weeks are consistently your weakest weeks, not your most profitable ones.
- Support regularly gets asked "is there a code this month?"
- Each campaign's discount is a little deeper than the last one, because the last one is now the floor.
Before you change anything, take a baseline
You cannot wean a store off discounting without knowing what discounting currently costs. Pull the last 90 days and write down five numbers:
- Share of orders carrying any discount.
- Average discount value per discounted order.
- Average order value, discounted orders versus full-price orders.
- Gross margin per order, discounted versus full-price.
- Repeat purchase rate for customers acquired on a discount versus at full price.
That fifth one usually settles the argument on its own. If you have never separated your reporting this way, start with our guide on what to measure in your cart and why most stores get it wrong. Everything below is judged against these five numbers, so take them before you touch anything.
Step 1: Retire the sitewide discount, keep the generosity
Sitewide percentage off is the most expensive promotion type available to you, because it pays every single shopper, including the large group that was going to buy at full price anyway. You are not buying incremental orders with most of that money. You are refunding people who had already decided.
The first move is not to remove the offer. It is to make the shopper earn it. Replace "10% off everything" with "10% off orders over X", where X sits 15 to 25 percent above your current average order value.
If your AOV is $95, set the threshold around $110 to $118. Close enough that one more item gets there, far enough that it is not automatic. Two things happen immediately: shoppers below the threshold stop receiving a discount they did not need, and shoppers just under it add an item. A progress indicator does the persuading here, because a threshold nobody can see is a threshold nobody chases. That mechanic is covered in detail in how a reward bar drives higher average order values.
Run this for two to three weeks before moving on. You want the AOV shift isolated from the next change.
Step 2: Swap the threshold discount for a gift
Now replace the percentage with a product. This is where the margin actually comes back.
Work the arithmetic on a $120 order:
| Offer | What the shopper perceives | What it costs you |
|---|---|---|
| 10% off the order | $12 saved | $12 of pure margin |
| A gift with $12 retail value | $12 gained | $3 of cost of goods |
Comparable perceived value, one quarter of the real cost. The full reasoning, including when a discount genuinely is the better tool, is in free gift vs discount code: which actually protects your margin.
Two properties of gifts matter specifically during a wean-off:
A gift does not reset your price anchor. A shopper who has seen 10% off three times now believes your catalogue is really 10% cheaper than the labels say, and waits for the fourth. A shopper who received a free item still believes your prices are your prices.
Gift cost is fixed while discount cost scales. On a $250 order, 10% costs you $25 and the same gift still costs $3. Your best carts are exactly where percentage discounts hurt most, and where a gift costs nothing extra.
Choosing the gift is the part stores get wrong. Look for high perceived value against low cost of goods, small and light enough not to change your shipping band, not something you already sell in volume at full price, and with enough stock depth to survive the whole campaign. The practical setup is covered in how to add a free gift with purchase in your Shopify cart.
In EliteCart this lives under Cart Designer → Rewards & free shipping: set the threshold, pick gift as the reward type, and the progress bar handles the messaging.
Step 3: Build a ladder, then keep one narrow discount lane
With a single threshold, everyone who crosses it stops shopping. A ladder keeps the next goal visible: free shipping at a low threshold, a gift in the middle, a better gift or a choice of gift at the top. See tiered rewards in your Shopify cart for how to space the tiers.
Stopping the cycle does not mean never discounting again. Keep one lane open, with rules:
- Clearance and end-of-life stock. Named SKUs, an end date, no sitewide framing.
- Cash flow emergencies. A deliberate, expensive decision, taken as one.
- Contractual wholesale and B2B pricing. A different pricing structure, not a promotion.
If a proposed discount does not fit one of those three, it is the reflex talking.
What to expect during the transition
This is where most attempts get abandoned, because the first signal that arrives is a bad one. Plan for it.
A conversion rate dip in weeks one to three. Your discount-conditioned segment hits the cart, does not find the code they expected, and stalls. Expect it. It recovers partially as the threshold mechanic starts pulling carts up, but assume some of it is permanent: those were orders you were buying at a loss on margin.
AOV moves before conversion recovers. The threshold works almost immediately. That is your early evidence that the plan is functioning, weeks before the conversion line looks acceptable.
Coupon-site traffic falls. That is the plan working, not a problem to solve.
Support tickets asking for the code. Write a one-line answer before you start: what the store offers now, and at what basket value.
Email revenue per send drops first. Discount-led campaigns are the easiest to write and the hardest to replace. Give the new offer three or four sends before judging it.
Two scheduling rules. Do not attempt this in your peak season, and give it a minimum of six weeks or two of your typical repeat-purchase intervals, whichever is longer. A verdict in week two is noise.
Measure margin per order, not conversion rate
Conversion rate is the wrong scoreboard for this project. It is the exact metric a discount is designed to flatter, which is how stores end up "proving" they cannot stop.
Judge it on gross margin per order: revenue, minus cost of goods, minus discount value, minus promotion cost, divided by orders. Then check gross margin per session as the safety net, so a conversion drop large enough to matter cannot hide behind a healthier per-order figure.
Here is the shape of a successful transition, using illustrative numbers over 1,000 sessions. Substitute your own:
| Metric | Sitewide 10% off | Threshold + gift |
|---|---|---|
| Conversion rate | 3.0% | 2.8% |
| Orders | 30 | 28 |
| Average order value | $100 | $112 |
| Cost of goods (60%) | $60 | $67 |
| Promotion cost | $10 | $3 |
| Gross margin per order | $30 | $42 |
| Total gross margin | $900 | $1,176 |
Conversion rate went down. Profit went up 30 percent. If you had been watching the conversion line, you would have switched the sitewide sale back on in week two and called the experiment a failure.
Track alongside it: discounted order share (should be falling steadily), AOV, and repeat purchase rate by acquisition type. Repeat rate is the slowest to move and the most important, because the whole argument against the discount cycle is about the customer you get, not the order.
Ready to break the cycle? Take the five baseline numbers this week, replace your sitewide offer with a threshold next week, and swap the threshold discount for a gift two weeks after that. Then read the result on margin per order, not on the conversion line that got you into this in the first place.