Wie eine tschechische Lebensmittelkette den Milchverderb um 40 % senkte
Eine regionale Lebensmittelkette in Mittelböhmen warf jedes fünfte Milchprodukt weg. Die Ursache war nicht schlechte Milch — sondern identische Nachschubregeln für 12 Filialen mit völlig unterschiedlicher Nachfrage und Liefergeschwindigkeit. Filialspezifisch berechnete Bestellpunkte senkten den Verderb von 21 % auf 12 % innerhalb von sechs Monaten.
Der Kunde
Eine regionale Lebensmittelkette mit 12 Filialen in Mittelböhmen — von stark frequentierten Prager Standorten bis zu kleinstädtischen Geschäften bei Kutná Hora. Rund 200 gekühlte Molkerei-SKUs (Milch, Joghurt, Sahne, Käse) von drei lokalen Molkereigenossenschaften, mit täglichen oder zweitäglichen Lieferungen. Bestandsführung und Einkauf über Odoo.
Das Problem: Eine Tabelle für 12 Filialen
Der Molkereiverderb lag bei 18–22 % in der gesamten Kette. Filialleiter setzten Bestellpunkte durch Kopieren von Werten aus einer gemeinsamen Tabelle: min_qty=50, max_qty=100 für Milch an allen Standorten. Keine Unterscheidung zwischen einer Prager Filiale mit 80 Kartons/Tag und einem Kleinstadtgeschäft mit 15.
Die Lieferzeiten variierten je nach Standort, aber Odoo enthielt einen einzigen statischen Wert — „2 Tage“ — für alle Filialen. Niemand maß das tatsächliche Verhältnis von Verderb zu Nachfrage pro Filiale. Abfall galt als unvermeidliche Geschäftskosten.
Schritt 1: Lieferzeit-Analyse
Wir extrahierten 18 Monate Wareneingangs-Daten aus Odoo und erstellten empirische Lieferzeitverteilungen pro Lieferant und Filialstandort. Dieselbe Molkereigenossenschaft zeigte je nach Geografie dramatisch unterschiedliche Liefermuster:
Prager Filialen erhielten frische Milchprodukte innerhalb weniger Stunden (P90: 0,4 Tage). Filialen entlang des D11-Korridors hatten P90 von 1,4–2,2 Tagen. Östliche Filialen bei Kutná Hora erreichten P90 von 2,8–3,8 Tagen — bis zu 7× langsamer als Prag für dasselbe Produkt derselben Genossenschaft.
Die Filialleiter wussten nichts davon. In Odoo stand „2 Tage“ für alle Standorte. Für Prag war das zu konservativ. Für die östlichen Filialen zu optimistisch.
Schritt 2: Nachfragerate pro Filiale
Wir berechneten die durchschnittliche Tagesnachfrage pro Molkerei-SKU und Filiale aus 12 Monaten Verkaufsdaten. Die Nachfrage reichte von 8 Einheiten/Tag (kleine Filiale, Fruchtmilch) bis 120 Einheiten/Tag (große Filiale, Vollmilch 1L). Dennoch hatte die gemeinsame Tabelle min_qty=50 für Milch pauschal — einige Filialen wurden überbevorratet, andere unterversorgt.
Schritt 3: Haltbarkeitsbeschränkte Bestellpunkte
Die Standard-Bestellpunktformel lautet min_qty = avg_daily_demand × lead_time_P90. Aber bei verderblichen Waren mit 5–7 Tagen Haltbarkeit gibt es eine harte Obergrenze: Man kann nicht mehr bestellen, als die Filiale vor dem Verfallsdatum verkaufen kann.
Für eine Filiale, die 20 Kartons/Tag Vollmilch verkauft (Haltbarkeit 6 Tage, Lieferzeit P90 2,8 Tage): Die Verderb-Obergrenze begrenzt max_qty auf 64 Einheiten. Die alte Tabelle hatte 100 — bei jeder Bestellung 36 Kartons mehr als die Filiale vor dem Verfallsdatum verkaufen konnte.
Schritt 4: Berechnete Bestellpunkte
Wir berechneten Bestellpunkte pro Filiale und SKU, die die tatsächliche Nachfragerate des Standorts, die Lieferzeitverteilung des Lieferanten und die Haltbarkeitsbeschränkung widerspiegeln.
Dasselbe Produkt erhält eine min_qty von 7 in einer schnellen Prager Filiale und 219 in einer langsamen östlichen Filiale — weil Lieferzeiten und Nachfrage es rechtfertigen. Der alte einheitliche Wert von 50 war für beide falsch: zu hoch für Prag (Verderb), zu niedrig für den Osten (Fehlbestände).
Die Lösung
Optimierte product_min_qty- und product_max_qty-Werte werden direkt in die Odoo-Bestellpunkte über eine automatisierte wöchentliche Synchronisation geschrieben. Jede Filiale erhält standortspezifische Regeln. Lieferzeiten und Nachfrage werden jeden Montag aus den neuesten Daten neu berechnet; neue Bestellpunkte werden bis Dienstagmorgen in Odoo übertragen. Filialleiter können weiterhin manuell eingreifen, aber das System verwendet standardmäßig die berechneten Werte.
Ergebnisse
| Kennzahl | Vorher | Nachher | Veränderung |
|---|---|---|---|
| Molkerei-Verderbrate | 21% | 12% | -40% |
| Fehlbestände (Molkerei/Woche) | 14 | 5,5 | -60% |
| Durchschnittlicher Molkerei-Bestandswert | Basis | 85% | -15% |
| Bestellhäufigkeit | unverändert | unverändert | Mengen optimiert |
Bei rund 2 Mio. Kč/Monat an Molkereieinkäufen sparte die Senkung des Verderbs von 21 % auf 12 % etwa 180.000 Kč monatlich — rund 2,2 Mio. Kč jährlich.