A price tag on a pendulum tracing a notched arc over a locked glass vault holding one low coin, a padlock gate in front.

The EU Omnibus Directive turned the oldest trick in retail — inflate, then "discount" — into a compliance problem. Any announced price reduction now has to be measured against the lowest price you actually charged in a defined prior window, and if you cannot substantiate that reference price, you are not allowed to advertise the reduction at all. Here is how the rule works, the distinction that makes it tractable, and the fail-closed design we run so our sale shelf stays both honest and alive.

The 30-day lowest-prior-price rule

Under Directive (EU) 2019/2161 (the "Omnibus" directive, amending the Price Indication Directive), when a trader announces a price reduction they must state the prior price, defined as the lowest price applied during a period of at least the 30 days before the reduction. In plain terms: your "was" price is not the highest recent price, not the RRP, and not last week's price — it is the lowest price you actually charged in the preceding 30 days. If a product bounced between €20 and €25 in that window, the lawful reference for a new sale is €20.

National implementations vary in the fine detail, including how they treat goods that have been on the market for a short time, so treat the specifics as jurisdiction-dependent and worth professional review. The core principle — lowest prior price over a defined recent window — is the part that is consistent and that your systems must be able to prove. For anything beyond that principle, read the directive itself on EUR-Lex and take legal advice.

Membership vs announcement: the distinction that untangles it

The mistake that gets retailers into trouble is conflating two questions. We keep them strictly separate.

  • Membership — is this product on sale at all? That is a merchandising question: is the current price below the vendor's own regular price, so it belongs on the "on sale" shelf?
  • Announcement — may we display a strikethrough, a "was" price or a percentage off? That is a legal question, and the only lawful basis for it is a substantiated Omnibus prior price.

These are not the same, and treating them as one is where fabricated "was" prices come from. A product can legitimately sit on the sale shelf (its price is below the regular price today) while we still have no right to print a specific strikethrough, because we cannot substantiate what the lowest price was over the prior window. Separating membership from announcement lets the sale shelf stay populated and useful while the legal claim is gated independently.

One gate, failing closed

The safe default for a compliance rule is to fail closed: when in doubt, show nothing rather than risk an unlawful claim. We route every price-reduction display — the strikethrough, the "−N%" badge, the word "sale" as a discount claim — through a single gate. That gate asks one thing: do we hold a substantiated prior price for this product? If yes, it returns the reference and the badge renders. If no, it returns nothing and no reduction is shown anywhere, on any surface.

The single-gate design matters as much as the fail-closed default. If four different templates each decide independently whether to show a discount, you have four chances to get it wrong and four places to audit. One gate means one implementation of the rule, one place to test it, and no surface that can quietly render an unsubstantiated claim. A fallback that guesses a prior price when the real one is missing is not a convenience — it is precisely the unlawful claim the directive prohibits.

From production

On our marketplace, if there is no substantiated prior price, there is no discount badge — ever, on any surface. The gate returns null and every card and product page simply shows the current price with no strikethrough. It is less dramatic than a wall of red percentages, and it is the only version we can stand behind if a regulator asks how a specific "was" price was calculated.

Capturing price history you can actually trust

You cannot enforce a lowest-prior-price rule without a reliable price history, and this is subtler than it looks. A pure write-hook — record the price whenever it changes — misses the most important case, because a price that never changes is still the prior price. If a product sat untouched at €20 for a month, no change event ever fired, yet €20 is exactly the reference a later sale must beat.

So we capture two ways: a write-hook that records a point whenever a price moves, and an hourly snapshot that samples every product's current price regardless of whether it changed. The hook catches rapid moves precisely; the snapshot guarantees that stable prices are represented in the history. From that combined record, the lowest price over the prior window is a straightforward query — and the gate above has something real to read.

Newly listed products are the tricky case. The directive lets member states provide a shorter reference period for goods that have been on the market for less than the standard window, which means a compliant system has to know how long each product has actually been on sale, not just how long you happen to have been recording its price. Those are different clocks: your price history might only start when the product was ingested, while the lawful reference depends on the product's own age. Track the product's genuine listing age so a brand-new item is judged on the right, shorter window rather than being wrongly promoted into the full one — and confirm the exact period your jurisdiction applies with a lawyer.

A sale shelf that survives compliance

Operators fear that Omnibus compliance means killing the sale shelf. It does not — it means the shelf stops lying. Keep the merchandising and the legal claim separate: let products whose current price is below the regular price populate the sale shelf on merchandising grounds, and gate the strikethrough and percentage claims on substantiated priors. A product with no substantiated prior can still be discoverable and still be a genuine deal; it just shows its honest current price instead of an invented saving. Honesty here is also adjacent to other display rules — the same discipline underlies truthful free-shipping thresholds, and it sits alongside your broader consumer-facing obligations like consent and privacy and correct VAT display.

Key takeaways

  • The prior price is the lowest price in the defined recent window (at least 30 days under Directive (EU) 2019/2161) — not the RRP, not last week's price.
  • Separate membership from announcement: being on the sale shelf is a merchandising decision; showing a strikethrough is a legal claim that needs a substantiated prior.
  • Route every reduction display through one gate that fails closed — no substantiated prior means no badge on any surface, and never a guessed fallback.
  • Capture price history with a write-hook and an hourly snapshot, because an unchanged price is still a valid prior and emits no change event.
  • Keep the sale shelf alive by letting products qualify on merchandising while gating the legal claim independently.
  • National rules differ in detail; treat the specifics as jurisdiction-dependent and take professional legal advice.

Frequently asked questions

What is the EU Omnibus Directive's rule on sale prices?
Directive (EU) 2019/2161 requires that when you announce a price reduction you show the prior price, defined as the lowest price you applied during at least the 30 days before the reduction. Your "was" price must be that lowest recent price, not the RRP or a higher earlier price.
Can I show a discount if I don't have the price history?
No. If you cannot substantiate the lowest prior price, you should not advertise a reduction at all — no strikethrough, no percentage off. A safe system fails closed and simply shows the current price. Guessing a prior price to fill the gap is exactly the unlawful claim the directive targets.
Does the Omnibus Directive kill my sale shelf?
No, it just stops the shelf from lying. Keep two questions separate: whether a product belongs on the sale shelf (a merchandising decision based on today's price versus the regular price) and whether you may show a strikethrough (a legal claim needing a substantiated prior). Products can stay on the shelf while the badge is gated.
How do you record price history for Omnibus compliance?
With two mechanisms: a write-hook that records the price whenever it changes, and an hourly snapshot that samples every product's current price even when it hasn't changed. The snapshot matters because a price that stays flat for weeks emits no change event, yet that stable price is still a valid prior.
Is this legal advice?
No. This explains the well-established core principle of the directive, but national implementations differ in detail, including for newly listed goods. Read the directive on EUR-Lex and consult a qualified lawyer for your jurisdiction before relying on any specific interpretation.

A sale shelf that's honest by construction.

Our pricing display gates every discount claim through one fail-closed rule, on a marketplace that lives on your domain.

Request early access See the live marketplace →