marql

Zilele cu raftul gol nu înseamnă cerere zero: cum distorsionează rupturile de stoc prognoza unui lanț de magazine

Casa de marcat înregistrează ce s-a vândut, nu ce s-a cerut. Prognozele antrenate pe vânzările din zilele cu ruptură de stoc învață raftul, nu clientul, iar următoarea comandă face ca raftul să se golească și mai devreme.

Idei principale

  • Vânzările înregistrate sunt minimul dintre cerere și stocul de pe raft; în ziua în care raftul se golește, restul cererii nu lasă nicio urmă.
  • Prognozele antrenate pe astfel de vânzări subestimează cererea, iar eroarea e cea mai mare la categoriile de produse proaspete, care se epuizează cel mai des.
  • Eroarea se autoalimentează: o prognoză mai mică înseamnă o comandă mai mică, o ruptură de stoc mai devreme și o înregistrare și mai mică.
  • Managerii de magazin fac aceeași greșeală de mână când reduc o comandă după o ruptură de stoc.
  • Tratează zilele cu raftul gol ca date lipsă sau ca prag minim și verifică dacă stocul scriptic din spatele marcajului este corect.

Casa de marcat înregistrează ce s-a vândut, nu ce s-a cerut. Când iaurtul se termină la trei după-amiaza, înregistrarea zilei se oprește la cât era pe raft, iar clienții care au venit seara nu lasă nimic în urmă. Statisticienii numesc astfel de date cenzurate. Cea mai mare parte a aprovizionării din lanțurile de magazine se bazează pe ele, iar eroarea pe care o introduc nu rămâne pe loc.

1. Vânzările sunt cererea plafonată de stoc

Notează cererea zilei cu D și stocul disponibil cu I. Casa de marcat vede y = min(D, I): toată cererea într-o zi în care raftul rezistă și exact stocul într-o zi în care nu rezistă. Partea pierdută, D − y, nu este înregistrată niciodată. O medie a vânzărilor pe 28 de zile amestecă deci două tipuri de zile, iar zilele cu ruptură de stoc o trag în jos. La fel se întâmplă cu variabilitatea vânzărilor, celălalt element din calculul stocului de siguranță. Primul pas este să găsești aceste zile; ghidul despre rupturile de stoc arată cum le identifici în datele de vânzări și stocuri.

2. Cât ascunde o singură zi

Cea mai clară măsurătoare publică vine din FreshRetailNet-50K, un set de date publicat în 2025 de retailerul alimentar online chinez Dingdong: vânzările orare a 863 de produse perisabile în 898 de locații din 18 orașe, cu fiecare oră marcată atunci când produsul lipsea din stoc1. Locațiile sunt mici depozite de produse proaspete care livrează în 30 de minute, pe care lucrarea le numește magazine. După reaprovizionarea de la 6 dimineața, rupturile de stoc au coborât sub 2%; de acolo au crescut constant până la 26% la ora 20.

La vânzare la 06:00, după reaprovizionare98Încă la vânzare la 20:0074

Din fiecare 100 de produse listate de o locație, rotunjit din ratele orare de ruptură de stoc din FreshRetailNet-50K.

Un produs care se epuizează după-amiaza are totuși vânzări în ziua respectivă, așa că un raport zilnic îl socotește ca fiind în stoc. Înregistrarea lui e mai mică exact cu cât s-ar fi vândut seara. Pe întregul set de date, recuperarea cererii ascunse a eliminat o subestimare sistematică de 7,37%1. Un studiu din 2026 pe aceleași date a defalcat cenzurarea pe categorii2:

