Discount Pricing Rules: The 30-Day Prior Price Requirement
5 April 2026
That "Was €99, now €49" label on your product page might be illegal. Since May 2022, EU rules require that any advertised discount shows the lowest price the product was actually sold at in the previous 30 days. No more inflated "original" prices to make discounts look bigger than they are.
Where this rule comes from
The EU Omnibus Directive (2019/2161) updated several older consumer protection laws, including the Price Indication Directive. The goal was simple: stop fake discounts. Too many online shops were raising prices a week before a sale, then "discounting" back to the normal price. Customers thought they were getting a deal. They weren't.
Every EU member state had to implement this by May 28, 2022. In the Netherlands, it's part of the Wet oneerlijke handelspraktijken (unfair commercial practices law). The ACM (Authority for Consumers and Markets) enforces it.
This applies to all businesses that sell to consumers. Online shops, physical stores, marketplaces. It doesn't matter if you're a sole trader or a chain with 50 locations.
How the rule works in practice
When you advertise a price reduction, you must show a reference price. That reference price must be the lowest price you charged for the product in the 30 days before the discount started.
Here's what that looks like.
Compliant: You sold a jacket for €89 for the past two months. You want to run a sale. Your label reads: "Was €89, now €59." The €89 is the actual lowest price from the last 30 days. That's fine.
Also compliant: You sold a jacket for €89, then dropped it to €79 two weeks ago. Now you want to discount it further. Your label must read: "Was €79, now €59." The reference price is €79, because that was the lowest price in the 30-day window.
Not compliant: You sold a jacket for €79 for months. Two days before your sale, you raised the price to €99. Your label reads: "Was €99, now €59." The actual lowest price in the past 30 days was €79, not €99. This violates the Omnibus Directive.
Also not compliant: You've never sold a product at the "original" price. You list it at €120, immediately discount it to €69, and claim the customer saves €51. There's no genuine prior price. That's a misleading commercial practice.
Progressive reductions
Black Friday week is a good example. Say you start Monday with a 20% discount, Wednesday you go to 30%, and Friday you hit 40% off. Do you need to recalculate the reference price for each new reduction?
No. For progressive, uninterrupted price reductions on the same product, the reference price stays the same. It's the lowest price in the 30 days before the first reduction. So if the product was €100 before Monday's discount, that €100 stays your reference price for the entire sequence, even when you drop to 40% off on Friday.
The key word is "uninterrupted." If you end the sale and start a new one a week later, that's a new price reduction. You'll need to recalculate the reference price based on the new 30-day window, which now includes the discounted prices from the previous sale.
What's excluded
Not everything falls under this rule. There are three main exceptions.
Perishable goods. Products with a short shelf life that get marked down as the expiry date approaches. A bakery discounting bread at the end of the day doesn't need to track 30-day pricing history.
Products on the market for less than 30 days. If you launched a new item two weeks ago, there's no 30-day history to show. You can still run an introductory discount. Once the product has been available for 30 days, the regular rule kicks in.
Personalized pricing. If you show different prices to different customers based on automated profiling (which raises its own GDPR questions), the Omnibus Directive's reference price rule doesn't directly apply. But you do have to inform customers that the price was personalized.
Loyalty programs and individual negotiated discounts are also generally outside the scope of this rule. A coupon code for a specific customer isn't a "price reduction announcement" under the directive.
How the ACM enforces this in the Netherlands
The ACM has been active on pricing transparency. They've investigated online retailers for misleading discount practices and have the authority to issue fines. For unfair commercial practices, penalties can reach up to €900,000 per violation or 1% of annual turnover.
In practice, the ACM tends to start with warnings and the opportunity to correct. But repeat offenders and blatant cases of artificial price inflation get less patience. The ACM specifically listed Omnibus Directive compliance as a priority area when the law took effect in 2022.
Other EU countries have their own enforcement agencies doing the same thing. Belgium's FOD Economie, Germany's Bundeskartellamt, and France's DGCCRF have all signaled they're watching discount pricing closely.
How to implement this in your webshop
The practical challenge is tracking price history. You need to store the price of every product for at least 30 days and automatically pull the lowest price when you create a discount.
Shopify
Shopify doesn't natively track 30-day price history. You have two options:
- Use an app. Apps like "Omnibus Price" or "Prior Price" add automatic price tracking and display the correct reference price on product pages. Most cost a few euros per month.
- Manual tracking. Keep a spreadsheet of your product prices. Before applying any discount, check the lowest price from the past 30 days and enter it as the "compare at" price. This works for small catalogs but gets painful fast.
Whatever you do, don't just put the current price in the "compare at" field and drop the actual price. That's exactly the pattern the Omnibus Directive was designed to prevent.
WooCommerce
WooCommerce stores the regular price and sale price but doesn't track price changes over time by default. Options:
- Plugins. Search for "Omnibus Directive" in the WordPress plugin directory. Several free plugins add a price history log and automatically show the lowest 30-day price on the frontend.
- Custom implementation. Hook into the
woocommerce_product_set_priceaction to log price changes to a custom database table. Then display the lowest price from the last 30 days wherever you show the sale badge.
For either platform, test your implementation by changing a product's price, waiting a day, then creating a discount. Verify the displayed reference price matches the actual lowest price, not the most recent regular price.
Common mistakes to avoid
Mistake 1: Using the manufacturer's suggested retail price (MSRP) as the reference. The reference price must be the lowest price you charged. Not the MSRP, not the price on a competitor's site.
Mistake 2: Forgetting about marketplace pricing. If you sell the same product on your own site and on Bol.com, the 30-day price history applies per sales channel. The reference price on your own site is based on your own site's history.
Mistake 3: Ignoring the rule for percentage-based discounts. "20% off everything" still needs a reference price for each product. The rule applies to any announced price reduction, whether it's a fixed amount or a percentage.
Mistake 4: Assuming it only applies to "sale" events. Any communication about a price reduction triggers the rule. That includes banners, product page strikethrough prices, email campaigns and social media posts. If you're telling customers the price is lower than before, you need a valid reference price.
How this connects to your broader compliance
Price display rules are one piece of a bigger picture. Dutch webshops also need to show VAT-inclusive prices, display shipping costs upfront, and use legally compliant order buttons. If you're checking your discount pricing, it's worth reviewing the whole list.
Read our Dutch webshop compliance checklist for the full overview. And if your checkout button text is wrong, that can make orders non-binding. Check our order button requirements guide for the specifics. Don't forget that your webshop also needs your KVK and VAT number displayed correctly.
Want to see how your webshop scores on pricing rules and other compliance checks? Run a free scan and get your results in under a minute.
FAQ
Does the 30-day rule apply to services or only physical products?
The Omnibus Directive primarily targets goods. Services, digital content and digital services have different rules. However, if you sell subscriptions or digital products at a listed price and then advertise a discount, many national regulators interpret the spirit of the law as applying. The safe approach is to follow the same 30-day reference rule for any consumer-facing price reduction.
What if I give a discount through a coupon code instead of a site-wide sale?
A targeted coupon sent to specific customers typically doesn't count as a "price reduction announcement" under the directive. But if you publish the coupon code publicly, post it on social media, or make it available to anyone who visits your site, it's effectively an announced price reduction. In that case, the 30-day rule applies.
Do I need to show the reference price on product listing pages or only on the product detail page?
Anywhere you display the reduced price alongside a claim of a discount, the reference price should be visible. That includes category pages, search results within your shop, homepage banners and any other place where the customer sees a "was/now" comparison or a percentage discount. The consumer should never see a claimed discount without the reference price.
Can the ACM actually check my historical pricing?
Yes. The ACM can request your pricing records as part of an investigation. Third-party price tracking tools also archive public pricing data. If a customer or competitor files a complaint, the ACM can cross-reference your claimed discount against publicly available price history. Keeping accurate internal records protects you if questions come up.
Check your website now
Scan your website for E-Commerce issues and 30+ other checks.
Scan your website freeWebsite Guides
"Buy Now" vs "Order": Why Your Button Text Matters Legally
EU law requires specific wording on order buttons. The wrong text could make your orders non-binding. Here is what your checkout button must say.
Dutch Webshop Compliance: Complete Checklist
A full checklist of legal requirements for online shops in the Netherlands. KVK, order buttons, withdrawal rights, pricing rules and more.
EU Consumer Rights for Online Sellers: Plain-Language Guide
EU consumer protection law affects every online shop. Here are the rules you need to follow, explained without legal jargon.