A badge that says “-50%” is a claim about two numbers: the price the shopper pays today and the price it is measured against. In the EU the second number is not yours to choose when you announce a reduction. It is the prior price: the lowest price you applied in the 30 days before the reduction. This guide explains which number a percentage, a strikethrough or a “was” price must use, works through one product with real dates, and shows why the same EUR 50 can be a lawful 50% or a misleading one.
It does not repeat the full text of Article 6a or its edge cases. Those are in the 30-day prior price rule. Which announcements count as a reduction at all is covered in what counts as a price reduction.
The two numbers behind every discount claim
Every reduction you announce has a new price and a reference price. The reference price is what the percentage, the “you save EUR 50” line or the crossed-out figure is calculated from. Article 6a(2) of the Price Indication Directive 98/6/EC, added by the Omnibus Directive (EU) 2019/2161, fixes the reference price for reductions: it is the lowest price the trader applied during a period of not less than 30 days prior to the reduction.
The Commission guidance on the Price Indication Directive (2021/C 526/02, section 2.1) draws the consequence for percentages: any indicated percentage reduction must be based on the prior price. The Court of Justice confirmed this in its judgment of 26 September 2024 in case C-330/23, Aldi Süd: a percentage or a claim that highlights the advantage of a price must be calculated from the prior price, not from a higher price charged earlier.
Shoppers and some tools call this figure the “lowest price in 30 days”, the “30-day lowest price” or the “lowest ticketed price”. In EU law the term is prior price, and the window it looks at is the 30 days before the reduction starts, never the current sale period.
Worked example: is EUR 50 really 50% off?
Take one product sold online in an EU country that applies the standard 30-day period. Its price history for the autumn looks like this:
| Dates | Price | What happened |
|---|---|---|
| 1 to 26 October | EUR 100 | Regular price |
| 27 October to 2 November | EUR 80 | Short autumn promotion |
| 3 to 23 November | EUR 100 | Back to the regular price |
| From 24 November | EUR 50 | Black Friday week |
The Black Friday reduction starts on 24 November. The 30 days before it run from 25 October to 23 November. In that window the product sold at EUR 100 and, from 27 October to 2 November, at EUR 80. The lowest of those is EUR 80, so the prior price is EUR 80.
What the badge can say
Measured from the prior price, EUR 50 is a reduction of EUR 30 on EUR 80, which is 37.5%. A badge of “-37%” next to the prior price of EUR 80 is consistent with Article 6a. A badge of “-50%” is calculated from EUR 100, a price that is not the prior price, and is the pattern the Court ruled on in C-330/23.
If the autumn promotion had run earlier, say from 1 to 7 October, the whole 30-day window would sit at EUR 100. The prior price would then be EUR 100 and “-50%” would be accurate. Same product, same Black Friday price, different history: that is why the number has to come from your price records, not from the compare-at field.
Finding that EUR 80 by hand means keeping a dated record of every price on every product and variant, and redoing the calculation each time a promotion starts.
What can still change the reference price
Progressive reductions
If you deepen a running reduction without a break, for example -20% on Monday and -40% from Thursday, and your Member State has used the option in Article 6a(5), the prior price can stay at the price before the first reduction. You do not recalculate from Monday's discounted price. A break in the campaign, or a return to the regular price in between, ends this and a fresh 30-day look-back applies. The details and examples are in successive discounts under Omnibus.
National options
Article 6a lets each Member State set different rules for goods that perish quickly, and a shorter period for products on the market for less than 30 days. Several countries used these options, so the reference period for a new product or for fresh food depends on where you sell. Check the country guides for the market you target.
A second reference price
The guidance (section 2.1) accepts additional reference prices, such as your usual price outside promotions, when they are clearly explained and do not distract from the prior price. After C-330/23, keep the percentage tied to the prior price and present any other figure as plainly labelled background, never as the base of the headline discount.
Comparisons that are not reductions
Article 6a covers announcements that you reduced your own price. Two common displays use a different reference and sit outside it, though never outside the Unfair Commercial Practices Directive (UCPD, 2005/29/EC):
- The recommended retail price.“RRP EUR 120, our price EUR 89” compares with the manufacturer's price, not your own earlier price. Label it as an RRP. If shoppers read it as your own reduction, the guidance (section 3) warns it can breach both Article 6a and the UCPD.
- A competitor's price.“EUR 20 cheaper than [shop]” is a price comparison under the UCPD and the comparative advertising rules, and must be accurate and verifiable.
How this maps to Shopify
Shopify has one field for the crossed-out figure: the compare-at price. It holds whatever number you type. It does not know your price history, so it cannot tell you that the lowest price before the sale was EUR 80, and most themes compute the percentage badge from it. If the compare-at price is EUR 100 while the prior price is EUR 80, the theme shows “-50%” on its own. Why the two fields differ, and how to set them, is explained in compare-at price vs the Omnibus prior price, and the display itself in how to display the Omnibus price on Shopify.
Checklist before you publish a percentage
- Find the lowest price of each product and variant in the 30 days before the reduction starts.
- Show that prior price with the reduced price on the product page.
- Calculate the percentage or the amount saved from the prior price, and never round it up.
- Check that the compare-at price, and any badge your theme builds from it, matches the prior price.
- If you deepen a running sale, keep the first prior price only where the country allows it and the campaign continues without a break.
- Label an RRP or competitor comparison as such, and keep it apart from the reduction.
Frequently asked questions
What does “50% off” have to be calculated from in the EU?
From the prior price: the lowest price you applied in the 30 days before the reduction (Article 6a(2) of Directive 98/6/EC). The Commission guidance and the Court of Justice in C-330/23 say a percentage reduction must be based on that price.
What does “lowest ticketed price” mean?
It is an informal name for the same figure the EU calls the prior price: the lowest price the product was offered at in the 30 days before the sale. The window ends when the sale starts, so the sale price itself is never the reference.
Can I show my regular price as well as the prior price?
The guidance allows an additional reference price if it is clearly explained and does not distract from the prior price. The headline percentage should still be calculated from the prior price.
Is this guide legal advice?
No. It summarises Article 6a of Directive 98/6/EC, the Commission guidance 2021/C 526/02 and the judgment in C-330/23. National transpositions differ, so check the rules where you sell and take local advice for a specific campaign.