Legume cu frunzeOre-magazin fără stoc31,2%Eroarea prognozei antrenate pe vânzări42,8%Eroarea prognozei care ține cont de cenzurare38,9%Reducerea risipei în simulare4,7 puncte
Pește și fructe de mareOre-magazin fără stoc27,6%Eroarea prognozei antrenate pe vânzări41,5%Eroarea prognozei care ține cont de cenzurare38,0%Reducerea risipei în simulare4,2 puncte
FructeOre-magazin fără stoc21,4%Eroarea prognozei antrenate pe vânzări39,4%Eroarea prognozei care ține cont de cenzurare36,9%Reducerea risipei în simulare3,4 puncte
CarneOre-magazin fără stoc19,8%Eroarea prognozei antrenate pe vânzări38,3%Eroarea prognozei care ține cont de cenzurare36,2%Reducerea risipei în simulare3,0 puncte
RădăcinoaseOre-magazin fără stoc17,3%Eroarea prognozei antrenate pe vânzări37,6%Eroarea prognozei care ține cont de cenzurare35,8%Reducerea risipei în simulare2,6 puncte
LactateOre-magazin fără stoc8,9%Eroarea prognozei antrenate pe vânzări35,2%Eroarea prognozei care ține cont de cenzurare34,4%Reducerea risipei în simulare1,4 puncte
Yin, Zheng și Kong (2026), pe FreshRetailNet-50K. Eroarea prognozei este eroarea procentuală absolută ponderată (WAPE); reducerea risipei provine dintr-o simulare de aprovizionare.

Tiparul este monoton: cu cât o categorie rămâne mai des fără stoc, cu atât greșește mai mult o prognoză antrenată pe vânzări și cu atât recuperează mai mult una care ține cont de cenzurare. Lactatele, cu termen de valabilitate lung și puține ore cu raftul gol, abia se mișcă.

3. Modelul învață raftul

Orice model căruia i se cere să reproducă vânzările va reproduce odată cu ele și plafonul. Yin, Zheng și Kong o spun direct: „Orice model antrenat să reproducă vânzările subestimează cererea cu aproximativ opt procente”2. Când au ascuns o parte tot mai mare din orele de vârf, de la o zecime la jumătate, eroarea sistematică a unui model performant antrenat pe vânzări a crescut de la −4,2% la −21,1%. Modelul lor tratează o oră cu ruptură de stoc ca pe un prag minim, nu ca pe cererea reală: cererea a fost cel puțin cât s-a vândut. În simularea lor, comenzile făcute pe baza lui au redus risipa modelată de la 9,8% la 6,4%, în timp ce ponderea cererii servite a crescut de la 92,9% la 94,7%2. Mai puțină risipă și disponibilitate mai bună în același timp: așa arată corectarea unei erori sistematice. Un model care doar ar fi comandat mai mult ar fi câștigat la una și ar fi pierdut la cealaltă.

4. Spirala

În timp, eroarea crește, pentru că prognoza stabilește următoarea comandă, iar comanda stabilește următoarea înregistrare:

  1. Raftul se golește după-amiazaVânzările se opresc la cât era pe el

  2. Ziua intră în istoric ca o zi slabăCererea de seară lipsește din ea

  3. Prognoza învață cifra mai mică

  4. Următoarea comandă e mai mică

  5. Raftul se golește mai devremeiar înregistrarea scade din nou

Spirala descendentă a unei prognoze antrenate pe vânzări cenzurate.

Pedregal, Trapero și Holgado de Frutos au testat acest mecanism pe seria unui produs din setul de date M5 cu vânzări Walmart, cenzurând-o la stocul pe care l-ar fi avut o politică de comandă3. Cu o țintă de 70%, o prognoză standard prin netezire exponențială a urmărit cererea timp de cinci săptămâni, până la primele rupturi de stoc; după o săptămână proastă, „ETS nu își mai revine niciodată după acea prognoză proastă”, pentru că fiecare comandă prea mică producea următoarea înregistrare prea mică. Varianta lor Tobit, care citește o zi cu stocul epuizat ca pe o limită inferioară, și-a păstrat cursul. La o țintă de 80% din ciclurile de comandă fără ruptură de stoc:

Netezire exponențială standard

Netezire exponențială Tobit

Aceeași serie, aceeași țintă

Eroarea medie a prognozei, unități pe zi
−42,3
−6,6
Cicluri fără ruptură de stoc, realizate
69,4%
85,1%
Vânzări pierdute pe durata testului, unități
10.817
4.349
Pedregal, Trapero și Holgado de Frutos, versiunea preprint (2024) a lucrării din 2025.

