A forecast is only useful once it changes what you order.
This project closes that gap. ARIMA produces the demand estimate, and that estimate feeds directly into safety stock, the reorder point and the order quantity, rather than sitting in a chart nobody acts on.
What the work shows
-
Demand in this dataset is stationary, so no differencing is needed
Iterative ADF testing returns d = 0. Monthly demand oscillates around a stable mean of roughly 500 units with no trend, so differencing would only have added noise. Assuming d = 1 by default would have been the wrong call.
-
Out-of-sample error stays under 5%
Refitting on the first 14 periods and forecasting the 5 the model had never seen gives MAE 17.68, RMSE 20.04 and MAPE 3.53%. That falls inside the conventional band for an accurate forecast.
-
Data preparation changed the result more than model tuning
The raw series began mid-March 2023 and ended on 4 November 2024, leaving two partial monthly buckets that looked like a demand collapse. Trimming them, and keeping zero-demand months rather than dropping them, mattered more than any choice of p or q.
-
Safety stock is a service-level decision, not a statistical one
The model supplies the mean and the variance. Choosing how much stockout risk to accept is a business judgement expressed through the service level, and the z-score converts that judgement into units.
Limitations
- Nineteen monthly observations is a short series. Confidence intervals are correspondingly wide.
- The model is non-seasonal. A longer series would justify testing SARIMA for festive peaks.
- Ordering and holding costs are user inputs, not measured figures from a real supplier.
- Lead time is treated as fixed. Variable lead time would widen the safety-stock requirement.
Where it goes next
- Seasonal SARIMA once two or more full years of data are available.
- Per-product forecasting rather than per-category aggregation.
- Rolling-origin backtesting instead of a single train and test split.
- Stochastic lead time in the safety-stock calculation.
See the numbers behind these conclusions.
Open the accuracy report