The rule sounds simple: the lowest price of the last 30 days. In practice, the mistakes hide in the details, above all in the question of which 30 days are meant. The following examples show the typical cases. All prices are final prices including VAT.
The basic rule
For every announced reduction, the reference is the lowest price you charged consumers in the 30 days before the reduction was applied. That is how Art. 6a of the Price Indication Directive is implemented, for example in § 11(1) PAngV in Germany and § 9a(1) PrAG in Austria, which additionally refers to the same sales channel.
Since the CJEU ruling C-330/23, this lowest price is also the yardstick for the reduction itself. For the percentage that means:
Discount in percent = (1 − sale price ÷ lowest price) × 100
When in doubt, round down. That way the discount never looks bigger than it is.
Example 1: a simple sale
| Period | Price |
|---|---|
| 1 to 31 August | €100.00 |
| from 1 September (sale) | €80.00 |
The window is the 30 days before 1 September. During that time the price was always €100. Lowest price: €100.00, discount: −20 %.
Example 2: an earlier sale within the window
| Period | Price |
|---|---|
| until 9 August | €100.00 |
| 10 to 15 August (weekend sale) | €85.00 |
| 16 to 31 August | €100.00 |
| from 1 September (sale) | €80.00 |
The short sale in August falls within the 30 days before 1 September. Lowest price: €85.00. The discount is therefore only about −5 %, not −20 %. If you run frequent short sales, keep this effect in mind.
Example 3: a price increase just before the sale
| Period | Price |
|---|---|
| until 2 October | €249.00 |
| 3 to 12 October | €279.00 |
| from 13 October (sale) | €229.00 |
The window runs from 13 September to 12 October. The lowest price in it was €249. Lowest price: €249.00, discount: −8 %. The −18 % that you would get against €279 is exactly the kind of discount the CJEU objected to in the Aldi ruling.
Example 4: stepwise reductions
| Period | Price | Reference |
|---|---|---|
| until 31 October | €100.00 | – |
| 1 to 14 November | €90.00 (−10 %) | €100.00 |
| 15 to 24 November | €80.00 (−20 %) | €100.00 |
| from 25 November | €70.00 (−30 %) | €100.00 |
If a reduction is deepened without interruption, the price before the first step stays the reference (e.g. § 11(2) PAngV, § 9a(1) second sentence PrAG). Without this rule, €90 would be the lowest price at the second step, and the third step could hardly be advertised as a discount.
If the sale price goes up in between, say from €80 to €90, the reduction is interrupted. A later price cut is then a new reduction with its own 30-day window.
Example 5: a new product
| Period | Price |
|---|---|
| from 20 October (new in the range) | €60.00 |
| from 1 November (sale) | €50.00 |
The product has only been in the shop for twelve days. Austria covers this case explicitly: the reference is the lowest price since the product came on the market (§ 9a(2) PrAG), here €60. The German PAngV has no specific rule for it. The shorter period also gives a lowest price of €60 there, so −16 %.
Common mistakes
- The last 30 days until today instead of before the sale started. If the sale has been running for two weeks, this window contains the sale price itself. The lowest price would be the sale price, and the notice would be worthless.
- Using the regular price as the reference. The regular price is often not the lowest price, see examples 2 and 3.
- Net instead of gross. Consumers see final prices; the lowest price is a final price, too.
- Mixing variations. Every size or colour with its own price needs its own history.
- Dating scheduled sales wrongly. What counts is the date the price applies from, not the moment a background job switched it.
- Mixing sales channels. In Austria, the price in the same channel counts, so the online shop separately from a physical store.
Automatic instead of by hand
For one product, this is quickly done. For a shop with hundreds of products, variations and several sales a month, it is not. Strikewise stores every price change in WooCommerce and calculates the lowest price exactly by these rules: the window before the sale starts, stepwise reductions, variations, final prices and the real start date of scheduled sales. You see the history of every product as a chart right in the editor.