30-day lowest price
What the law requires when you announce a discount, and how your store shows the 30-day lowest price automatically from price history.
When you announce a price reduction on goods to consumers — a struck-through price, -30 %, SALE — the law requires you to also state the lowest price the product was marketed at during the 30 days before the reduction. Putiikkipalvelu records every price change automatically and shows the required reference price on your storefront without you calculating or logging anything. This article explains what the requirement means in practice and how the feature works.
What the law requires
The requirement comes from the Finnish Consumer Protection Act, chapter 2 section 11 (the EU Omnibus directive). It is enforced by the Finnish Competition and Consumer Authority (KKV), whose guideline Alennus- ja edullisuusilmaisut markkinoinnissa is the practical authority on the subject. The main points:
- Applies to consumer sales of goods. Services, event tickets and digital content are not covered, nor are sales to business customers.
- Triggered by announcing a reduction. Simply lowering a price without a discount marker is not an announcement. A struck-through regular price, a percentage or the word sale is.
- The reference is the lowest price the product was marketed at during the 30 days before the reduction started. The listed price counts, whether or not anything was sold at it. Earlier sale prices count too — if the product was on sale for 70 euros two weeks ago and you now reduce its 100-euro regular price to 80, the reference is 70 euros, not 100.
- The reduction is measured against the reference. Per the KKV guideline (EU Court of Justice C-330/23) the announced percentage or amount must be calculated from the 30-day lowest price, not the regular price. In the example above 80 euros is not a reduction at all, because the reference is 70 euros. The storefront calculates the percentage from the reference when one exists, and shows no percentage if the sale price is not below it.
- The lowest price must be shown where the reduction is announced — clearly visible online, not behind a link or a tooltip.
- Buy X, pay Y campaigns and discount codes targeted at a specific customer group are not reduction announcements. A discount code advertised to everyone on your front page is.
Check edge cases with the KKV
This article describes how Putiikkipalvelu implements the requirement. It is not legal advice. If you are unsure whether the rule applies to your products or campaign, the KKV guideline and its business advisory service are the right place to ask.
How it works in your store
For product, variation and category discounts you don't need to do anything. Three things happen automatically:
- Price history is recorded. Every change to a product's or variation's price, sale price or sale schedule is logged — whether you make it on the product page, through category sales or by CSV import.
- The reference price is calculated. When you set a discount, the system looks up the lowest price in the history for the 30 days before the sale starts. For a scheduled sale the calculation uses the start date.
- The storefront shows it. While the sale is active, product cards and the product page show a line under the discounted price: Alin hinta 30 pv with the reference price. Each variation has its own reference price, and the product page switches it with the selected variation.
The automatic reference covers product, variation and category sale prices. A discount code advertised to all customers — on your front page, say — is a reduction announcement under the KKV guideline, and you state its reference price yourself in that advertisement.
Stepped discounts
If you deepen the same discount during a campaign — say -20 % first and -30 % two weeks later — the reference stays at the price before the first step, as long as the continuous campaign lasts at most 60 days. After that, per the KKV guideline, the main rule applies and the reference becomes the lowest price during the 30 days before the latest step. The system switches automatically.
New products and less than 30 days of history
If a product has no 30 days of price history before the sale starts, no reference price can be calculated and the storefront does not show one. The discount then appears without the reference line, and no reference will appear for that same sale later either: the reference window is fixed to the moment the sale started, and changing the sale price or percentage continues the same sale period. The product form warns you about this when you pick a discount for a product whose history is too short, and tells you the earliest date a sale can start with a reference.
According to the KKV guideline, a product that has been on sale for less than 30 days may not be marketed as discounted at all, because the required reference price does not exist. The recommendation is to sell a new product at its regular price for at least 30 days before the first discount.
Discounts set before the feature was enabled
Price history starts from the moment the feature was enabled for your store. If a product was already discounted at that point, the prices before the sale started are not on record, and no reference price can be shown for that sale — not later either, because merely changing the sale price continues the same sale period. Only a new sale gets a reference: remove the sale, save, and set it again no earlier than 30 days after the history started. Note that the previous sale price then becomes the reference, and the new sale price must be below it to count as a reduction. The same applies to products imported with a store transfer while on sale.
Viewing price history
Every product has its own price history page. You can reach it two ways:
- From the Products list, the ⋯ menu on the row → Price history
- From the Price history button at the bottom of the product edit page
The page shows, for the product and for each variation separately:
- What the storefront shows right now — the reference price and the period it was calculated from, or the reason no reference is shown.
- All price observations — time, price, sale price and sale period, newest first.
Deleting a wrong observation
If you saved a wrong price by mistake — say 10.00 € when you meant 100.00 € — and corrected it right away, that wrong price is still in the history and would become the product's 30-day lowest price. You can delete such an observation with the trash icon at the end of the row. Deletion asks for confirmation.
Delete only mistakes
Price history is your evidence of what your storefront based its reference prices on. Only delete an observation that is genuinely wrong. You are responsible for the correctness of the price shown. The newest observation — the product's current price — cannot be deleted.
Hidden products count too
Price history accumulates while a product is hidden from the store as well. If you keep a draft hidden at a lower price and publish it later at a higher one, the lower price can be the 30-day lowest price. Set the draft's price to its final value before publishing.
Turning the display off
If the rule does not apply to your store — you sell exclusively to businesses, or only services or tickets — you can turn off the reference price display under Settings → Store settings → General → Show the 30-day lowest price on discounted products. The setting is on by default.
Price history is recorded regardless of the setting, so if you turn the display on later, reference prices are available immediately.
Tips
- Keep the price stable for 30 days before a campaign. If the product was on sale just before a new campaign, the previous sale price is the reference, and the new sale price must be below it — otherwise it is not a reduction and the storefront shows no discount percentage.
- Use scheduling. When you schedule a sale to start later, the reference is calculated correctly from the start date even if you change the regular price before then.
- Plan stepped discounts within 60 days. A continuous campaign of at most 60 days keeps the price before the first step as its reference.
Related topics
- Creating a product — setting a discount on a single product
- Category sales — discounting a whole category
- Campaigns — Buy X, pay Y and discount codes
- Store settings — the display setting