2026
Sibyl
Vraagvoorspelling voor Agrafresh
Sibyl voorspelt hoeveel onze retailklanten van elk product zullen bestellen, zodat de fabriek snijden en bezetting kan plannen voor de orders binnen zijn. Het leerde van 160.149 verkooplijnen over drie en een half jaar, en hertraint zichzelf elke nacht.
Typische productlijn: 32% minder fout dan de basislijn. Waar niets beter deed, houdt Sibyl de basislijn.
- TimesFM
- 15
- Ensemble
- 11
- LightGBM
- 7
- TimesFM met signalen
- 4
- Week van vorig jaar
- 4
Hoe het in elkaar zit
- SignalenWeer, kalender, schoolvakanties, promoties
- Historiek160.149 verkooplijnen, 108 producten, zeven retailgroepen, sinds 2023
- ModellenGoogle’s TimesFM naast een getunede LightGBM
- BacktestDoorlopend, tegen de basislijn “zelfde week vorig jaar”
- VoorspellingBeste model per product, elke nacht hertraind, wekelijks getuned
Het probleem
Versgesneden groenten wachten niet. Orders komen laat binnen en schommelen met het weer, de vakanties en de promotie die een retailer die week draait. Plan je te weinig, dan vertrekken vrachtwagens half leeg. Plan je te veel, dan gaat goede waar verloren.
Wat ik bouwde
Ik begon met de eenvoudigste eerlijke basislijn: zelfde week, vorig jaar. Elk model moet die verslaan om zijn plaats te verdienen. Sibyl draait Google’s TimesFM, een foundation model voor tijdreeksen, naast een LightGBM die weer-, kalender- en promotiesignalen krijgt. Een doorlopende backtest kiest per product de winnaar.
Wat het toonde
Over alles heen versloeg TimesFM de getunede LightGBM: 34,1 tegenover 36,5 WAPE. Het wint op stabiele lijnen met veel volume. Op promotielijnen klopt het gradient-boosted model de basislijn nog altijd, dus Sibyl kiest niet één model. Het kiest er één per product, elke nacht.
Specificaties
- Gebouwd voor
- Productieplanning bij Agrafresh
- Draait op
- Onze eigen server
- Stack
- Python, TimesFM, LightGBM, Optuna
- Resultaat
- 34,1 WAPE voor TimesFM tegenover 36,5 voor LightGBM (lager is beter)