Showing price reductions: the 30-day rule and more
A struck price or a ‘−20 %’ badge needs more than two numbers. This guide explains the 30-day rule for price reductions and the other price details a shop has to show consumers in Germany and Poland: unit price, total price including VAT and shipping costs.
Where the rules come from
The EU rule on price reductions is Article 6a of Directive 98/6/EC. Directive (EU) 2019/2161 added it, and Member States have had to apply it since 28 May 2022. Every announcement of a price reduction has to show the prior price: the lowest price the trader applied during at least 30 days before the reduction. Member States may set their own rules for goods that spoil quickly, for products on the market for less than 30 days and for reductions that grow step by step.
In Germany the rules are in the Price Indication Ordinance (PAngV), in Poland in the act on informing about the prices of goods and services (consolidated text Dz.U. 2023 item 168). The PAngV page on gesetze-im-internet.de notes a change of 19 October 2026 (BGBl. 2026 I No. 314) that is included in the text but not yet fully documented.
The lowest price of the last 30 days
Germany, § 11(1) PAngV: anyone who must state a total price has to show consumers, with every announcement of a price reduction for a good, the lowest total price applied to consumers in the last 30 days before the reduction. For a reduction that rises step by step without a break, the lowest price before the first step may be shown for the whole time (§ 11(2)). The rule does not apply to individual price reductions, or to goods that spoil quickly or expire soon if the price is cut for that reason and this is made clear (§ 11(4)).
Poland, art. 4(2): in every case of informing about a price reduction of a good or service, the lowest price of the 30 days before the reduction is shown next to the reduced price. If the product has been offered for less than 30 days, the lowest price since the start of the offer counts (para. 3). For goods that spoil quickly or have a short shelf life, the price before the first reduction is shown (para. 4). The rules also apply to advertising with a price (para. 5).
- Days 1–10Regular price 24.90 €
- Days 11–17Short promotion at 19.90 €
- Days 18–30Back to 24.90 €
- Day 31New reduction: now 17.90 €
- On the pageNext to 17.90 €: lowest price of the last 30 days 19.90 €
Keep a price history for every product. Without it, you cannot know the lowest price of the last 30 days, and nobody can check it later.
Struck prices, percentages and RRP
Both rules speak of every announcement of a price reduction. A struck price, a ‘−20 %’ badge and a ‘you save’ line can all announce one, on the product page, in category lists, in newsletters and in ads with prices. Check each place.
If the struck price is not the 30-day lowest price, say clearly what it is, and make sure that a percentage refers to a price the reader can see. The legal texts we read do not say how a comparison with a manufacturer’s recommended retail price is treated. If you use one, label it clearly and check it with an expert.
- Now 17.90 €. Lowest price of the last 30 days: 19.90 €
- The percentage refers to a price shown on the page
- 500 g for 17.90 € (35.80 € per 1 kg)
- 17.90 € incl. VAT
- Plus 4.90 € shipping, stated near the price
- Now 17.90 € instead of 29.90 €, no 30-day price
- ‘−40 %’ without saying which price it refers to
- 500 g for 17.90 €, no unit price
- 17.90 € plus VAT in a shop for consumers
- No note on shipping costs
Unit price
Germany, § 4(1) PAngV: for goods in pre-packages, open packages or sold by weight, volume, length or area, show the unit price next to the total price, unambiguously, clearly and legibly. It may be left out if it equals the total price. The unit is 1 kilogram, 1 litre, 1 cubic metre, 1 metre or 1 square metre (§ 5(1)); for loose goods 1 kg or 100 g, 1 l or 100 ml (§ 5(2)). The exceptions in § 4(3) include goods under 10 grams or 10 millilitres and some cosmetics and perfumes.
Poland, art. 4(1): the price and the unit price are shown unambiguously, without doubt and in a way that allows prices to be compared. The unit price is the price per unit of measure (art. 3(1) point 2). A regulation may list goods without a unit price; we did not read it for this guide. Example: 500 g for 17.90 € is 35.80 € per kilogram.
Total price including VAT
Germany: traders who offer goods or services to consumers, or advertise to them with prices, must state total prices (§ 3(1) PAngV). The total price includes VAT and other price components (§ 2 No. 3). If a price is split into parts, the total price must be highlighted (§ 3(3)). In distance selling, also state that the prices include VAT and other price components (§ 6(1) No. 1).
Poland: the price includes VAT and excise duty where the sale is subject to them (art. 3(2)).
Shipping costs
Germany, § 6 PAngV: in distance selling, state whether freight, delivery or shipping costs or other costs apply, and state their amount if it can reasonably be calculated in advance.
Poland: under art. 12(1) point 5 of the Consumer Rights Act, the consumer must learn the total price with taxes and the costs of transport, delivery, postal services and other costs at the latest when agreeing to a distance contract. If the amount cannot be calculated, say that these costs apply.
Checklist before a sale
- Note the lowest price of each product in the 30 days before the start.
- Show it next to every reduced price, also in lists and ads.
- Check what each percentage refers to.
- Show the unit price for goods sold by weight, volume, length or area.
- Show ‘incl. VAT’ and a note on shipping costs near the price.
- Compare the visible price with the price in your structured data. That is data quality, not a legal rule.
Work with Do4U
Price display check reads the address of a product page or HTML or text you paste. The code finds current and struck prices, discounts, unit prices, quantities, notes on VAT and shipping and the price in the structured data. Each finding comes with a quote from your page, the rule (German PAngV or the Polish act, chosen by the currency or by you) and a note on what to check. The AI is optional: it only sorts price blocks with several unmarked amounts, and only from the amounts the code found. Without AI, the tool runs as code only and is free up to a daily limit. It sees one page, not your cart, checkout or price history. So it can tell whether a 30-day price is shown, but not whether it is correct.
Do4U finds hints. You check them against your price history and decide what to change.
Sources
- EUR-Lex: Directive (EU) 2019/2161, Article 2 (inserts Article 6a into Directive 98/6/EC) (eur-lex.europa.eu)
- Germany: § 11 Price Indication Ordinance (PAngV), price reductions, German text, gesetze-im-internet.de (www.gesetze-im-internet.de)
- Germany: Price Indication Ordinance (PAngV), full text with §§ 2 to 6, German text, gesetze-im-internet.de (www.gesetze-im-internet.de)
- Poland: act of 9 May 2014 on informing about the prices of goods and services, consolidated text Dz.U. 2023 item 168, Polish text, eli.gov.pl (eli.gov.pl)
- Poland: Consumer Rights Act of 30 May 2014, consolidated text Dz.U. 2026 item 1244, Polish text (PDF), eli.gov.pl (eli.gov.pl)