Australian Demand Forecast / Methodology

Methodology

We forecast demand in each region, save what the models predicted, and measure their errors when the real demand is known.

1. Data

What are we predicting?

Electricity demand from AEMO’s TOTALDEMAND series, measured in megawatts (MW). This is demand used in grid dispatch, not total household electricity consumption. It can be negative when local generation offsets demand.

Where and when?

New South Wales / ACT, Queensland, Victoria, South Australia and Tasmania. The experiment contains 39 months, July 2023 through September 2026. The dashboard separates the September backtest from new, hourly live forecasts. The NEM total covers these five regions, not Western Australia or the Northern Territory.

How are observations prepared?

Three consecutive five-minute readings form one 15-minute average. Incomplete periods stay missing. The original source time is fixed UTC+10; charts display UTC. Original files, download dates and checksums are retained.

2. Models

Forecast each region, then add them

Regional historyOnly data before the forecast
Three modelsFit separately in each region
Regional forecastsOne value every 15 minutes
NEM totalSum matching regional forecasts
NEM forecast = NSW + QLD + VIC + SA + TAS
ModelPlain-language explanation
Weighted seasonal baselineA weighted average of comparable historical periods: 40% prior-year, 20% monthly, 25% weekly and 15% daily references. Prior-year demand is adjusted for recent demand levels.
LightGBMQueensland uses decision trees to correct the weighted seasonal baseline directly for each future interval. Other regions use tuned trees with linear leaves and feed each prediction into the next step. All use only observations available before their forecast.
SARIMAA model that learns repeated daily patterns and how recent demand changes. It predicts hourly demand, then converts it to quarter-hour values.

How much history?

Training starts in July 2023. Twelve monthly validation windows, August 2025–July 2026, each add another month of past training data. After choosing settings, both challengers are fitted through August 2026 (1,158 days) and tested on September. The baseline uses prior-year, monthly, weekly and daily reference periods.

How often do forecasts update?

GitHub Actions requests an hourly run at minute 17; execution can be delayed. Each run downloads recent AEMO data and uses saved models to predict up to 24 hours ahead. Models are scheduled to refit monthly using the locked settings. The live dashboard reports errors from the last seven days; forecast evolution shows up to 96 recent issues. Full original forecasts and evaluation revisions remain in private storage.

How are forecasts stored and evaluated?

Each saved forecast records its region, model version, issue time, target time, expected value and prediction range. A later forecast creates a new version; it does not replace the earlier prediction. When actual demand arrives, the system adds the error. Revised actual readings receive revised scores while the original forecast remains unchanged.

IssuePredict demand for a future time
SaveKeep the original prediction
ObserveWait for actual demand
ScorePrediction minus actual

3. Evaluation

A separate one-month test

Settings are chosen using the twelve earlier validation months, independently for each region and model family. August was used to diagnose the Queensland model. The revised approach was chosen using the earlier validation folds, then confirmed on a separate September test. During September, fixed fitted models issue 30 daily forecasts, each covering 24 hours: 2,880 predictions per model and region. New observations update model inputs, but fitted parameters do not change during the test. Historical demand uses final revisions; original publication delays are not reconstructed.

How large is the typical error?

MAE = average of |forecast − actual|

MAE is mean absolute error, in MW. It treats an error of +100 MW and −100 MW equally. Lower is better.

Does the model add value?

FAV = 100 × (1 − model MAE ÷ baseline MAE)

Forecast Added Value compares the model with the weighted seasonal baseline on matching forecasts and actual readings. +10% means 10% less error; −10% means 10% more error. It is not a cash-saving estimate. FAV is undefined if the baseline has zero error.

What else do we measure?

Bias shows persistent over- or underprediction. RMSE gives large misses more weight. Error by lead time shows whether performance deteriorates farther into the future. All comparisons use the same saved forecast versions.

4. Uncertainty

What does the shaded range mean?

Each model has a nominal 90% prediction range, calibrated from July 2026 forecast errors in six-hour lead groups, before the September test. It aims to include about nine in ten outcomes; this is a target, not a guarantee. The NEM range uses errors of the summed forecast rather than adding regional ranges.

How do we check the range?

Coverage measures how often actual demand falls inside it. Width measures how useful or vague the range is. A wide range can cover nearly everything while offering little precision. Lower bounds may cross zero because this is grid dispatch demand.

5. Monitoring

Has the incoming data changed?

Density plots compare the saved model’s training data with later observations. We compare demand levels, changes between readings and demand after removing the usual weekly pattern.

How large is the change?

KS distance measures the largest separation between two cumulative distributions. Wasserstein distance describes how far values would need to move to make the distributions match. PSI, average shifts and missing readings provide additional checks.

When should we investigate?

A distribution change is a reason to review data quality and forecast errors, not automatic proof that a model has failed. KS and Cramér–von Mises p-values are exploratory here: electricity readings are related over time, so the usual independent-observation assumption does not hold.

Technical reference

The detailed model settings, lag definitions, data limitations and scoring rules remain available for reproducibility.

Read the full technical reference