Și oamenii fac la fel. Într-un lanț de supermarketuri premium în care managerii de magazin puteau modifica propunerile de comandă ale sistemului pentru produsele perisabile, un studiu din 2026 a constatat că, după o ruptură de stoc, managerii reduceau mai des propunerea, ca și cum raftul gol ar fi arătat că produsul se vinde mai puțin, iar aceste reduceri făceau următoarea ruptură de stoc mai probabilă4. Blocarea modificărilor în minus făcute după o ruptură de stoc a redus astfel de rupturi autoprovocate, cu un cost rezonabil în stocuri4.

5. Când marcajul însuși e greșit

Ca să vezi un raft gol în date, depinzi de stocul scriptic, iar acesta poate greși exact în direcția care îl ascunde. Când sistemul arată unități pe care raftul nu le are, vânzările se opresc, nu se declanșează nicio comandă, iar ziua arată ca o zi fără cerere, nu ca o ruptură de stoc. Într-un studiu pe aproximativ 24.000 de produse din 11 magazine ale unui mare retailer alimentar european, un inventar complet a crescut vânzările la nivelul întregului magazin cu 11%, iar toată această creștere a venit din produsele al căror stoc scriptic arătase mai mult decât era pe raft5. La aceste produse, efectul a fost de 2,67 ori media magazinului. Cenzurarea și erorile de stoc scriptic sunt aceeași problemă văzută din două părți: amândouă transformă stocul care lipsește în cerere care pare să lipsească.

6. Ce faci cu zilele cu raftul gol

  1. Marchează fiecare zi magazin-produs încheiată fără stoc și fiecare serie de vânzări zero în care stocul scriptic încă arată marfă.
  2. Exclude zilele marcate din media și variabilitatea vânzărilor sau tratează-le ca prag minim, așa cum fac Tobit și modelele similare. Niciodată ca pe o zi cu cerere zero sau mică.
  3. La produsele proaspete, păstrează ora la care s-a golit raftul. O zi în care stocul s-a terminat la 14:00 a pierdut mult mai mult decât una în care s-a terminat la 20:00.
  4. Nu reduce o comandă pentru că vânzările de săptămâna trecută au fost mici, dacă raftul a stat gol o parte din timp.
  5. Inventariază produsele care apar cu stoc, dar nu se mai vând, ca să te poți baza pe marcaje.

Media corectată intră apoi, ca de obicei, în calculul punctului de reaprovizionare și al stocului de siguranță.

7. Limite

FreshRetailNet-50K provine din locațiile de livrare ale unui retailer alimentar online din China, nu din magazine fizice, iar lucrarea este un preprint. Tabelul pe categorii și cifrele despre risipă provin din simulări pe aceste date, cu cererea reconstruită pe baza unor ipoteze. Cifrele despre spirală vin din preprintul lucrării publicate și se bazează pe o singură serie de produs. Studiul despre manageri este citat după rezumat, iar studiul despre inventar vine de la un singur retailer. Niciunul nu măsoară direct vânzările pierdute ale unui lanț de magazine european, lucru pe care nicio casă de marcat nu îl poate face.

Cum tratează marql aceste zile

În Retail-Bench, simularea deschisă construită de marql pentru a testa politici de aprovizionare, fiecare estimator citește o zi încheiată cu raftul gol la nivelul zilelor care nu s-au încheiat așa, fie că e formula din manuale, regula aplicată manual sau motorul marql6. Simularea cunoaște cererea reală din spatele fiecărei vânzări, așa că poate măsura cât costă rafturile goale, lucru pe care un lanț real îl poate doar estima.

  1. Wang, Y., Gu, J., Long, L. et al. (2025). FreshRetailNet-50K: a stockout-annotated censored demand dataset for latent demand recovery and forecasting in fresh retail. arXiv:2505.16319, preprint. arxiv.org
  2. Yin, C., Zheng, Y. and Kong, Z. (2026). Demand hidden by stockouts: censored demand recovery and green waste-reduction forecasting for sustainable fresh-food consumption under emerging-market urbanization. Sustainability, 18(15), 7642. doi.org
  3. Pedregal, D. J., Trapero, J. R. and Holgado de Frutos, E. (2025). Tobit exponential smoothing, towards an enhanced demand planning in the presence of censored data. International Journal of Production Research. Cifrele provin din preprint, arXiv:2407.17920. doi.org
  4. Özdemir, B. and Tenhiälä, A. (2026). Discretion in automated supermarket replenishment: censorship bias and self-inflicted stockouts. Manufacturing & Service Operations Management. doi.org
  5. Rekik, Y., Oliva, R., Syntetos, A. and Glock, C. H. (2026). Inventory record inaccuracy in grocery retailing: impact of promotions and product perishability, and targeted effect of audits. Journal of Business Logistics. doi.org
  6. MARQL Retail-Bench (2026). Methodology, equation 2. retail-bench.marql.one

