Whether you celebrate Thanksgiving or not, it’s impossible to miss the massive frenzy of “black friday” and “cyber monday” discounts and deals that first started appearing a week ago and are disappearing as this post goes out.

Here’s something to ponder if you’re running a business: coupon codes are a terrible idea.

I mean this in two ways:

Seasonal discounts are a terrible idea. Coupon codes are the worst way of doing discounts.

If you’ve just run a Thanksgiving sale, it may be time to rethink this for the New Year. I appreciate this probably isn’t what you want to hear, but whilst there are some exceptions (and we’ll come to them later), hear me out on this.

Seasonal discounts are a terrible idea

“Discounts punish your pre-existing customers and train future customers not to by until you have a discount.” – Sean McCabe

I’m not a fan of discounts. They tell people who’ve already bought from you “you should have waited for a discount” and potential customers “don’t bother buying until we have a discount”.

Thinking of it like this shows discounts to be disincentivising purchases, the very opposite of what they’re supposed to be doing.

Here’s a quick case study: last week I purchased a bunch of Mac software. I thought it was a bit expensive at full price and the purchase was desirable but not urgent, so I just waited until the Black Friday sales I could see from Googling happen every year.

There is space for doing discounts within this framework, and this is more or less the only space I think they’re worth doing: launch discounts to reward early customers that are never repeated.

Launch discounts are an effective way of creating urgency and driving early sales, but for these to work the launch discount price needs to be the best price you ever offer. Those early adopters need to be rewarded by having the best possible price, not mocked/punished by seeing a lower price in six months when you run out of marketing ideas.

You could argue launch discounts are just a temporary lower price and there’s no discount at all, but the semantics are mostly irrelevant. The important point is when you do discounts you’re telling current customers if they’d waited they could have had a lower price and future customers to wait for a discount before purchasing. You’re disincentivising purchases.

Coupon codes are the worst way of doing discounts

The second line of my argument is coupon codes are the worst way of doing discounts.

Here’s why:

I’m buying something from your shop. I decide what I want and add it to my basket. I go to pay. I’m ready to buy. I see a box for a coupon code. I don’t have one! I search for a discount and click an affiliate link to reveal a discount. I add the coupon code and purchase, with a 20% saving made.

You should never offer discounts once a customer has made a purchasing decision. Discounts should be used to ensure a purchasing decision is made, but offering them after that decision is just throwing money away.

By showing a coupon code box at the checkout, you’re telling customers who have already decided to buy that they can get a discount when they were literally about to purchase at full price. It’s not just me saying this btw.

When you offer the option to enter coupon codes at checkout, a decent proportion of your customers will now proceed to Google your site + discount and pocket whatever discount they can find.

What’s more, most sites collating coupons will then demand you click an affiliate link to reveal the discount – so you suddenly lose the x% on the coupon code and x% in affiliate payout. This could quite easily be 50%+ of the original price, lost totally unnecessarily.

You see what I mean when I say coupon codes are a terrible idea?

The solution here, if you are going to do discounts, is to do discounts without coupon codes. Append a query to your site’s URL instead, so the discount is only available to customers specifically coming from the place the discount was intended for. SellwithWP has details on how to do this with EDD and here’s how to do it with WooCommerce.

Other mooted solutions include conditionally displaying a coupon box, but the URL method is easier to implement. How you do this doesn’t really matter, what’s more important is you are doing something to hide the coupon box.

There are exceptions to this

And I’m not just saying this so friends reading this won’t think I’m being too much of a dick about it. There are some scenarios where discounts make sense and some ways of doing discounts better if you really want to do them.

The type of product is important. Are you selling a commoditised product or a luxury one? You can probably make a strong argument that commoditised products – where price is one of the main competition points – need discounts to keep sales up and customers expect to see occasional discounts. I’m not going to make such an argument, but I can see it could make sense. You cannot, however, make such an argument for luxury products.

You can avoid problems by keeping discounts quiet. Discounts disincentivise purchases as future customers can see lower prices are available and they should wait. If there’s no way of future customers finding your discounts, there’s no §disincentive. In practice this might mean offering exclusive discounts to your email list or perhaps to current customers on an additional purchase.

Note this rules out running big promotional discounts and posting to your blog or social media; I still maintain these are a bad idea.

Truly seasonal discounts are probably okay. I get I’m British and don’t really understand Thanksgiving. If you really want to do a Thanksgiving sale and be part of the community and all that, you can do, but make sure they’re truly seasonal sales and not run with the regularity that future customers can just wait for the next sale before purchasing.

You can mitigate some of the problems with coupon codes. If you really want to keep your coupon codes available to everyone, there are some things you can do to mitigate the problem:

Keep tight control over what codes are available. Make sure “finished” codes expire and sites can’t collate dozens of possibly working coupons. Only offer codes to new customers, or for SaSS products for the first x months. This makes sure coupons work as lead generation. Dominate the search results for your own coupons. This is my favourite! Avoid paying out affiliate fees by making sure customers come to your site when they search for coupon codes. This is as simple as making a page on your site with a list of available coupon codes. Namecheap does this really well, as do WPZOOM.

Of course, the easiest way to avoid problems with coupon codes is simply not to use them 😉

I maintain coupon codes are rubbish

My thesis here is strong. Coupons tell potential customers “wait until we do a sale” and current customers “you should have waited for a sale”. Furthermore, the coupon box at checkout throws away a huge chunk of revenue in discounts and affiliate fees to customers who were just about to buy at full price.

If you really want to do discounts, there are ways of doing them better, but for most products I just don’t see the value.

So, in sum: coupon codes are a terrible idea.

P.S. If you’re reading this, nodding along and thinking you should change your marketing strategy but don’t know how… drop me an email.