Skip to content

Forecast building blocks

How NGED assembles different kinds of forecast from the "Lego blocks" OCF delivers.

Status: 🚧 Planned. The normalised [−1, +1] forecast is planned for v0.5, scaled by the static P99 capacity (#246; the code still forecasts raw MW/MVA today — see delivery tables, Table 1). The capacity and switching building blocks depend on work scheduled for v0.6 (switching) and v0.7 (capacity). OCF will provide example Python code (likely a small package) to demonstrate assembling these forecasts. See the roadmap index for status conventions.


The idea

Rather than ship one fixed forecast, OCF delivers a set of building blocks so NGED can construct whichever forecast suits the question they are asking. The two headline forecasts NGED will assemble are the normal operation forecast and the prevailing conditions forecast.

The blocks are:

  1. Power forecasts scaled to [−1, +1] (the power_forecast table). These always assume a "normal running arrangement" and perfect health of generators and substations — i.e. a worst-case network-constraint planning view. Producing this topology-normalised signal in the presence of historical switching events is the subject of switching events & latent demand (v0.6 detector → v2 mixture models). "Normal" means:
    • Substations: all "normally closed" switches are closed and all "normally open" switches are open.
    • Generators: the generator is unconstrained by NGED's Active Network Management (ANM) and operating at full capacity.
  2. Dynamically changing effective capacity of generators (the effective_capacity table). E.g. if a wind turbine breaks in a wind farm, we estimate the reduced effective capacity over time.
  3. Switching events (the substation_switching table). OCF estimates the amount of power diverted across substations. This block is conditional: whether a discrete event table ships at all is an open question, and continuous per-substation switching-state signals may be delivered instead — see the decision point.

Sign convention

Sign convention depends on substation_type in TimeSeriesMetadata, whose five values (BSP, EHV Customer, GSP, HV Customer, Primary) partition into two behavioural cases:

  • Substations (BSP, GSP, Primary): positive = power flowing towards end-users; negative = excess generation flowing back upstream, into the electricity network above the substation.
  • Customer meters (EHV Customer, HV Customer): positive = the customer is sending power to NGED's distribution network; negative = the customer is drawing power from NGED's distribution network. A customer meter can sit at a demand site or a generation site, so this case is not "generators only".

The convention describes a direction, so it applies only where units is MW. A series metered in MVA reports the magnitude of the flow and cannot see direction, so reverse power flow appears as a rise rather than as a change of sign. A negative value is then a fault between the meter and us rather than an export. In the trial area, 10 sites are metered in apparent power — see apparent power (MVA) metering for the "bouncing off zero" behaviour apparent-power metering produces.


The two forecasts NGED assembles

Normal Operation Forecast (MW or MVA)

Multiply the [−1, +1] forecast by the asset's maximum / nominal capacity:

  • Substations: × the substation's effective capacity — the 99th percentile of observed power flow, written by the effective_capacity asset since v0.1.
  • Generators: × the maximum estimated capacity of that generator.

This answers: "what would this asset do if it were healthy and the network were in its normal arrangement?" — the worst-case view useful for network-constraint planning.

Prevailing Conditions Forecast (MW or MVA)

This forecast prevails the most recent conditions:

  • Generators: × the most recently observed effective capacity.
  • Substations: prevails the switching state. (How this is achieved depends on the decision point: assembled from Table 5's discrete events, or delivered directly by the metered-power forecast, which carries the current switching state forward natively.)
  • Both: prevails the GENERATOR OR CIRCUIT FAULT value of warning_type (see Table 3 — asset_health_history).

This answers: "what will this asset actually do over the next 14 days if current conditions persist?"


Worked examples

A 5 MW solar farm (5 × 1 MW inverters) where 1 inverter failed last month (effective capacity reduced to 4 MW):

Forecast Behaviour
Scaled [−1, +1] Continues as if the farm is healthy; on a sunny day approaches +1.
Normal Operation Assumes capacity is still 5 MW.
Prevailing Conditions Assumes the inverter stays broken; uses 4 MW for the next 14 days.

A 12 MW bioenergy generator that ran at full capacity 2020–2023, then stopped operating in 2024 and has not restarted:

Forecast Behaviour
Scaled [−1, +1] Predicts +1 for the next 14 days.
Normal Operation Assumes 12 MW capacity → forecasts 12 MW every timestep.
Prevailing Conditions Assumes the generator stays offline → predicts 0 MW every timestep.

Why this matters for "not-on" assets. One trial-area generator has not been operating since mid-2024, so its time series carries no generation signal. The building-blocks approach lets the scaled forecast stay well-behaved while the prevailing conditions forecast correctly reports ~0 MW.