SubiecteCerere cenzurată, Vânzări pierdute, Prognoza cererii, Aprovizionarea magazinelor

Scris de

Maxim T.

CMO, marql

Urmărește marql pe LinkedIn

Toate articolele

Retail

Stocul de siguranță într-un lanț de magazine: de ce un singur factor nu se potrivește fiecărui furnizor

Multe instrumente de aprovizionare dimensionează stocul de siguranță cu un singur factor pentru fiecare produs. Calculat pentru trei tipuri de furnizori, factorul corect diferă de șapte ori, iar un furnizor imprevizibil dublează singur stocul de siguranță.

De Maxim T.

Retail

Punctul de reaprovizionare într-un lanț de magazine: de ce „7 zile de acoperire, completezi până la 14” pierde bani

„Comanzi când unui produs i-a mai rămas o săptămână de stoc și îl completezi până la două” este felul în care comandă multe lanțuri. Regula ignoră cele trei lucruri care decid când se golește un raft. Un an simulat în patru lanțuri arată cât costă asta, iar o formulă scurtă rezolvă mare parte din problemă.

De Maxim T.

Retail

AI pentru aprovizionarea magazinelor: ce decide algoritmul, ce decide achizitorul și cum afli dacă ajută

Aprovizionarea automată există de ani buni în supermarketuri, iar achizitorii încă fac corecții la o bună parte din comenzile ei. Studiile de teren recente arată care dintre aceste corecții ajută, care produc următoarea ruptură de stoc și ce trebuie să arate un agent AI de aprovizionare înainte să primească mai multă autoritate.

De Maxim T.

Blog

Întrebări frecvente

Cererea pe care nu o poți observa în întregime pentru că produsul s-a epuizat. Vânzările înregistrate sunt egale cu cererea în zilele în care raftul rezistă și cu stocul disponibil în zilele în care se golește; diferența se pierde și nu apare niciodată în date.

O prognoză antrenată pe vânzări învață limita de stoc ca și cum ar fi cerere. Zilele în care stocul s-a epuizat devreme trag în jos media și variabilitatea, așa că următoarea prognoză și următoarea comandă sunt mai mici, ceea ce face următoarea ruptură de stoc mai probabilă.

Da, sau tratează-le ca prag minim. Excluderea lor e soluția simplă pentru o medie mobilă; modele precum netezirea exponențială Tobit citesc o zi cu stocul epuizat ca pe o limită inferioară a cererii, în loc să o elimine.

Folosește stocul scriptic: o zi încheiată cu stoc zero este cenzurată. Marchează și seriile lungi de vânzări zero la produsele care de obicei se vând, în timp ce stocul scriptic arată marfă, pentru că acestea sunt adesea stoc fantomă.

Nu. În simulările publicate, o prognoză care ține cont de cenzurare a redus risipa și a îmbunătățit disponibilitatea în același timp, pentru că mută stocul spre produsele și orele care rămâneau fără marfă, în loc să mărească fiecare comandă.

Vrei să vezi
euro pe care i-a găsit?

Conectăm casele de marcat, stocul și contabilitatea într-o zi. Acces doar pentru citire, fără înlocuire POS, 200 €/lună per locație și mai puțin pe măsură ce crești.

0
Înlocuire stack
1
Un chat. Tot businessul.