← Back to project catalogue
GP-EE-0W1GUIPElectricalOpen for request

Distribution load forecasting benchmark

A reproducible benchmark for short-term aggregate distribution-load forecasting using weather, calendar, and historical demand data.

  • Nuxt
  • Vue
  • FastAPI
  • PostgreSQL
  • Python
  • Pandas
  • scikit-learn
  • Docker

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

01

Load data manager

Imports timestamped demand and related weather records with source, units, interval, and feeder metadata.

02

Quality processor

Finds gaps, duplicates, time-zone errors, outages, resets, and invalid demand values.

03

Feature pipeline

Creates time-safe lag, rolling, calendar, temperature, and selected interaction features.

04

Forecast runner

Trains baseline, statistical, and selected machine-learning models through one interface.

05

Evaluation dashboard

Shows forecasts, intervals, feeder and horizon metrics, peaks, errors, and model comparisons.

Methodology

System workflow

  1. 01
    Select series

    The user selects prepared feeders, history, forecast horizon, weather source, and evaluation period.

  2. 02
    Validate

    The system displays data gaps, outages, transformations, and excluded intervals.

  3. 03
    Build forecasts

    Models train only on observations before each rolling cut-off.

  4. 04
    Evaluate

    Point and interval errors are calculated by feeder, season, horizon, and demand condition.

  5. 05
    Investigate 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

  1. 01Load-data and forecast experiment interface
  2. 02Feature, baseline, model, and backtesting pipelines
  3. 03Feeder, horizon, uncertainty, and error-analysis dashboard
  4. 04Prepared aggregate load and weather datasets with results
  5. 05Complete source code in a private GitHub repository
  6. 06Complete project documentation with synopsis, abstract, methodology, data-flow diagrams, forecast results, screenshots, and conclusion
  7. 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

  1. 01
    Payment is confirmed

    The project is marked unavailable and cannot be purchased again.

  2. 02
    Repository access is granted

    The buyer's submitted GitHub account receives access to the private repository.

  3. 03
    The purchase record is delivered

    The certification sheet is prepared from the reviewed buyer details and sent privately by email.