Frequency response & reserve clearing prices
NESO Enduring Auction Capability results · £/MW/h · EFA day (23:00–23:00 UK)
30-day trend · daily average
Table view · by EFA block
Source: NESO data portal – EAC auction results. DC/DM/DR are cleared per 4-hour EFA block; Quick Reserve (PQR/NQR) per half hour.
GB wholesale power prices
Half-hourly · £/MWh · UK settlement day
Price by settlement period
Table view · by settlement period
Sources: NESO data portal – N2EX GB Day-Ahead Price (Nord Pool hourly auction); Elexon BMRS Market Index Price (APX/EPEX short-term index) and System Prices.
Balancing mechanism stack
Every unit's submitted offers and bids for one settlement period, cheapest first
Merit order
Both curves start at zero MW and run right. Offers rise: what it costs to turn generation up, and NESO calls them from the left. Bids fall: what the unit is paid to turn down, and since NESO wants to pay least it calls those from the right. Hover to see the unit at any volume.
Region
Steps · largest volumes first
Source: Elexon BMRS Bid-Offer Data with PN, MEL and MIL for the same period. A pair's MW level is a price-band edge, not a volume, so each pair takes the room left between its level and the previous pair's, capped by MEL going up and MIL going down. Prices of ±£9,999 and above are placeholders meaning "don't call me", which is why the price range starts narrow. Fuel type is worked out in order: Elexon's BM unit register where it names a specific fuel; then NESO's technology type from the last 90 days of auction results, which is where most batteries are identified; then the unit's name containing battery, BESS or storage; then units that can import and export roughly the same MW, which is nearly always a battery. The Steps table has a "Fuel from" column so you can see which of those decided it. Units holding a Positive or Negative Slow Reserve contract covering the period are marked on the curve and shaded in the table, from the same NESO auction results. Region is the unit's GSP group from the BM unit register. GSP groups are the 14 distribution regions, so transmission-connected generation and interconnectors have none by definition and are grouped as Transmission — that covers most large CCGT, wind and nuclear.
Wind & solar
Forecast against outturn for one EFA day (23:00–23:00 UK), with the forecast runs that led up to it
Wind
Solar
Forecast runs · gap against outturn
Each run is scored only over the settlement periods that have both a forecast and an outturn, so runs are compared on the same periods. Mean gap is signed: positive means the run forecast more than came out. That gap is not pure forecast error — the forecast is of wind that is available, outturn is what was metered, so on a constrained day most of it is wind that was forecast and then bid off in the balancing mechanism. Compare runs with each other to judge the forecast; read the gap itself as forecast plus curtailment.
Table view · by settlement period
Sources, all Elexon BMRS. Outturn is Actual Generation of Wind and Solar (AGWS), half-hourly, onshore and offshore wind added together. It is metered delivery, and it publishes roughly two hours behind the period it covers, so the tail of a running day is blank.
Wind forecast is NESO's Wind Generation Forecast (WINDFOR), republished about every two hours at 03:30, 05:30, 08:30, 10:30, 12:30, 16:30, 19:30 and 23:30 UTC, each run reaching roughly three days ahead. That is the only GB wind source with a run history, which is why the five runs come from it. It is hourly, so each value stands for both halves of its hour. The day-ahead run is the last one published before 09:10 the previous morning — the Grid Code deadline for NESO's day-ahead publication — so it is what the market had in hand for the day-ahead auction; when that run is already one of the five, it is labelled rather than drawn twice. While the chosen day is still running, the newest run so far is also shown, dotted and marked intraday: it re-forecasts the hours still ahead but only hindcasts the ones already gone, so it is not comparable with the rest.
Solar forecast is the day-ahead Generation Forecast for Wind and Solar, published once a day at 16:45 UTC. Elexon publishes no intraday solar re-forecast and NESO's embedded forecast keeps no history, so solar shows the one or two runs that exist rather than five. Most GB solar sits on the distribution network and is estimated rather than metered, so treat the solar level as an estimate on both sides. Note the ENTSO-E day-ahead wind forecast in the same dataset covers a wider fleet than WINDFOR — several GW wider — so it is deliberately left off the wind chart rather than drawn alongside runs it cannot be compared with.
Asset live activity
BM Unit physical notifications, limits, Bid-Offer Acceptances & service contracts
Output profile · MW
Bid-offer prices by pair
Prices the unit submitted for each bid-offer pair across the day. Orange = offer prices (to turn up), blue = bid prices (to turn down); the dash pattern gives the pair number, with pair ±1 solid and nearest the physical notification. Source: Elexon BMRS Bid-Offer Data.
Estimated revenue · N2EX day-ahead prices
By hour
Wholesale = PN energy × hourly day-ahead price (discharge earns, charge pays). BM = Elexon indicative BOA cashflows. Services = NESO EAC availability (EFA day). Excludes imbalance, network charges, fees and losses.
Bid-Offer Acceptances
Service contracts won (EAC)
Bid-offer ladder · current period
Sources: Elexon BMRS PN, MEL/MIL, BOALF, BOD; NESO EAC results by unit. Metered output (B1610) is published by Elexon several days in arrears, so "live" here means notified and instructed positions.
Service price forecast
DC, DM, DR & QR clearing prices · next 7 EFA days · statistical model run in your browser
Forecast
Dashed = forecast, shaded = P10–P90 range from backtest errors, solid = cleared price (once the auction has cleared).
Forecast table · by EFA block
Optimised schedule
Best split of the battery between DA trading and DC/DM/DR/QR for the selected EFA day, using N2EX day-ahead prices and the service forecast above.
MW by half hour · up = export side (discharge, DCL/DML/DRL, PQR) · down = import side (charge, DCH/DMH/DRH, NQR)
State of charge · MWh · shaded = band the contracted services require (min: energy held for Low/PQR; max: room held for High/NQR)
Schedule by EFA block
A linear optimisation for one EFA day. Service MW are held for the whole EFA block (QR per half hour), with enough power headroom/footroom and stored energy to deliver each service for its full duration, plus room in the opposite direction to restore 20% of each response energy volume per half hour (NESO's energy recovery rule: DC 10%, DM 20%, DR 40% of contracted MW) (defaults: DC 15, DM 30, DR 60, QR 30 min; check against your contracts). Each EFA block is either DC/DM/DR or QR, never both; a DC/DM/DR block holds at most one dynamic service per direction (e.g. DCL with DRH, but never DRH with DMH); and PQR and NQR are each capped at 50% of MW (both adjustable under Service rules). Response energy: contracted DC/DM/DR moves the battery's charge as frequency moves (Low products drain it, High products fill it). That energy isn't paid, so the expected drift, from NESO's response curves over the last 7 days of Elexon grid frequency, is built into the state of charge, and the energy lost is bought back at the DA price. The battery ends the day at least as full as it started. It assumes you win every MW at the forecast price, uses expected (average) drift rather than worst case, and leaves out intraday buy-back premiums, BM, imbalance, fees and degradation. Use it as a starting point for bids, not a guaranteed result.
How good is it? · backtest over the last 21 days
Average absolute difference between forecast and cleared price, in £/MW/h, for forecasts made 1, 3 and 7 days ahead.
Method: one ridge regression per product and horizon, trained on the last 90 days of NESO EAC results. Inputs: the latest cleared price for each block, its 7-day average, the latest day's average, weekend flag, and the change in NESO's requirement (buy orders historically; DC 4-day, DM, DR and QR requirement forecasts going forward). It can't see competitors' bids, outages or new capacity, so treat it as a baseline, not a price call.
Forecast comparison
Three ways one asset could have played a past EFA day, each with buying and selling optimised
Revenue by source
All three are valued at the prices that actually cleared, so they are directly comparable. The forecast case picks its services from the P50 forecast and is then paid what the market really paid.
Schedule
State of charge · MWh
Revenue breakdown
Contracts this asset cleared
Battery rules — efficiency, SoC limits, cycles, service durations, energy recovery and the stacking rules — come from the optimiser settings on the Forecast tab; MW, MWh and the start → end state of charge are set here; MW and MWh default to the unit's registered capacity over two hours. The day must finish at or above the end figure, so setting it below the start lets the optimiser sell the difference down, and above it makes the optimiser buy its way back up. This reads nothing about what the asset physically did: no physical notifications, no acceptances. The "as cleared" case pins service volumes to the contracts the unit won in the EAC auction and optimises only the buying and selling around them, so it can hold combinations the stacking rules would otherwise bar.