To find out whether a promo code brings customers into your shop, give it a single source (one code per channel and per campaign), a limited duration, and count every use at the till. Then compare the period with a similar normal period. The number of codes used gives you a proven minimum, not the total effect: some customers come because of the message without giving the code, and others use it even though they would have come anyway.

Why does one code for every channel prove nothing?

If the same code runs on Instagram, by text and on the window poster, you will know how many times it was used, but not where the customers came from. You then cannot tell which channel deserves your time and budget next time.

How do you create a measurable promo code?

  1. One code per channel and per campaign, short and easy to say at the till: for example SMS10, INSTA10 and WINDOW10 for the same 10% offer.
  2. A start date and an end date written on the offer. A short window gives people a reason to come now and makes comparison easier.
  3. The same offer on every channel: otherwise you are comparing offers, not channels.
  4. One simple rule at the till: the code is entered or written down for every sale, no exceptions.
  5. If your till allows it, one use per customer, so you count customers rather than visits.

How do you count uses at the till?

The most reliable option is a dedicated discount in your till software, one per code: the end-of-day report does the counting. Failing that, a sheet next to the till with one column per code is enough. For every sale, write down:

  • The code used.
  • The receipt total before and after the discount.
  • New customer or regular: one question is enough, “Is this your first visit?”.
  • Customers who mention the offer without giving the code, in a separate “saw the offer, no code” column.

What should you compare the results with?

A number on its own says nothing. Compare the code period with a similar reference period: the same week last year, or the average of the previous weeks, leaving out public holidays, school holidays or an unusual event on your street. Then look at:

  • The number of codes used per channel: the minimum number of visits linked to each channel.
  • The share of new customers among those visits: this is what measures acquisition.
  • The change in the number of receipts compared with the reference period.
  • The average basket with and without a code.
  • Whether customers who came with a code return in the following weeks, if your customer list or loyalty card lets you find them.

How much does the discount cost you?

A discount is paid out of your margin, not your revenue. The basic calculation: discount cost per receipt = average basket × discount rate. Compare it with the gross margin you make on that basket.

Example, with made-up figures to replace with your own: an average basket of €40 and a 50% gross margin, so €20 of margin per receipt. With a 20% code, the discount costs €8 per receipt, leaving €12 of margin. To earn as much as before from these customers, you need about 67% more receipts (20 ÷ 12 ≈ 1.67). With a 10% code, the discount costs €4, €16 remains, and 25% more receipts are enough (20 ÷ 16 = 1.25).

That is why a code sent to regulars who would have come anyway can cost more than it brings in: you give them the discount without gaining a visit.

What does the number of codes used actually prove?

It proves a floor: at least that many visits are linked to your campaign. It does not measure everything. Some customers see the offer and come without giving the code, others forget it at the till, others come back later without any offer. Conversely, some customers who use the code would have come anyway.

So read two numbers together: code uses, which are a proven minimum channel by channel, and the gap with the reference period, which shows the overall trend without saying which channel explains it. Neither is enough on its own.

What rules apply when you advertise the discount in the UK?

A price reduction must not mislead. If you show a “was” price, the CMA (Competition and Markets Authority) expects it to be genuine: in its 2024 reference pricing principles, written for online mattress sellers but which it says it will consider in other sectors, the higher price should have been charged immediately before the discount, for at least as long as the discount runs (generally at least 30 days), with real sales at that price. Keep the evidence (till receipts, price history). If you cannot be sure a reference price is genuine, do not use it.

If you send the code by text or email to consumers, consent rules also apply: specific consent, or an existing customer offered your own similar products with a way to opt out, the “soft opt-in” (see our article on SMS marketing rules in the UK).

With Ooklo, AI drafts your campaign message for each channel (post, email, text, and soon Google Business Profile), you add the code for each channel, and you approve everything before it goes out. Counting at the till stays with you: it is what tells you what the code brought in.

How long should an in-store promo code run?+
Short enough to give people a reason to come now, with a stated start and end date. There is no ideal length that suits every shop: test, then compare with your reference period.
What discount percentage should you choose?+
The one your margin can carry. Before deciding, calculate the discount cost (average basket × rate) and how many extra receipts you need to keep the same margin.
Can you measure a campaign without a promo code?+
Yes, but only overall, by comparing the number of receipts with a reference period. Without a code or a question at the till, you will not know which channel brought customers in.
What if customers forget the code?+
Ask at the till how they heard about the offer and note the answer separately. These cases add to the proven minimum, with less reliability.
Do you need to show a crossed-out price?+
No, a percentage off is enough. If you do show a crossed-out “was” price, it must be genuine: charged immediately before the discount, for at least as long as the discount runs, as the CMA expects.
Can you keep the same code all year?+
A permanent code becomes a permanent lower price: customers expect it, and you can no longer measure the effect of a campaign. Keep dated codes and change them for every campaign.

Sources

  • Competition and Markets Authority, Discount and reference pricing principles: selling mattresses online (1 August 2024), https://assets.publishing.service.gov.uk/media/66ab4347a3c2a28abb50db3c/Discount_and_reference_pricing_principles.pdf (accessed 22 October 2026)
  • ICO, Electronic mail marketing (Guide to PECR), https://ico.org.uk/for-organizations/direct-marketing-and-privacy-and-electronic-communications/guide-to-pecr/electronic-and-telephone-marketing/electronic-mail-marketing/ (accessed 22 October 2026)