Hoe Machine Learning Voorraadtekorten 3 Weken van Tevoren Voorspelt
Een middelgrote beautyretailer met ongeveer 3.500 SKU's had een hardnekkig probleem. Elke maand bereikte 8-12% van hun bestverkopende producten een nulvoorraad voordat de aanvulling arriveerde. Elk voorraadtekort op een populair artikel kostte hen naar schatting $2.800 per dag aan gemiste omzet, nog los van de schade aan klantloyaliteit en de advertentie-uitgaven die verspild werden aan het sturen van verkeer naar productpagina's die niet op voorraad waren.
Hun voorraadteam controleerde dagelijks de voorraadniveaus en plaatste nabestellingen wanneer de voorraad een vooraf bepaalde drempel bereikte. Het probleem was dat de drempel statisch was, een vast aantal eenheden gebaseerd op de gemiddelde dagelijkse verkoop over de afgelopen 90 dagen. Wanneer de vraag piekte door een virale TikTok-vermelding of een concurrent die een vergelijkbaar product niet meer op voorraad had, kon de statische drempel niet snel genoeg reageren.
Waarom Statische Bestelpunten Falen
Een statisch bestelpunt gaat ervan uit dat de toekomstige vraag eruitziet als de historische vraag en dat levertijden van leveranciers consistent zijn. Beide aannames gaan regelmatig niet op. De vraag naar individuele SKU's in e-commerce is grillig. Een product verkoopt misschien 20 eenheden per dag gedurende drie weken en verkoopt dan plotseling 60 eenheden per dag omdat een influencer het noemde, een concurrent de prijs verhoogde, of een seizoensverschuiving optrad. Tegen de tijd dat je de versnelling opmerkt bij je dagelijkse voorraadcontrole, zit je mogelijk al twee weken in een verhoogde vraag met een levertijd van drie weken voor de boeg.
Levertijden van leveranciers zijn even variabel. Een leverancier die normaal in 14 dagen levert, kan er 21 dagen over doen tijdens hun drukke seizoen, na een grondstoftekort, of door vertragingen in de verzending. Als je bestelpunt uitgaat van een levertijd van 14 dagen en de werkelijke levertijd 21 dagen is, heb je een gat van zeven dagen waarin je voorraad verkoopt waarvan je dacht dat die al aangevuld zou zijn.
Wat het ML-Model Monitort
Een voorraadtekortvoorspellingsmodel verwerkt meerdere datastromen tegelijkertijd. De primaire input is verkoopsnelheid, niet als een eenvoudig gemiddelde maar als een tijdreeks met trend- en seizoenscomponenten. Het model detecteert versnelling (sneller verkopen dan vorige week), vertraging en cyclische patronen die specifiek zijn voor elke SKU.
Voorraadpositie (huidige voorraad plus eenheden onderweg minus eenheden toegewezen aan lopende bestellingen) geeft het model de aanbodzijde van de vergelijking. Gecombineerd met de voorspelde vraag berekent het model een geschatte dagen-voorraad-metriek die dynamisch wordt bijgewerkt.
Leveranciersprestatiedata voegt een cruciale dimensie toe. Door werkelijke versus verwachte leverdata per leverancier in de loop van de tijd bij te houden, bouwt het model een verdeling op van waarschijnlijke levertijden in plaats van een enkele puntschatting te gebruiken. Als Leverancier A in 12-18 dagen levert met een mediaan van 14, gebruikt het model de volledige verdeling bij het berekenen van de voorraadtekortkans.
Externe signalen bieden een vroegtijdige waarschuwing voor vraagverschuivingen. Zoekvolume voor het product of de categorie op Google, vermeldingen op sociale media, voorraadniveaus van concurrenten (vaak detecteerbaar via hun productpagina's die beperkte beschikbaarheid tonen), en seizoenskalenders voeden allemaal de vraagvoorspelling. Een plotselinge piek in Google-zoekvolume voor een product gaat vaak 5-10 dagen vooraf aan een verkooppiek, wat het model een vroeg signaal geeft dat het huidige voorraadtraject mogelijk niet standhoudt.
Het Drie-Weken-Waarschuwingsvenster
Het model geeft een voorraadtekortkans per SKU op verschillende tijdshorizonten: 7 dagen, 14 dagen en 21 dagen vooruit. Een typische melding kan er zo uitzien: SKU #4892 (Vitamine C Serum 30ml) heeft momenteel 340 eenheden op voorraad. Bij de huidige verkoopsnelheid van 28 eenheden per dag raakt de voorraad in ongeveer 12 dagen op. De vraagtrend toont echter een versnelling van 15% week-over-week. De aangepaste uitputtingsschatting is 9 dagen. De volgende aanvullingslevering van 500 eenheden heeft een verwachte aankomst over 16 dagen op basis van de levertijdverdeling van de leverancier. De voorraadtekortkans binnen 14 dagen is 78%.
Met dit drie-weken-venster heeft het voorraadteam opties. Ze kunnen de bestaande bestelling bij de leverancier versnellen, eventueel met een toeslag voor snellere verzending. Ze kunnen een kleinere overbruggingsbestelling plaatsen bij een alternatieve leverancier met kortere levertijden. Ze kunnen de marketinguitgaven voor het product verminderen om de vraag te vertragen terwijl de organische verkoop behouden blijft. Ze kunnen een terug-op-voorraad-notificatie instellen om de vraag op te vangen tijdens een eventuele voorraadtekortperiode.
Zonder de vroegtijdige waarschuwing is geen van deze mitigatieopties beschikbaar. Tegen de tijd dat een mens opmerkt dat de voorraad laag is via handmatige controles, heeft de levertijd al ingeteerd op de resterende voorraad.
Het Model Bouwen
De technische implementatie gebruikt een combinatie van tijdreeksvoorspelling voor de vraag (doorgaans Prophet of een aangepast LSTM-model) en een classificatiemodel voor de voorraadtekortkans. Het classificatiemodel neemt de vraagvoorspelling, huidige voorraadpositie en levertijdverdeling van de leverancier als inputs en geeft een kans op voorraadtekort binnen elk tijdvenster als output.
Trainingsdata komt uit je historische voorraadgegevens. Elk eerder voorraadtekort is een positief voorbeeld, en elke SKU die voldoende voorraad behield gedurende een bepaalde periode is een negatief voorbeeld. Je hebt minimaal 12-18 maanden aan dagelijkse voorraadsnapshots met bijbehorende verkoopdata nodig om een bruikbaar model te trainen. Als je geen dagelijkse voorraadniveaus hebt opgeslagen, begin daar dan nu mee, want deze data is verrassend moeilijk achteraf te reconstrueren.
Feature engineering is waar het meeste van de waarde wordt gecreëerd. Ruwe verkoopcijfers zijn minder nuttig dan afgeleide features zoals 7-daags voortschrijdend gemiddelde snelheid, week-over-week snelheidsverandering, variatiecoëfficiënt in dagelijkse verkoop (een maat voor vraagvolatiliteit), en de verhouding van huidige snelheid tot het 90-daags gemiddelde. Deze afgeleide features helpen het model onderscheid te maken tussen een stabiele verkoper die zijn bestelpunt nadert en een product dat een vraagpiek ervaart die de voorraad veel sneller zal opbranden dan verwacht.
Integratie Met Bestaande Systemen
Het model moet aansluiten op je bestaande voorraadbeheerworkflow, niet deze vervangen. De meest gebruikelijke aanpak is een dagelijks waarschuwingsdashboard dat SKU's toont gerangschikt op voorraadtekortrisico, met aanbevolen acties voor elk. Voorraadplanners bekijken het dashboard elke ochtend en ondernemen actie op items met een hoog risico.
Meer geavanceerde implementaties automatiseren de respons voor acties met laag risico. Als het model een voorraadtekort voorspelt en de aanbevolen actie is om een standaardnabestelling te plaatsen bij een bestaande leverancier, kan het systeem automatisch de inkooporder genereren en deze klaarzetten voor goedkeuring met één klik door de voorraadmanager. Dit houdt een mens in de besluitvormingslus terwijl het handmatige werk van het aanmaken van de bestelling wordt geëlimineerd.
Voor e-commerceretailers die duizenden SKU's beheren, is handmatige voorraadmonitoring simpelweg niet schaalbaar. Een mens die 3.500 SKU's per dag controleert, zal onvermijdelijk de producten missen die stilletjes versnellen richting een voorraadtekort. Het ML-model controleert elk SKU elk uur, vangt de subtiele patronen op en brengt de producten naar voren die aandacht nodig hebben. De beautyretailer waarmee dit verhaal begon, verlaagde hun voorraadtekortpercentage van 8-12% naar minder dan 3% binnen zes maanden na de implementatie van hun voorspellingsmodel, wat zich vertaalde in ongeveer $940.000 aan herwonnen jaarlijkse omzet.