Březen 2026 · 10 min čtení

Jak český řetězec potravin snížil plýtvání mlékem o 40 %

Lahve mléka na regálu v supermarketu

Regionální řetězec potravin ve středních Čechách vyhazoval každý pátý mléčný výrobek. Příčinou nebylo špatné mléko — problémem byla jednotná pravidla doplňování zásob aplikovaná na 12 prodejen s naprosto odlišnou poptávkou a rychlostí dodávek. Individuálně vypočítané objednací body pro každou prodejnu snížily plýtvání z 21 % na 12 % během šesti měsíců.

Klient

Regionální řetězec potravin provozující 12 prodejen ve středních Čechách — od frekventovaných pražských lokalit po maloměstské obchody poblíž Kutné Hory. Přibližně 200 chlazených mléčných SKU (mléko, jogurty, smetana, sýry) od tří místních družstev, s denními nebo obdenními dodávkami. Zásoby a nákup spravovány v Odoo.

Problém: Jeden tabulkový procesor pro 12 prodejen

Plýtvání mléčnými výrobky dosahovalo 18–22 % v celém řetězci. Vedoucí prodejen nastavovali objednací body kopírováním hodnot ze sdílené tabulky: min_qty=50, max_qty=100 pro mléko na všech pobočkách. Žádné rozlišení mezi pražskou prodejnou prodávající 80 kartonů denně a maloměstským obchodem prodávajícím 15.

Dodací lhůty se lišily podle lokality, ale v Odoo byla uložena jediná statická hodnota — “2 dny” — pro všechny prodejny. Nikdo neměřil skutečný poměr plýtvání k poptávce na úrovni jednotlivých prodejen. Odpad byl považován za nevyhnutelný náklad podnikání.

Krok 1: Analýza dodacích lhůt

Z Odoo jsme extrahovali 18 měsíců dat o příjmu objednávek a sestavili empirická rozdělení dodacích lhůt podle dodavatele a lokality prodejny. Stejné mlékárenské družstvo vykazovalo dramaticky odlišné vzorce dodávek v závislosti na zeměpisné poloze:

P90 dodací lhůty mléčného dodavatele podle oblasti prodejny

Pražské prodejny dostávaly čerstvé mléčné výrobky během několika hodin (P90: 0,4 dne). Prodejny podél koridoru D11 měly P90 1,4–2,2 dne. Východní prodejny u Kutné Hory dosahovaly P90 2,8–3,8 dne — až 7× pomaleji než Praha u stejného produktu od stejného družstva.

Vedoucí prodejen o ničem z toho nevěděli. V Odoo bylo “2 dny” pro všechny lokality. Pro Prahu to bylo příliš konzervativní. Pro východní prodejny příliš optimistické.

Krok 2: Rychlost poptávky na úrovni prodejny

Vypočítali jsme průměrnou denní poptávku pro každé mléčné SKU a prodejnu z 12 měsíců prodejních dat. Poptávka se pohybovala od 8 kusů/den (malá prodejna, ochucené mléko) po 120 kusů/den (velká prodejna, plnotučné mléko 1L). Přesto sdílená tabulka měla min_qty=50 pro mléko plošně — některé prodejny přezásobovala a jiným nedodávala dostatek.

Krok 3: Objednací body s omezením trvanlivosti

Standardní vzorec objednacího bodu je min_qty = avg_daily_demand × lead_time_P90. Ale u zboží podléhajícího zkáze s trvanlivostí 5–7 dní existuje tvrdý strop: nelze objednat více, než prodejna stihne prodat před vypršením data spotřeby.

Proč max_qty musí respektovat trvanlivost

Pro prodejnu prodávající 20 kartonů/den plnotučného mléka (trvanlivost 6 dní, dodací lhůta P90 2,8 dne): strop plýtvání omezuje max_qty na 64 kusů. Stará tabulka měla 100 — při každé objednávce se objednávalo o 36 kartonů více, než prodejna stihla prodat před vypršením data spotřeby.

Krok 4: Vypočítané objednací body

Vypočítali jsme objednací body pro každou prodejnu a SKU tak, aby odrážely skutečnou rychlost poptávky dané lokality, rozdělení dodacích lhůt dodavatele a omezení trvanlivosti.

Objednací body: jednotné vs. vypočítané na úrovni prodejny

Stejný produkt dostane min_qty 7 v rychlé pražské prodejně a 219 v pomalé východní prodejně — protože to odpovídá dodacím lhůtám a poptávce. Stará jednotná hodnota 50 byla špatná pro obě: příliš vysoká pro Prahu (plýtvání), příliš nízká pro východ (výpadky zásob).

Řešení

Proces doplňování zásob před a po implementaci

Optimalizované hodnoty product_min_qty a product_max_qty se zapisují přímo do objednacích bodů v Odoo prostřednictvím automatizované týdenní synchronizace. Každá prodejna má pravidla specifická pro svou lokalitu. Dodací lhůty a poptávka se přepočítávají každé pondělí z nejnovějších dat; nové objednací body se nahrají do Odoo do úterního rána. Vedoucí prodejen mohou stále zasáhnout, ale systém standardně používá vypočítané hodnoty.

Výsledky

Měsíční míra plýtvání mléčnými výrobky klesající po spuštění
Metrika Před Po Změna
Míra plýtvání mléčnými výrobky 21% 12% -40%
Výpadky zásob (mléčné/týden) 14 5,5 -60%
Průměrná hodnota zásob mléčných výrobků základ 85% -15%
Frekvence objednávek beze změny beze změny optimalizovaná množství

Při přibližně 2 mil. Kč/měsíc za nákup mléčných výrobků snížení plýtvání z 21 % na 12 % přineslo úsporu přibližně 180 000 Kč měsíčně — tedy zhruba 2,2 mil. Kč ročně.