„Vorher 89,99, jetzt 59,99” ist eine der ältesten Behauptungen im Einzelhandel und eine der am leichtesten zu fälschenden: den Preis für ein paar Wochen anheben, dann wieder auf das alte Niveau „senken”. Verbraucherorganisationen, Journalisten, Aufsichtsbehörden und die eigenen Compliance-Teams der Händler überwachen alle Preise, um dies aufzudecken. Ihre Befunde zählen nur, wenn sie standhalten, wenn der Händler widerspricht, und Händler widersprechen tatsächlich.
Dieser Leitfaden behandelt Preisüberwachung zur Rechenschaftslegung statt zur Preisstrategie: was die Regeln zu Rabattangaben besagen, wie man Preisnachweise sammelt, die einer Prüfung standhalten, und Code, der eine Rabattangabe gegen die zugrunde liegende Preishistorie testet.
Dies sind allgemeine Informationen, keine Rechtsberatung. Die Regeln unterscheiden sich je nach Land, und wer Vorwürfe veröffentlicht oder eine Beschwerde einreicht, sollte zuvor rechtlichen Rat einholen.
Was die Regeln zu Rabattangaben besagen
Die meisten Rechtsordnungen behandeln einen irreführenden Referenzpreis als irreführende Geschäftspraxis. Die Europäische Union geht weiter und legt eine spezifische, überprüfbare Regel fest.
- Europäische Union. Seit dem 28. Mai 2022 muss jede Ankündigung einer Preissenkung den vorherigen Preis zeigen, definiert als den niedrigsten Preis, den der Händler in einem Zeitraum von mindestens 30 Tagen vor der Senkung angewendet hat. Mitgliedstaaten können abweichende Regeln für schnell verderbliche Waren, für Produkte, die weniger als 30 Tage im Verkauf sind, und für progressiv steigende Rabatte festlegen. Im September 2024 entschied der Gerichtshof der Europäischen Union in einem Fall mit dem Händler Aldi Süd, dass auch eine als Prozentsatz oder als Werbe-„Preishighlight” beworbene Senkung an diesem 30-Tage-Tiefstpreis gemessen werden muss, nicht am Preis unmittelbar vor dem Verkauf.
- Vereinigtes Königreich. Irreführende Preisvergleiche gelten als unlautere Geschäftspraxis, und seit April 2025 kann die Competition and Markets Authority Verstöße gegen das Verbraucherrecht selbst feststellen und Unternehmen direkt mit Bußgeldern belegen, ohne zuvor ein Gericht anzurufen.
- Vereinigte Staaten. Die Guides Against Deceptive Pricing der Federal Trade Commission behandeln einen früheren Preis als legitime Vergleichsgrundlage, wenn er der tatsächliche, redliche Preis ist, zu dem der Artikel über einen angemessen langen Zeitraum regelmäßig öffentlich angeboten wurde.
Die EU-Regel ist für die Überwachung am nützlichsten, weil sie die Frage „Ist dieser Rabatt echt?” in eine Rechenaufgabe verwandelt: den niedrigsten Preis in den 30 Tagen vor dem Verkauf finden und vergleichen. Das ist nur mit einer Preishistorie möglich, weshalb die Überwachung deutlich vor dem zu prüfenden Verkauf beginnen muss.
Was Preisnachweise belastbar macht
Ein Händler, der mit einem Befund konfrontiert wird, stellt zuerst die Daten infrage, bevor er die Schlussfolgerung infrage stellt. Nachweise halten stand, wenn sie die naheliegenden Einwände im Voraus beantworten.
| Der Einwand | Was ihn beantwortet |
|---|---|
| „Eure Daten sind falsch.” | Die Rohseite, erfasst mit URL, UTC-Zeitstempel und Hash, sodass der Preis aus dem Original neu gelesen werden kann |
| „Ihr habt Tage verpasst.” | Tägliche Beobachtungen, mit berichteter Abdeckung je Zeitfenster, und keine Feststellung bei zu geringer Abdeckung |
| „Das war ein anderes Produkt.” | Eine stabile Produktkennung (SKU, EAN oder die eigene ID des Händlers), erfasst bei jeder Beobachtung |
| „Das war ein Preis für eine andere Region.” | Der Standort, das Geschäft oder die Liefer-Postleitzahl, auf die sich der Preis bezog, erfasst und konstant gehalten |
| „Das war ein Mitglieder- oder App-exklusiver Preis.” | Ausgeloggte Erfassung des öffentlichen Preises, mit erfassten Bedingungen, wie sie auf der Seite angezeigt wurden |
| „Ihr habt die schlimmsten Beispiele herausgepickt.” | Eine veröffentlichte Methode und eine vor der Analyse festgelegte Stichprobe, mit Berichterstattung aller Ergebnisse, nicht nur der schlechten |
Tägliche Erfassung ist hier wichtiger als bei den meisten Überwachungen. Untersuchungen zu Online-Preisen zeigen, dass wöchentliche Stichproben die meisten regulären Preisänderungen bei großen Händlern erfassen, ein gefälschter Referenzpreis aber innerhalb einer einzigen Woche liegen kann. Unsere Studie zu wie schnell sich Online-Preise ändern behandelt die Taktung im Detail. Die Erfassungsseite, von Screenshots bis Hashing und Zeitstempeln, folgt derselben Disziplin wie der Aufbau gerichtsfester Nachweise aus Online-Angeboten.
Eine Rabattangabe testen
Die folgende Funktion nimmt die tägliche Preishistorie eines Produkts und eine angekündigte Senkung und prüft sie so, wie es die EU-Regel vorsieht. Sie verweigert ein Urteil, wenn zu viele Tage fehlen, und protokolliert die Abdeckung, damit ein Leser sehen kann, wie vollständig der Nachweis war. Eine zweite Funktion speichert jede Beobachtung mit einem Zeitstempel und einem Hash der Rohseite.
import hashlib
from datetime import datetime, timedelta, timezone
def evidence_record(url, raw_body, price, currency):
"""One observation, stored so that anyone can later check what was seen and when."""
return {
"url": url,
"captured_at": datetime.now(timezone.utc).isoformat(timespec="seconds"),
"sha256": hashlib.sha256(raw_body).hexdigest(),
"price": price,
"currency": currency,
}
def lowest_prior_price(history, start, days=30, min_coverage=0.8):
"""Lowest observed price in the `days` before `start`, if we watched closely enough.
history: {date: price} from daily observations.
Returns (price, coverage); price is None when too many days are missing to say.
"""
window = [start - timedelta(days=d) for d in range(1, days + 1)]
seen = [history[d] for d in window if d in history]
coverage = len(seen) / days
if coverage < min_coverage:
return None, round(coverage, 2)
return min(seen), round(coverage, 2)
def check_discount(history, start, sale_price, shown_prior=None, shown_percent=None):
"""Compare an announced reduction with the lowest price in the 30 days before it."""
prior, coverage = lowest_prior_price(history, start)
result = {"start": start.isoformat(), "sale_price": sale_price, "lowest_30d": prior,
"coverage": coverage, "findings": []}
if prior is None:
result["findings"].append("not enough observations before the sale to judge")
return result
real_percent = round(100 * (prior - sale_price) / prior, 1)
result["real_percent"] = real_percent
if sale_price >= prior:
result["findings"].append("no real reduction: the sale price is not below the 30-day low")
if shown_prior is not None and shown_prior > prior:
result["findings"].append(f"shown prior price {shown_prior} is above the 30-day low {prior}")
if shown_percent is not None and shown_percent > real_percent + 0.5:
result["findings"].append(f"claims {shown_percent}% off, but it is {real_percent}% off the 30-day low")
return result
Hier sind drei beispielhafte Angebote am selben Verkaufstag (erfundene Historien, keine echten Händler):
from datetime import date, timedelta
from discounts import check_discount
sale = date(2026, 11, 27)
def daily(prices_before_sale):
"""Daily observations for the days before the sale, oldest first."""
n = len(prices_before_sale)
return {sale - timedelta(days=n - i): p for i, p in enumerate(prices_before_sale)}
offers = {
"kettle": (daily([49.99] * 40), 39.99, 49.99, 20),
"blender": (daily([59.99] * 25 + [89.99] * 15), 59.99, 89.99, 33),
"toaster": (daily([34.99] * 30 + [29.99] * 10), 27.99, 34.99, 20),
}
for name, (history, price, shown_prior, shown_percent) in offers.items():
result = check_discount(history, sale, price, shown_prior, shown_percent)
print(name, result["lowest_30d"], f"{result['real_percent']}%", result["findings"] or "ok")
kettle 49.99 20.0% ok
blender 59.99 0.0% ['no real reduction: the sale price is not below the 30-day low', 'shown prior price 89.99 is above the 30-day low 59.99', 'claims 33% off, but it is 0.0% off the 30-day low']
toaster 29.99 6.7% ['shown prior price 34.99 is above the 30-day low 29.99', 'claims 20% off, but it is 6.7% off the 30-day low']
- Der Wasserkocher lag die gesamte Periode bei 49.99 und wird nun für 39.99 angeboten. Die Angabe von 20% trifft zu.
- Der Mixer lag die meiste Zeit bei 59.99, stieg in den letzten 15 Tagen auf 89.99 und wird nun mit einer Angabe von 33% Rabatt auf 59.99 „reduziert”. Gegenüber dem 30-Tage-Tiefstpreis ist er überhaupt nicht reduziert. Dies ist das klassische Muster.
- Der Toaster zeigt eine echte Senkung, aber eine kleinere als angegeben: Er lag bereits in den zehn Tagen vor dem Verkauf bei 29.99, sodass 27.99 einer Senkung von 6.7% entspricht, nicht 20%.
Der Schwellenwert von 80% Abdeckung ist eine Ermessensentscheidung. Legen Sie ihn vor Beginn fest, wenden Sie ihn auf jedes Produkt an und berichten Sie ihn zusammen mit den Ergebnissen.
Durchführung eines Überwachungsprojekts
- Die Stichprobe zuerst festlegen. Wählen Sie Händler, Kategorien und Produkte vor der Verkaufssaison aus und dokumentieren Sie, warum. Eine Stichprobe, die nach Sichtung der Preise ausgewählt wird, lädt zum Vorwurf des Rosinenpickens ein.
- Früh beginnen. Der EU-Test benötigt mindestens 30 Tage Historie vor dem Verkauf. Beginnen Sie sechs Wochen im Voraus, um Lücken auszugleichen.
- Den öffentlichen Preis erfassen. Ausgeloggt, von einem festen Standort aus, über die eigenen Produktseiten des Händlers. Erfassen Sie den Standort, von dem Sie erfasst haben; Preise und Aktionen sind oft regional.
- Alles erfassen. Bewahren Sie die Rohseite, den geparsten Preis und den Nachweisdatensatz für jede Beobachtung auf. Speicherplatz ist billig; ein fehlender Tag ist nicht wiederherstellbar.
- Prüfen vor der Veröffentlichung. Lesen Sie markierte Preise von Hand aus den Rohseiten nach. Viele vermeintliche Verstöße erweisen sich als Parsing-Fehler, eine andere Variante oder ein Bundle.
- Dem Händler Gelegenheit zur Stellungnahme geben. Journalisten und Verbraucherorganisationen legen Befunde meist dem Händler vor, bevor sie veröffentlichen. Antworten offenbaren manchmal eine legitime Erklärung, etwa einen regionalen Preis, den Sie nicht gesehen haben.
- Die Methode veröffentlichen. Berichten Sie Stichprobe, Daten, Taktung, Abdeckungsschwelle und die vollständigen Ergebnisse.
Verantwortungsvolle Erfassung
Überwachung im öffentlichen Interesse ist dennoch Datenerfassung, und dieselben Grundsätze gelten. Erfassen Sie öffentliche Preise in moderatem Tempo, von Produktseiten, die ein Käufer öffnen könnte, ohne sich einzuloggen. Halten Sie personenbezogene Daten vollständig aus dem Datensatz heraus: Preisnachweise brauchen Produkte und Preise, keine Rezensenten oder Kunden. Unsere Best Practices für Web Scraping behandeln den Rest.
Wo Preise je nach Land variieren, erfassen Sie innerhalb jedes Marktes, damit Sie den Preis sehen, den lokale Käufer sehen. Residential Proxies mit Länder-Targeting sind der übliche Weg, dies im großen Maßstab zu tun, und den Standort für jeden Markt konstant zu halten ist ebenso wichtig wie die Taktung.
FAQ
Was ist die 30-Tage-Regel für Preissenkungen?
In der Europäischen Union muss eine Ankündigung einer Preissenkung den vorherigen Preis zeigen, der der niedrigste Preis ist, den der Händler während mindestens der 30 Tage vor der Senkung angewendet hat. Der Gerichtshof der Europäischen Union bestätigte 2024, dass prozentuale Senkungen ausgehend von diesem Preis berechnet werden müssen.
Wie kann ich erkennen, ob ein Rabatt gefälscht ist?
Verfolgen Sie den Preis des Produkts täglich für mindestens 30 Tage vor dem Verkauf. Liegt der Verkaufspreis nicht unter dem niedrigsten Preis dieser Periode, oder ist der angegebene Prozentsatz größer als die tatsächliche Senkung gegenüber diesem Tiefstpreis, ist die Rabattangabe nach EU-Recht wahrscheinlich irreführend.
Wie lange muss ich Preise vor einem Verkauf überwachen?
Mindestens 30 Tage für den EU-Test, und in der Praxis etwa sechs Wochen, damit ein paar verpasste Tage das Zeitfenster nicht unvollständig machen.
Können Preisüberwachungsnachweise für eine Beschwerde verwendet werden?
Sie können eine Beschwerde unterstützen, wenn sie gut dokumentiert sind: Rohseiten, Zeitstempel, Produktkennungen, der Standort, auf den sich der Preis bezog, und eine veröffentlichte Methode. Holen Sie rechtlichen Rat ein, bevor Sie eine Beschwerde einreichen oder Vorwürfe veröffentlichen.
Fazit
Gefälschte Rabatte sind leicht zu erstellen und mit den richtigen Daten leicht zu überprüfen. Die 30-Tage-Regel der EU verwandelt eine Rabattangabe in einen Vergleich gegen eine Preishistorie, weshalb die Überwachung deutlich vor dem Verkauf beginnen muss. Erfassen Sie täglich, von einem festen Standort, ausgeloggt, und bewahren Sie die Rohnachweise für jede Beobachtung auf. Verweigern Sie ein Urteil, wo die Datenlage dünn ist, prüfen Sie jeden Befund von Hand und veröffentlichen Sie die Methode. So gesammelte Nachweise sind schwer von der Hand zu weisen.
Quellen und Verweise
- Richtlinie (EU) 2019/2161, zur Änderung unter anderem der Preisangabenrichtlinie 98/6/EG.
- Gerichtshof der Europäischen Union, Pressemitteilung zur Rechtssache C-330/23, Aldi Süd, 26. September 2024.
- U.S. Federal Trade Commission, Guides Against Deceptive Pricing, 16 CFR Part 233.