Research
Forecasting Household Energy
What can generative models predict when household history is missing?
Experience In Practice
Skills Applied
Technical Skills
Soft Skills
A Forecast Needs More Than A Single Number
Household electricity demand varies with routines, weather and sudden appliance use. A useful forecast needs to describe uncertainty as well as typical demand. But many forecasting methods assume a recent history of smart-meter readings is available.
My thesis investigated whether conditional generative models could produce useful future demand scenarios from household and calendar information alone, then measured how much adding historical context improved them.
Make The Comparison Controlled
I developed four models combining two generative approaches—variational autoencoders and diffusion—with recurrent or Transformer sequence processing. I compared them against Temporal Fusion Transformer, N-HiTS, TSMixer and iTransformer.
The experiment covered 24-hour, 7-day and 28-day forecasts at four sampling intervals. With and without history, that produced 96 generative configurations and 48 baseline configurations.
- Split households into training and validation groups so validation homes were unseen during training.
- Fit scalers on training data and keep windows within household boundaries.
- Limit future inputs to calendar features known at prediction time; use observed weather only in the historical branch.
Build A Common Evaluation Language
Each generative model produced 200 sampled trajectories. I extracted the median and 10th/90th percentiles so that forecasts could be compared using the same central estimate and 80% interval.
Seven metrics tested different aspects of usefulness: ordinary error, large errors, peak error, quantile accuracy, interval quality, distribution and temporal shape. The retained notebooks separate preprocessing, training, checkpoint loading and evaluation.
History Matters; The Metric Changes The Answer
The thesis found that historical context improved the generative models, with the most promising performance at the 24-hour horizon. Diffusion models were stronger than the VAE implementations on quantile and interval measures. Changing the generative objective had a clearer effect than swapping recurrent processing for Transformers.
Longer horizons exposed a different problem: a model could reproduce overall consumption levels while placing peaks at the wrong time. Without history, the output was more useful as a plausible household scenario than a precise forecast.
The comparison also identified limits worth addressing next: unequal preprocessing between some model families, one household split, and a shrinking history-to-forecast ratio at longer horizons.
The Engineering Journey
Prepare
Align smart-meter, household and calendar inputs without future-data leakage.
Compare
Run four generative models and four baselines over the same horizon/frequency grid.
Evaluate
Use point, probabilistic, distributional and temporal measures together.
What This Experience Achieved
The result
A reproducible 144-configuration comparison showing where generative forecasting helps, and where accurate timing and peak prediction remain difficult.
From the model-performance workbook
Explore The Results
Historical context reduced error in 336 of 336 selected comparisons. Explore the raw metrics alongside the context effect and the gap to the best baseline.
Colours rescale to the displayed values: green is the minimum, yellow the median and red the maximum. Raw groups scale independently. Colours rank numbers, not improvement; in the context view, a larger positive value means more improvement. Displayed values are not clipped.
Gap to the best baseline · MAE
Negative values mean lower error than the best baseline for that metric and configuration. Gap = (generative model − best baseline) ÷ best baseline × 100. The baseline family is shown in each cell.
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | -31.7%iTransformer | -31.3%iTransformer | -29.8%iTransformer | -27.9%TSMixer | -11.3%TFT | -13.4%TFT | -22.0%TFT | -19.7%TFT | -0.3%TFT | -1.8%TFT | -3.7%TFT | -6.3%TFT |
| RNN VAE | -26.1%iTransformer | -25.4%iTransformer | -25.8%iTransformer | -18.9%TSMixer | -3.0%TFT | -7.4%TFT | -15.7%TFT | -12.4%TFT | +6.9%TFT | +1.3%TFT | -1.4%TFT | -4.0%TFT |
| Transformer diffusion | -31.8%iTransformer | -32.5%iTransformer | -31.8%iTransformer | -30.3%TSMixer | -13.2%TFT | -15.4%TFT | -23.7%TFT | -21.6%TFT | -2.6%TFT | -4.9%TFT | -6.2%TFT | -8.5%TFT |
| Transformer VAE | -25.8%iTransformer | -27.7%iTransformer | -26.8%iTransformer | -24.2%TSMixer | -6.9%TFT | -8.8%TFT | -18.5%TFT | -15.9%TFT | +0.5%TFT | +0.3%TFT | -0.9%TFT | -3.5%TFT |
Gap to the best baseline · RMSE
Negative values mean lower error than the best baseline for that metric and configuration. Gap = (generative model − best baseline) ÷ best baseline × 100. The baseline family is shown in each cell.
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | -20.3%TSMixer | -10.6%TSMixer | -13.9%TSMixer | -5.4%TSMixer | -7.6%TFT | -5.9%TFT | -5.6%TFT | -7.0%TFT | +4.1%TSMixer | +5.2%TFT | +5.1%TFT | +3.1%TFT |
| RNN VAE | -17.9%TSMixer | -4.5%TSMixer | -9.8%TSMixer | +7.6%TSMixer | -3.5%TFT | -2.5%TFT | +0.6%TFT | -1.6%TFT | +8.4%TSMixer | +9.4%TFT | +7.6%TFT | +6.0%TFT |
| Transformer diffusion | -19.3%TSMixer | -11.4%TSMixer | -17.7%TSMixer | -11.1%TSMixer | -8.2%TFT | -6.3%TFT | -6.7%TFT | -9.7%TFT | +8.6%TSMixer | +4.4%TFT | +2.5%TFT | +4.9%TFT |
| Transformer VAE | -15.2%TSMixer | -6.3%TSMixer | -10.5%TSMixer | -1.2%TSMixer | -4.7%TFT | -0.5%TFT | -0.7%TFT | -2.0%TFT | +4.3%TSMixer | +6.9%TFT | +8.9%TFT | +6.8%TFT |
Gap to the best baseline · Peak MAE
Negative values mean lower error than the best baseline for that metric and configuration. Gap = (generative model − best baseline) ÷ best baseline × 100. The baseline family is shown in each cell.
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | +6.8%TSMixer | -7.0%TSMixer | -9.8%TSMixer | -21.9%TSMixer | +14.1%TSMixer | +27.5%TSMixer | +37.9%TSMixer | +18.3%TSMixer | +9.1%TSMixer | +21.8%TSMixer | +30.7%TSMixer | +31.3%TSMixer |
| RNN VAE | +3.4%TSMixer | -7.6%TSMixer | -6.9%TSMixer | -17.9%TSMixer | +10.8%TSMixer | +18.4%TSMixer | +31.9%TSMixer | +13.5%TSMixer | +4.9%TSMixer | +16.3%TSMixer | +26.8%TSMixer | +29.3%TSMixer |
| Transformer diffusion | +3.2%TSMixer | -6.5%TSMixer | -14.0%TSMixer | -27.3%TSMixer | +18.8%TSMixer | +22.6%TSMixer | +28.3%TSMixer | +22.6%TSMixer | +16.4%TSMixer | +24.0%TSMixer | +22.7%TSMixer | +36.3%TSMixer |
| Transformer VAE | +5.7%TSMixer | -1.8%TSMixer | -1.2%TSMixer | -14.6%TSMixer | +7.9%TSMixer | +16.2%TSMixer | +32.5%TSMixer | +14.2%TSMixer | -10.2%TSMixer | +1.2%TSMixer | +13.4%TSMixer | +17.9%TSMixer |
Gap to the best baseline · Quantile loss
Negative values mean lower error than the best baseline for that metric and configuration. Gap = (generative model − best baseline) ÷ best baseline × 100. The baseline family is shown in each cell.
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | -31.5%iTransformer | -30.8%iTransformer | -29.8%iTransformer | -23.9%TSMixer | -8.3%TFT | -8.9%TFT | -14.8%TFT | -19.1%TFT | +11.3%TFT | +8.2%TFT | +4.8%TFT | -0.3%TFT |
| RNN VAE | +3.3%iTransformer | +6.7%iTransformer | +4.7%iTransformer | +21.5%TSMixer | +37.8%TFT | +36.0%TFT | +29.4%TFT | +24.4%TFT | +55.1%TFT | +46.5%TFT | +45.7%TFT | +41.8%TFT |
| Transformer diffusion | -31.5%iTransformer | -31.8%iTransformer | -32.4%iTransformer | -27.3%TSMixer | -7.2%TFT | -8.2%TFT | -15.8%TFT | -19.1%TFT | +10.8%TFT | +3.8%TFT | +4.5%TFT | +1.5%TFT |
| Transformer VAE | +5.4%iTransformer | +5.0%iTransformer | +4.0%iTransformer | +14.5%TSMixer | +33.7%TFT | +35.1%TFT | +26.3%TFT | +21.0%TFT | +47.1%TFT | +46.0%TFT | +47.6%TFT | +43.7%TFT |
Gap to the best baseline · Winkler score
Negative values mean lower error than the best baseline for that metric and configuration. Gap = (generative model − best baseline) ÷ best baseline × 100. The baseline family is shown in each cell.
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | -31.4%iTransformer | -29.9%TSMixer | -29.8%iTransformer | -19.7%TSMixer | -5.3%TFT | -4.2%TFT | -6.9%TFT | -18.5%TFT | +22.8%TFT | +18.0%TFT | +13.6%TFT | +5.7%TFT |
| RNN VAE | +30.6%iTransformer | +38.8%TSMixer | +33.7%iTransformer | +64.7%TSMixer | +76.5%TFT | +79.7%TFT | +79.6%TFT | +59.8%TFT | +102.2%TFT | +90.6%TFT | +93.9%TFT | +88.8%TFT |
| Transformer diffusion | -31.2%iTransformer | -30.6%TSMixer | -33.1%iTransformer | -24.0%TSMixer | -1.6%TFT | -1.0%TFT | -7.0%TFT | -16.7%TFT | +23.9%TFT | +12.4%TFT | +15.3%TFT | +11.7%TFT |
| Transformer VAE | +34.4%iTransformer | +37.7%TSMixer | +33.1%iTransformer | +56.0%TSMixer | +72.1%TFT | +79.4%TFT | +76.1%TFT | +56.4%TFT | +92.6%TFT | +90.5%TFT | +97.2%TFT | +92.1%TFT |
Gap to the best baseline · KL divergence
Negative values mean lower error than the best baseline for that metric and configuration. Gap = (generative model − best baseline) ÷ best baseline × 100. The baseline family is shown in each cell.
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | -59.8%TFT | -73.1%TFT | -65.5%TFT | -75.9%TFT | -37.2%TSMixer | +135.2%TSMixer | +6.3%TSMixer | -40.6%TSMixer | +14.0%TSMixer | +0.4%TSMixer | -67.1%TSMixer | -71.8%TSMixer |
| RNN VAE | -32.3%TFT | -54.7%TFT | -65.1%TFT | -72.2%TFT | +3.2%TSMixer | +268.6%TSMixer | +24.2%TSMixer | -21.0%TSMixer | +66.0%TSMixer | +13.3%TSMixer | -58.5%TSMixer | -70.2%TSMixer |
| Transformer diffusion | -77.5%TFT | -65.7%TFT | -58.0%TFT | -67.0%TFT | -19.7%TSMixer | +29.4%TSMixer | -44.5%TSMixer | -9.1%TSMixer | +9.4%TSMixer | +61.3%TSMixer | -50.1%TSMixer | -44.5%TSMixer |
| Transformer VAE | -60.9%TFT | -38.8%TFT | -48.9%TFT | -56.7%TFT | -2.2%TSMixer | +123.9%TSMixer | -7.8%TSMixer | -36.6%TSMixer | -35.1%TSMixer | -52.3%TSMixer | -65.5%TSMixer | -40.9%TSMixer |
Gap to the best baseline · DTW
Negative values mean lower error than the best baseline for that metric and configuration. Gap = (generative model − best baseline) ÷ best baseline × 100. The baseline family is shown in each cell.
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | -52.8%iTransformer | -46.6%TSMixer | -55.1%iTransformer | -48.2%TSMixer | +32.4%TFT | +1.1%TFT | -12.1%TFT | -8.5%TFT | +752.4%TFT | +313.2%TFT | +105.4%TFT | +44.5%TFT |
| RNN VAE | -49.4%iTransformer | -43.8%TSMixer | -51.4%iTransformer | -42.2%TSMixer | +46.5%TFT | +7.6%TFT | -3.8%TFT | +0.6%TFT | +776.6%TFT | +319.2%TFT | +108.4%TFT | +49.7%TFT |
| Transformer diffusion | -53.2%iTransformer | -45.9%TSMixer | -54.2%iTransformer | -49.2%TSMixer | +35.1%TFT | -1.5%TFT | -14.1%TFT | -7.3%TFT | +729.1%TFT | +287.3%TFT | +95.8%TFT | +42.3%TFT |
| Transformer VAE | -48.8%iTransformer | -41.7%TSMixer | -51.6%iTransformer | -47.0%TSMixer | +40.9%TFT | +10.0%TFT | -7.9%TFT | -4.5%TFT | +692.7%TFT | +286.5%TFT | +103.6%TFT | +46.6%TFT |
Effect of historical context · MAE
Positive values mean that adding historical context reduced error. Change = (without history − with history) ÷ without history × 100.
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | +38.2% | +42.7% | +44.0% | +46.0% | +35.5% | +38.3% | +42.5% | +45.4% | +21.2% | +24.0% | +28.3% | +29.5% |
| RNN VAE | +35.0% | +37.1% | +40.9% | +39.2% | +35.3% | +38.3% | +40.1% | +42.2% | +22.9% | +28.1% | +31.1% | +32.6% |
| Transformer diffusion | +37.2% | +42.8% | +43.2% | +47.4% | +35.0% | +36.2% | +43.5% | +45.2% | +26.2% | +31.1% | +30.7% | +32.5% |
| Transformer VAE | +33.2% | +36.2% | +39.1% | +40.9% | +36.7% | +37.0% | +41.8% | +43.0% | +26.9% | +28.8% | +32.2% | +33.4% |
Effect of historical context · RMSE
Positive values mean that adding historical context reduced error. Change = (without history − with history) ÷ without history × 100.
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | +29.8% | +35.6% | +35.9% | +38.8% | +29.7% | +32.9% | +35.8% | +37.9% | +21.8% | +23.6% | +28.6% | +29.2% |
| RNN VAE | +27.7% | +27.8% | +31.2% | +29.8% | +27.3% | +30.7% | +32.2% | +35.1% | +20.0% | +23.1% | +26.5% | +28.8% |
| Transformer diffusion | +28.5% | +33.9% | +38.0% | +43.4% | +29.4% | +29.7% | +36.6% | +38.4% | +21.9% | +30.3% | +30.4% | +29.8% |
| Transformer VAE | +26.6% | +29.2% | +32.3% | +34.6% | +27.8% | +28.6% | +33.3% | +34.9% | +22.0% | +24.1% | +26.6% | +28.6% |
Effect of historical context · Peak MAE
Positive values mean that adding historical context reduced error. Change = (without history − with history) ÷ without history × 100.
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | +29.4% | +37.3% | +43.4% | +46.0% | +23.2% | +21.6% | +29.9% | +35.5% | +19.0% | +19.5% | +26.8% | +28.1% |
| RNN VAE | +22.0% | +31.4% | +39.1% | +42.4% | +10.4% | +16.7% | +26.8% | +31.2% | +12.0% | +17.1% | +19.5% | +23.8% |
| Transformer diffusion | +34.6% | +36.7% | +49.6% | +52.8% | +25.8% | +29.1% | +37.9% | +34.6% | +17.6% | +28.2% | +34.4% | +31.7% |
| Transformer VAE | +26.9% | +32.0% | +38.6% | +41.1% | +14.8% | +20.7% | +28.1% | +35.0% | +14.1% | +19.4% | +21.4% | +24.4% |
Effect of historical context · Quantile loss
Positive values mean that adding historical context reduced error. Change = (without history − with history) ÷ without history × 100.
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | +42.7% | +47.2% | +47.7% | +49.7% | +41.9% | +43.9% | +47.6% | +50.0% | +26.7% | +27.6% | +33.5% | +34.4% |
| RNN VAE | +28.1% | +30.2% | +33.2% | +30.8% | +31.2% | +33.4% | +34.9% | +36.7% | +19.4% | +24.1% | +27.4% | +28.5% |
| Transformer diffusion | +41.5% | +46.4% | +47.6% | +52.5% | +37.6% | +37.8% | +45.3% | +46.8% | +26.7% | +35.3% | +31.6% | +33.8% |
| Transformer VAE | +27.4% | +29.7% | +32.9% | +33.7% | +32.8% | +32.2% | +37.1% | +38.3% | +23.2% | +24.7% | +27.2% | +28.3% |
Effect of historical context · Winkler score
Positive values mean that adding historical context reduced error. Change = (without history − with history) ÷ without history × 100.
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | +46.3% | +50.9% | +50.9% | +52.8% | +46.5% | +48.2% | +51.5% | +53.8% | +30.6% | +30.3% | +37.4% | +38.3% |
| RNN VAE | +23.9% | +25.8% | +28.3% | +25.4% | +28.9% | +30.6% | +31.9% | +33.4% | +17.4% | +21.9% | +25.3% | +26.2% |
| Transformer diffusion | +45.0% | +49.4% | +51.2% | +56.6% | +39.7% | +39.1% | +46.8% | +48.1% | +27.1% | +38.3% | +32.4% | +34.8% |
| Transformer VAE | +24.0% | +25.9% | +29.1% | +29.3% | +30.6% | +29.4% | +34.4% | +35.5% | +21.2% | +22.4% | +24.4% | +25.2% |
Effect of historical context · KL divergence
Positive values mean that adding historical context reduced error. Change = (without history − with history) ÷ without history × 100.
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | +69.3% | +79.5% | +66.5% | +70.7% | +86.3% | +64.2% | +77.7% | +83.6% | +90.8% | +89.0% | +91.4% | +92.6% |
| RNN VAE | +37.2% | +72.4% | +57.8% | +50.8% | +62.6% | +55.3% | +71.4% | +69.7% | +53.4% | +57.6% | +72.8% | +79.6% |
| Transformer diffusion | +73.1% | +78.4% | +69.0% | +64.2% | +92.2% | +96.6% | +88.7% | +72.3% | +93.7% | +93.1% | +94.1% | +89.7% |
| Transformer VAE | +74.1% | +63.0% | +52.5% | +39.7% | +57.4% | +74.4% | +73.3% | +79.6% | +59.1% | +71.6% | +58.6% | +19.6% |
Effect of historical context · DTW
Positive values mean that adding historical context reduced error. Change = (without history − with history) ÷ without history × 100.
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | +32.8% | +34.9% | +39.7% | +38.5% | +43.6% | +44.1% | +47.6% | +48.3% | +28.2% | +27.9% | +30.5% | +29.7% |
| RNN VAE | +26.9% | +33.0% | +35.3% | +31.3% | +35.2% | +40.7% | +41.0% | +44.1% | +19.6% | +22.8% | +25.2% | +27.1% |
| Transformer diffusion | +35.8% | +39.6% | +36.9% | +40.0% | +45.4% | +46.3% | +48.0% | +47.3% | +34.8% | +40.6% | +36.4% | +35.1% |
| Transformer VAE | +24.7% | +26.7% | +32.2% | +35.3% | +36.0% | +35.6% | +41.8% | +46.2% | +26.3% | +28.2% | +28.0% | +28.7% |
Raw heatmap values · MAE
Untransformed metric values for the four generative models with and without historical context, and all four baselines. Each group has its own colour scale. Values are shown to four significant figures; hover over a cell for the full workbook value.
With History
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | 0.1557 | 0.293 | 0.5388 | 0.745 | 0.1553 | 0.2885 | 0.5183 | 0.7252 | 0.189 | 0.3504 | 0.633 | 0.8789 |
| RNN VAE | 0.1685 | 0.3183 | 0.5697 | 0.8378 | 0.1698 | 0.3088 | 0.5597 | 0.7904 | 0.2028 | 0.3615 | 0.6486 | 0.9004 |
| Transformer diffusion | 0.1555 | 0.288 | 0.5236 | 0.7199 | 0.1521 | 0.2821 | 0.507 | 0.7075 | 0.1848 | 0.3393 | 0.6169 | 0.8579 |
| Transformer VAE | 0.1692 | 0.3082 | 0.562 | 0.7829 | 0.1631 | 0.3039 | 0.5412 | 0.759 | 0.1907 | 0.3581 | 0.6515 | 0.9046 |
Without History
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | 0.2518 | 0.5116 | 0.9622 | 1.38 | 0.2406 | 0.4675 | 0.9014 | 1.328 | 0.2397 | 0.4611 | 0.8825 | 1.246 |
| RNN VAE | 0.2592 | 0.5062 | 0.9632 | 1.378 | 0.2626 | 0.5005 | 0.9344 | 1.367 | 0.2632 | 0.5027 | 0.941 | 1.335 |
| Transformer diffusion | 0.2475 | 0.5032 | 0.9224 | 1.368 | 0.2339 | 0.4422 | 0.8978 | 1.292 | 0.2503 | 0.4924 | 0.8896 | 1.27 |
| Transformer VAE | 0.2533 | 0.483 | 0.9229 | 1.325 | 0.2575 | 0.4827 | 0.9295 | 1.331 | 0.2609 | 0.5029 | 0.9607 | 1.359 |
Baseline
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| TFT | 0.3311 | 0.6055 | 1.059 | 1.411 | 0.1752 | 0.3333 | 0.6641 | 0.9026 | 0.1897 | 0.3569 | 0.6576 | 0.9376 |
| N-HiTS | 3.488 | 2.575 | 6.766 | 10.5 | 0.3911 | 0.513 | 14.68 | 13.56 | 0.5714 | 0.7818 | 18.88 | 12.12 |
| TSMixer | 0.2745 | 0.4407 | 0.8957 | 1.033 | 0.1922 | 0.3666 | 0.7869 | 1.009 | 0.1955 | 0.3824 | 0.7234 | 1.057 |
| iTransformer | 0.2281 | 0.4265 | 0.7675 | 1.102 | 0.2208 | 0.4185 | 0.7694 | 1.12 | 0.2294 | 0.4282 | 0.7935 | 1.157 |
Raw heatmap values · RMSE
Untransformed metric values for the four generative models with and without historical context, and all four baselines. Each group has its own colour scale. Values are shown to four significant figures; hover over a cell for the full workbook value.
With History
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | 0.3203 | 0.5899 | 1.071 | 1.437 | 0.3101 | 0.5661 | 1.004 | 1.404 | 0.3621 | 0.6654 | 1.187 | 1.62 |
| RNN VAE | 0.3298 | 0.6304 | 1.122 | 1.634 | 0.3237 | 0.5865 | 1.07 | 1.485 | 0.377 | 0.6925 | 1.215 | 1.665 |
| Transformer diffusion | 0.3241 | 0.5851 | 1.024 | 1.349 | 0.3081 | 0.5638 | 0.9925 | 1.364 | 0.378 | 0.6608 | 1.158 | 1.647 |
| Transformer VAE | 0.3409 | 0.6182 | 1.114 | 1.5 | 0.3197 | 0.5984 | 1.056 | 1.479 | 0.3628 | 0.6763 | 1.229 | 1.678 |
Without History
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | 0.4559 | 0.9158 | 1.671 | 2.346 | 0.4412 | 0.8431 | 1.563 | 2.259 | 0.4633 | 0.8708 | 1.661 | 2.287 |
| RNN VAE | 0.456 | 0.8731 | 1.632 | 2.329 | 0.4452 | 0.8465 | 1.578 | 2.287 | 0.4712 | 0.9006 | 1.652 | 2.337 |
| Transformer diffusion | 0.4534 | 0.8851 | 1.652 | 2.382 | 0.4364 | 0.8017 | 1.567 | 2.215 | 0.4838 | 0.9475 | 1.664 | 2.347 |
| Transformer VAE | 0.4646 | 0.8727 | 1.645 | 2.293 | 0.4429 | 0.838 | 1.583 | 2.272 | 0.4654 | 0.8915 | 1.673 | 2.348 |
Baseline
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| TFT | 0.53 | 0.9569 | 1.634 | 2.152 | 0.3355 | 0.6015 | 1.063 | 1.509 | 0.3492 | 0.6328 | 1.129 | 1.571 |
| N-HiTS | 9.455 | 5.969 | 10.74 | 15 | 0.7097 | 0.8657 | 16.29 | 17.15 | 1.047 | 1.233 | 20.43 | 14.22 |
| TSMixer | 0.4018 | 0.6602 | 1.244 | 1.519 | 0.3497 | 0.6361 | 1.305 | 1.638 | 0.3479 | 0.6624 | 1.177 | 1.699 |
| iTransformer | 0.4481 | 0.8077 | 1.492 | 2.013 | 0.4082 | 0.7937 | 1.456 | 2.095 | 0.4477 | 0.8241 | 1.495 | 2.129 |
Raw heatmap values · Peak MAE
Untransformed metric values for the four generative models with and without historical context, and all four baselines. Each group has its own colour scale. Values are shown to four significant figures; hover over a cell for the full workbook value.
With History
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | 0.6202 | 0.8577 | 1.133 | 1.332 | 1.047 | 1.654 | 2.255 | 2.623 | 1.552 | 2.39 | 3.504 | 4.177 |
| RNN VAE | 0.6006 | 0.8517 | 1.169 | 1.4 | 1.016 | 1.536 | 2.157 | 2.518 | 1.493 | 2.282 | 3.4 | 4.112 |
| Transformer diffusion | 0.5994 | 0.8624 | 1.08 | 1.24 | 1.089 | 1.59 | 2.098 | 2.719 | 1.656 | 2.433 | 3.289 | 4.336 |
| Transformer VAE | 0.6136 | 0.9054 | 1.241 | 1.457 | 0.9897 | 1.507 | 2.167 | 2.532 | 1.278 | 1.985 | 3.039 | 3.751 |
Without History
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | 0.878 | 1.367 | 2.001 | 2.468 | 1.363 | 2.11 | 3.217 | 4.063 | 1.915 | 2.969 | 4.786 | 5.809 |
| RNN VAE | 0.7698 | 1.241 | 1.92 | 2.431 | 1.135 | 1.843 | 2.945 | 3.658 | 1.696 | 2.751 | 4.222 | 5.395 |
| Transformer diffusion | 0.9159 | 1.361 | 2.141 | 2.629 | 1.468 | 2.242 | 3.381 | 4.158 | 2.01 | 3.388 | 5.015 | 6.346 |
| Transformer VAE | 0.8397 | 1.331 | 2.021 | 2.475 | 1.161 | 1.901 | 3.011 | 3.896 | 1.487 | 2.464 | 3.866 | 4.963 |
Baseline
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| TFT | 0.6321 | 1.006 | 1.598 | 2.053 | 1.183 | 1.722 | 2.226 | 2.52 | 1.6 | 2.427 | 3.585 | 4.284 |
| N-HiTS | 14.07 | 8.265 | 17.11 | 26.27 | 1.487 | 2.109 | 24.06 | 35.68 | 2.616 | 2.408 | 34.63 | 28.66 |
| TSMixer | 0.5807 | 0.922 | 1.256 | 1.706 | 0.9172 | 1.297 | 1.636 | 2.218 | 1.423 | 1.962 | 2.681 | 3.181 |
| iTransformer | 0.8507 | 1.233 | 1.829 | 2.117 | 1.31 | 2.212 | 3.308 | 4.141 | 1.829 | 2.982 | 4.588 | 5.601 |
Raw heatmap values · Quantile loss
Untransformed metric values for the four generative models with and without historical context, and all four baselines. Each group has its own colour scale. Values are shown to four significant figures; hover over a cell for the full workbook value.
With History
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | 0.05403 | 0.09962 | 0.1845 | 0.2535 | 0.05508 | 0.1008 | 0.1791 | 0.2486 | 0.07113 | 0.1304 | 0.2273 | 0.3074 |
| RNN VAE | 0.08152 | 0.1537 | 0.2751 | 0.4047 | 0.08275 | 0.1503 | 0.2722 | 0.3823 | 0.09907 | 0.1766 | 0.3159 | 0.4374 |
| Transformer diffusion | 0.05409 | 0.09829 | 0.1775 | 0.2423 | 0.05569 | 0.1015 | 0.1772 | 0.2485 | 0.07079 | 0.1251 | 0.2265 | 0.313 |
| Transformer VAE | 0.08318 | 0.1512 | 0.2731 | 0.3815 | 0.08026 | 0.1494 | 0.2657 | 0.3716 | 0.09396 | 0.176 | 0.32 | 0.4432 |
Without History
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | 0.09424 | 0.1887 | 0.353 | 0.504 | 0.09472 | 0.1797 | 0.3417 | 0.4977 | 0.09703 | 0.1802 | 0.3416 | 0.4685 |
| RNN VAE | 0.1134 | 0.22 | 0.4119 | 0.5851 | 0.1203 | 0.2259 | 0.4185 | 0.604 | 0.1229 | 0.2327 | 0.435 | 0.6118 |
| Transformer diffusion | 0.09247 | 0.1833 | 0.3387 | 0.5098 | 0.08926 | 0.1632 | 0.3239 | 0.4671 | 0.09661 | 0.1933 | 0.3313 | 0.4726 |
| Transformer VAE | 0.1145 | 0.2152 | 0.407 | 0.5756 | 0.1194 | 0.2203 | 0.4224 | 0.6021 | 0.1224 | 0.2336 | 0.4397 | 0.6177 |
Baseline
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| TFT | 0.1022 | 0.1865 | 0.3297 | 0.4502 | 0.06004 | 0.1106 | 0.2103 | 0.3072 | 0.06388 | 0.1205 | 0.2168 | 0.3085 |
| N-HiTS | 1.015 | 0.7748 | 2.316 | 3.273 | 0.1301 | 0.1756 | 3.805 | 3.843 | 0.188 | 0.2526 | 5.47 | 3.635 |
| TSMixer | 0.08937 | 0.1459 | 0.2875 | 0.3331 | 0.06448 | 0.1202 | 0.2519 | 0.3295 | 0.06547 | 0.1255 | 0.2377 | 0.3542 |
| iTransformer | 0.07893 | 0.144 | 0.2627 | 0.3639 | 0.07505 | 0.1424 | 0.2639 | 0.375 | 0.0786 | 0.1451 | 0.2631 | 0.3906 |
Raw heatmap values · Winkler score
Untransformed metric values for the four generative models with and without historical context, and all four baselines. Each group has its own colour scale. Values are shown to four significant figures; hover over a cell for the full workbook value.
With History
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | 0.8425 | 1.524 | 2.84 | 3.878 | 0.8759 | 1.581 | 2.783 | 3.833 | 1.189 | 2.16 | 3.653 | 4.827 |
| RNN VAE | 1.603 | 3.018 | 5.405 | 7.951 | 1.633 | 2.966 | 5.369 | 7.517 | 1.958 | 3.49 | 6.235 | 8.619 |
| Transformer diffusion | 0.845 | 1.509 | 2.707 | 3.669 | 0.9102 | 1.635 | 2.78 | 3.919 | 1.2 | 2.057 | 3.709 | 5.102 |
| Transformer VAE | 1.649 | 2.994 | 5.383 | 7.531 | 1.592 | 2.961 | 5.264 | 7.354 | 1.865 | 3.488 | 6.343 | 8.772 |
Without History
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | 1.568 | 3.103 | 5.78 | 8.218 | 1.638 | 3.053 | 5.743 | 8.295 | 1.712 | 3.101 | 5.837 | 7.823 |
| RNN VAE | 2.106 | 4.07 | 7.54 | 10.67 | 2.297 | 4.274 | 7.882 | 11.28 | 2.371 | 4.468 | 8.346 | 11.68 |
| Transformer diffusion | 1.537 | 2.982 | 5.549 | 8.45 | 1.508 | 2.684 | 5.229 | 7.557 | 1.647 | 3.337 | 5.491 | 7.827 |
| Transformer VAE | 2.169 | 4.04 | 7.594 | 10.64 | 2.295 | 4.196 | 8.024 | 11.41 | 2.367 | 4.494 | 8.388 | 11.73 |
Baseline
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| TFT | 1.411 | 2.569 | 4.597 | 6.452 | 0.9253 | 1.651 | 2.989 | 4.704 | 0.9682 | 1.831 | 3.216 | 4.566 |
| N-HiTS | 13.02 | 10.37 | 35.65 | 45.67 | 1.947 | 2.703 | 40.79 | 47.51 | 2.783 | 3.669 | 69.7 | 48.43 |
| TSMixer | 1.308 | 2.175 | 4.147 | 4.828 | 0.9732 | 1.772 | 3.623 | 4.842 | 0.9867 | 1.854 | 3.515 | 5.341 |
| iTransformer | 1.228 | 2.188 | 4.044 | 5.407 | 1.148 | 2.18 | 4.07 | 5.651 | 1.211 | 2.211 | 3.925 | 5.93 |
Raw heatmap values · KL divergence
Untransformed metric values for the four generative models with and without historical context, and all four baselines. Each group has its own colour scale. Values are shown to four significant figures; hover over a cell for the full workbook value.
With History
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | 0.08783 | 0.05183 | 0.1084 | 0.1014 | 0.05721 | 0.07173 | 0.0583 | 0.04038 | 0.1236 | 0.1005 | 0.06009 | 0.04621 |
| RNN VAE | 0.1478 | 0.08727 | 0.1098 | 0.1167 | 0.09394 | 0.1124 | 0.06809 | 0.05373 | 0.1799 | 0.1134 | 0.07578 | 0.04883 |
| Transformer diffusion | 0.04918 | 0.06609 | 0.1322 | 0.1386 | 0.07307 | 0.03947 | 0.03042 | 0.06181 | 0.1186 | 0.1615 | 0.09109 | 0.09099 |
| Transformer VAE | 0.08552 | 0.118 | 0.1607 | 0.1817 | 0.08908 | 0.06828 | 0.05057 | 0.04316 | 0.07034 | 0.04779 | 0.06292 | 0.09687 |
Without History
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | 0.286 | 0.2528 | 0.3233 | 0.3466 | 0.4175 | 0.2001 | 0.2614 | 0.2458 | 1.34 | 0.9119 | 0.6969 | 0.6204 |
| RNN VAE | 0.2353 | 0.3161 | 0.2603 | 0.2371 | 0.2511 | 0.2517 | 0.2377 | 0.1776 | 0.3863 | 0.2674 | 0.2785 | 0.2389 |
| Transformer diffusion | 0.1831 | 0.3055 | 0.4261 | 0.3874 | 0.9426 | 1.157 | 0.2687 | 0.223 | 1.881 | 2.351 | 1.539 | 0.8809 |
| Transformer VAE | 0.3296 | 0.3193 | 0.3381 | 0.3014 | 0.2089 | 0.2671 | 0.1894 | 0.212 | 0.1719 | 0.1681 | 0.152 | 0.1205 |
Baseline
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| TFT | 0.2185 | 0.1927 | 0.3144 | 0.42 | 0.2761 | 0.2919 | 0.5122 | 0.2334 | 0.2901 | 0.2272 | 0.2533 | 0.2928 |
| N-HiTS | 0.3931 | 0.1929 | 1.086 | 1.039 | 0.1675 | 1.095 | 6.949 | 2.701 | 0.1993 | 0.1375 | 6.209 | 2.614 |
| TSMixer | 0.5055 | 0.6738 | 0.7913 | 0.7066 | 0.09105 | 0.0305 | 0.05483 | 0.06803 | 0.1084 | 0.1002 | 0.1825 | 0.1638 |
| iTransformer | 1.571 | 1.483 | 0.9676 | 0.9078 | 1.34 | 1.586 | 1.078 | 1.367 | 1.273 | 0.9713 | 0.6264 | 0.6418 |
Raw heatmap values · DTW
Untransformed metric values for the four generative models with and without historical context, and all four baselines. Each group has its own colour scale. Values are shown to four significant figures; hover over a cell for the full workbook value.
With History
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | 5.694 | 5.41 | 5.015 | 4.943 | 40.68 | 38.89 | 35.69 | 33.89 | 187.7 | 174.6 | 160.8 | 149.8 |
| RNN VAE | 6.104 | 5.695 | 5.426 | 5.517 | 45.02 | 41.37 | 39.09 | 37.25 | 193 | 177.2 | 163.1 | 155.3 |
| Transformer diffusion | 5.653 | 5.475 | 5.109 | 4.846 | 41.51 | 37.89 | 34.91 | 34.31 | 182.5 | 163.7 | 153.2 | 147.6 |
| Transformer VAE | 6.176 | 5.905 | 5.401 | 5.058 | 43.31 | 42.31 | 37.42 | 35.35 | 174.5 | 163.3 | 159.4 | 152 |
Without History
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| RNN diffusion | 8.474 | 8.308 | 8.32 | 8.032 | 72.12 | 69.55 | 68.1 | 65.58 | 261.5 | 242.3 | 231.4 | 213.1 |
| RNN VAE | 8.347 | 8.495 | 8.383 | 8.031 | 69.51 | 69.78 | 66.31 | 66.66 | 240.1 | 229.5 | 217.9 | 212.9 |
| Transformer diffusion | 8.804 | 9.058 | 8.092 | 8.071 | 75.97 | 70.51 | 67.2 | 65.1 | 279.9 | 275.6 | 241.1 | 227.5 |
| Transformer VAE | 8.204 | 8.054 | 7.97 | 7.814 | 67.67 | 65.72 | 64.26 | 65.73 | 236.8 | 227.5 | 221.4 | 213.3 |
Baseline
| Model | 24 hours | 7 days | 28 days | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | 30 min | 1 hour | 2 hours | 3 hours | |
| TFT | 12.59 | 11.97 | 11.55 | 10.9 | 30.74 | 38.45 | 40.63 | 37.02 | 22.02 | 42.26 | 78.26 | 103.7 |
| N-HiTS | 166.9 | 59.97 | 72.53 | 81.57 | 51.83 | 45.27 | 1083 | 675 | 82.3 | 94.72 | 4943 | 2378 |
| TSMixer | 12.16 | 10.13 | 11.92 | 9.542 | 31.02 | 40.67 | 43.35 | 40.35 | 22.32 | 44.58 | 85.34 | 108.5 |
| iTransformer | 12.07 | 11.9 | 11.16 | 10.54 | 41.58 | 50.82 | 48.73 | 49.47 | 39.08 | 73.45 | 138.7 | 164.1 |
Seven error metrics and twelve forecast configurations. Raw results include four generative models with and without history, plus TFT, N-HiTS, TSMixer and iTransformer. Percentage views compare individual error metrics, not overall accuracy scores. The workbook includes the rebuilt comparisons and a raw_results sheet with the displayed source values.
Technical decisions & tools
Implemented the custom generative models and local iTransformer in PyTorch; TFT, N-HiTS and TSMixer used Darts. The workflow used Python, pandas, NumPy and scikit-learn, with training performed locally and on the Katana cluster.
The retained artifacts include model checkpoints, evaluation workbooks and diagnostic plots for all 144 runs. Report conclusions are research findings from this experiment, rather than a claim of deployed forecasting performance.








































