Models
All adapters implement the Forecaster interface in src/models/base.py and return a point forecast plus a (quantile, horizon) matrix.
| Model label | Family | Panel training | Quantile construction |
|---|---|---|---|
seasonal_naive |
classical | no | empirical seasonal residuals |
croston_* |
intermittent-demand classical | no | parametric bootstrap |
patchtst |
compact supervised Transformer | yes | multi-quantile head |
chronos_bolt |
pretrained foundation model | no, zero-shot | native model output |
Seasonal-naive
Repeats the last seasonal cycle. Forecast quantiles are based on in-sample seasonal residuals. It is a baseline, not an uncertainty model calibrated for every demand process.
Croston family
The adapter includes classic Croston, SBA, and TSB-style point forecasts. Its quantiles use a bootstrap based on demand occurrence and non-zero sizes. They are an approximate distribution, not a claim of exact predictive calibration.
PatchTST-inspired model
src/models/patchtst.py is an independent, simplified model inspired by the patching idea in Nie et al., A Time Series is Worth 64 Words (ICLR 2023). It trains one network over windows from the selected panel, uses a Transformer encoder, and optimizes a multi-quantile pinball objective in transformed space.
The implementation is not the authors’ official PatchTST code, does not reproduce their full architecture or training protocol, and should not be cited as a paper reproduction. The artifact label remains patchtst for backward compatibility.
Chronos-Bolt
The wrapper loads the configured Amazon Chronos-Bolt checkpoint through chronos-forecasting and uses it without fine-tuning. This path requires the optional package and access to the model weights.
If loading fails, the wrapper uses seasonal-naive and changes its label to chronos_bolt[fallback=seasonal_naive]. That row is a software-continuity fallback, not a Chronos-Bolt evaluation. Preserve the label in any report.
Adding a model
- Implement
Forecaster.predict()and, for global models,fit(). - Register it behind a config flag in
src/models/registry.py. - Add tests for dimensions, quantile ordering, non-negativity where appropriate, and failure behavior.
- Document external weights, licensing, training data assumptions, and fallback behavior.