One Global Model, Many Behaviors: Stockout-Aware Feature Engineering and Dynamic Scaling for Multi-Horizon Retail Demand Forecasting with a Cost-Aware Ordering Policy (VN2 Winner Report)
Bartosz Szabłowski
TL;DR
This work tackles retail inventory planning under a fixed two-week lead time by formulating a two-stage predict-then-optimize pipeline. A global multi-horizon forecast based on CatBoost is paired with stockout-aware feature engineering, per-series scaling, and time-based observation weighting to generate forecasts for $t{+}1$ to $t{+}3$, which are then fed into a lightweight cost-aware ordering policy. The policy projects inventory to the delivery week and computes a target stock using a newsvendor-inspired buffer that trades off shortage and holding costs, yielding a simple and interpretable ordering rule. The approach demonstrates strong performance in the VN2 benchmark and offers practical extensions, including probabilistic decision-making and additional operational constraints, highlighting the value of modular, cost-aware design in large-scale retail forecasting and replenishment. The key contribution is showing that a carefully engineered global forecaster, combined with an explicit cost-aware replenishment policy, can achieve robust, scalable, and interpretable decisions across heterogeneous time series with censored demand.
Abstract
Inventory planning for retail chains requires translating demand forecasts into ordering decisions, including asymmetric shortages and holding costs. The VN2 Inventory Planning Challenge formalizes this setting as a weekly decision-making cycle with a two-week product delivery lead time, where the total cost is defined as the shortage cost plus the holding cost. This report presents the winning VN2 solution: a two-stage predict-then-optimize pipeline that combines a single global multi-horizon forecasting model with a cost-aware ordering policy. The forecasting model is trained in a global paradigm, jointly using all available time series. A gradient-boosted decision tree (GBDT) model implemented in CatBoost is used as the base learner. The model incorporates stockout-aware feature engineering to address censored demand during out-of-stock periods, per-series scaling to focus learning on time-series patterns rather than absolute levels, and time-based observation weights to reflect shifts in demand patterns. In the decision stage, inventory is projected to the start of the delivery week, and a target stock level is calculated that explicitly trades off shortage and holding costs. Evaluated by the official competition simulation in six rounds, the solution achieved first place by combining a strong global forecasting model with a lightweight cost-aware policy. Although developed for the VN2 setting, the proposed approach can be extended to real-world applications and additional operational constraints.
