How the EU 30-day lowest price rule works on a Wix store
Every announced price reduction in the EU has to name the item's lowest price from the previous 30 days. The rule is short; applying it to a real catalogue is where stores get it wrong. This guide walks the cases that actually come up, with the arithmetic spelled out.
What the rule says
The EU Omnibus Directive amended the Price Indication Directive with Article 6a, in force since 28 May 2022. Any announcement of a price reduction must state the prior price, defined as the lowest price the trader applied during a period of at least 30 days before the reduction.
In September 2024 the Court of Justice (case C-330/23) went further: a percentage or a “lowest ever” claim must be calculated against that 30-day-lowest figure, not against whatever the price happened to be the day before. So the number is not decoration next to your sale price — it is the base the discount itself is measured from.
Which price you must reference
Take the 30 days ending the moment you announce the reduction, and find the lowest price your store actually applied inside that window. That figure is the prior price, whether or not it is the most recent one.
| Date | What happened | Price in effect |
|---|---|---|
| 12 March | Product listed | €40.00 |
| 1 June | Price raised | €50.00 |
| 20 June | Reduction announced at €35.00 | Reference: €40.00 |
The window here runs 21 May to 19 June. It contains two prices — €40.00 until the end of May and €50.00 after it — so the prior price is €40.00. Advertising “was €50.00, now €35.00” would be a 30% discount against a price that was only live for nineteen days, and that is precisely the practice Article 6a was written to stop.
The case most stores miss: a price set before the window
Suppose the same product has sat at €40.00 since March and nothing changed in the last 30 days. A naive implementation looks for price changes inside the window, finds none, and concludes there is no prior price to show. That is wrong.
The rule asks which price was applied during the window, not which price changed during it. The €40.00 set in March was still being applied on 21 May, so it is carried into the window and it is the answer. This is why a price you last touched six weeks ago can legitimately be the “lowest price in the last 30 days”, and why a store that only stores change events has a blind spot exactly where its longest-running prices are.
Why a “compare at” price is not a prior price
Wix Stores lets you set a compare-at value that renders as a struck-through price next to the current one. It is a presentation field: you can type any number into it at any time, and nothing records that the item was ever sold for it. Article 6a asks for the price you applied — evidence of what shoppers could actually pay.
So a compare-at value is not usable as the prior price, and a struck-through number on your product page does not satisfy the rule on its own. The two can even contradict each other on the same page: a compare-at of €50.00 next to a genuine 30-day low of €40.00 tells the shopper two different stories, and only one of them is defensible.
Products with variants
A product with options — sizes, colours — has a price per variant, while the product page shows one figure, usually a “from” price. The prior-price line has to match that: one line for the product, derived from its variants.
The safe construction is the lowest prior price across the variants that are currently on sale. Two details decide whether it stays honest over time:
- A variant you delete must stop contributing. If a discontinued €20.00 size keeps feeding the calculation, the page will keep quoting a low that no shopper can reach.
- A variant you add mid-window has no earlier history of its own, and inventing one for it is not an option — its own first observed price is where its history starts.
When showing nothing is the correct answer
The obligation attaches to announcing a reduction. If a product is at its normal price, there is nothing to reference and no line to print. The same is true when the current price equals the 30-day low: the reduction is zero, so there is no reduction to qualify.
An empty product page is therefore not evidence that something is broken. It usually means the price has not moved — and a tool that prints a reference line anyway is manufacturing a discount that does not exist.
What to keep as evidence
Enforcement is not theoretical: Poland's UOKiK fined Zalando and Temu in a single wave in January 2026, in the tens of millions of złoty. When a regulator or a customer asks, the useful artefact is a dated record — for each product, the prices applied and when, and the 30-day low that followed from them at the moment of the reduction.
Screenshots of a product page are weak: they show one moment and prove nothing about the previous 29 days. An exportable price history is what turns “we believe we were compliant” into something checkable.
How the app handles it
Omnibus 30-Day Lowest Price implements exactly the reading above on a Wix store: it records each price change as it happens, carries the price in effect at the start of the window into the calculation, keeps per-variant history and drops deleted variants, ignores compare-at values, and prints the line only while a product is genuinely below its reference. Where two readings are possible it takes the lower one, because understating a prior price is safe and overstating it is the breach.
The mechanics — permissions, catalogue coverage, sync cadence — are on the Wix Stores integration page.
The compliance line is free on every product, with no product cap. The dashboard and the exportable dated record are the paid part.
Add to your Wix site