Distribution load forecasting benchmark
A reproducible benchmark for short-term aggregate distribution-load forecasting using weather, calendar, and historical demand data.
Project definition
Problem statement
Distribution demand varies with hour, weekday, season, weather, holidays, outages, and local consumer mix. Random train-test splits can leak future patterns and overstate forecasting performance.
The engineering problem is to create a time-correct benchmark that validates load data, compares simple and learned models, quantifies uncertainty, and explains errors during unusual demand periods.
Project objectives
- Prepare aggregate feeder or distribution load series with weather and calendar features.
- Detect gaps, meter resets, outages, duplicated periods, and implausible values.
- Compare persistence, seasonal, statistical, and machine-learning models.
- Use rolling-origin tests across feeders, seasons, and forecast horizons.
- Produce prediction intervals and analyse peak, holiday, and unusual-event errors.
System design
System modules
Load data manager
Imports timestamped demand and related weather records with source, units, interval, and feeder metadata.
Quality processor
Finds gaps, duplicates, time-zone errors, outages, resets, and invalid demand values.
Feature pipeline
Creates time-safe lag, rolling, calendar, temperature, and selected interaction features.
Forecast runner
Trains baseline, statistical, and selected machine-learning models through one interface.
Evaluation dashboard
Shows forecasts, intervals, feeder and horizon metrics, peaks, errors, and model comparisons.
Methodology
System workflow
- 01Select series
The user selects prepared feeders, history, forecast horizon, weather source, and evaluation period.
- 02Validate
The system displays data gaps, outages, transformations, and excluded intervals.
- 03Build forecasts
Models train only on observations before each rolling cut-off.
- 04Evaluate
Point and interval errors are calculated by feeder, season, horizon, and demand condition.
- 05Investigate events
Peak and unusual-period errors are linked to input conditions and model residuals.
Demonstration scenario
A feeder’s day-ahead load is forecast for a summer week. Persistence, seasonal-naive, and machine-learning models are compared through rolling tests. The dashboard highlights one evening-peak miss, its temperature and calendar context, and the prediction interval around the next forecast.
Engineering
Technical architecture
- Web application
- Nuxt and Vue for feeder selection, quality review, forecast charts, intervals, and comparisons.
- Forecast API
- FastAPI for prepared series, feature jobs, models, rolling tests, forecasts, and exports.
- Data layer
- PostgreSQL for load, weather, quality flags, feature versions, models, predictions, and metrics.
- Modelling pipeline
- Python, Pandas, statistical models, and scikit-learn with strict time-aware transformations.
- Reproducibility
- Fixed cut-offs, versioned data, saved parameters, naive baselines, deterministic seeds, and experiment manifests.
Testing
Evaluation
Evaluation measures
- Mean absolute error, root mean squared error, and normalised demand error
- Peak-demand timing and magnitude error
- Accuracy relative to persistence and seasonal-naive baselines
- Prediction-interval coverage and average width
- Performance across feeders, seasons, horizons, holidays, and outage-adjacent periods
- Training, forecast, and dashboard response time
System boundaries
- The benchmark uses aggregate prepared data and does not expose household-level consumption.
- Forecasts apply only to the documented feeders, data coverage, and horizons.
- The project supports analysis and does not operate a distribution control system.
- Unplanned outages, policy changes, and rare events may not be predictable from historical data.
Included
- 01Load-data and forecast experiment interface
- 02Feature, baseline, model, and backtesting pipelines
- 03Feeder, horizon, uncertainty, and error-analysis dashboard
- 04Prepared aggregate load and weather datasets with results
- 05Complete source code in a private GitHub repository
- 06Complete project documentation with synopsis, abstract, methodology, data-flow diagrams, forecast results, screenshots, and conclusion
- 07Setup and usage guide
Project record
No buyer information is collected on this page.
- Permanent project ID
- GP-EE-0W1GUIP
- Catalogued
- 21 Aug 2026
- Completed
- Pending
- Verified
- Pending
- Demonstration
- Added when ready
Handover
After purchase
- 01Payment is confirmed
The project is marked unavailable and cannot be purchased again.
- 02Repository access is granted
The buyer's submitted GitHub account receives access to the private repository.
- 03The purchase record is delivered
The certification sheet is prepared from the reviewed buyer details and sent privately by email.