Every figure on this site is computed from the public record of the GB electricity market: Elexon settlement data, NESO auction results and operational files, LCCC and Ofgem scheme data, DESNZ registers. Nothing is modelled from a market view, and nothing is calibrated to anyone else's published numbers. Where a quantity is not public it is left out and named as missing, never estimated. Each section below states the definition, the inputs, the rules that turn one into the other, and what the result does and does not include.
What it measures. What a megawatt of grid-scale battery in the Balancing Mechanism earned, per year, from every market it can sell into. The index is a capacity-weighted average of the fleet, not a model of an ideal battery: each unit's revenue is reconstructed from its own settlement and auction record.
Index. For each settlement day, index = Σ revenue of active eligible units ÷ Σ their rated MW × 365, scaled by 24 over the day's hours on the two clock-change days. A period's figure is the ratio of sums: total revenue of the active units over their total MW-days, × 365, which is the MW-weighted mean of the daily indices; the plain mean differs from it by up to 3% over a year and is not used. The chart's line is the same ratio over a rolling 30 days. “Merchant” leaves out the Capacity Market. £/MWh divides by stored energy (MW × duration) over the units whose duration is known.
Which batteries. Every BM unit identified as a battery from Elexon's unit register (name and symmetric import/export capacity), NESO's auction declarations and the Capacity Market register. Grid-scale only: units under 5 MW (4 units, 9.5 MW) are supplier aggregations and single containers whose published meter shows no real flow, so there is nothing to price. Small and behind-the-meter batteries outside the Balancing Mechanism are out of scope.
Rated MW. Elexon's registered capacity, capped at the best public evidence of the battery's size where that is lower: its highest metered half-hour (plus 2% for auxiliaries), its largest NESO award, or its own Capacity Market connection capacity. Revenue scales with the battery's power, and the registered figure is often the grid connection, which can sit well above it.
Active. A unit counts on a day it submitted a non-zero physical notification, held a paid response or reserve contract, or metered at least 1 MWh of cycling. A unit joins from its first day with a traded position, a BM cashflow or an award: cycling before that is commissioning and would otherwise sit in the divisor earning nothing.
Wholesale. The final physical notification is the only public statement of what a unit intended to deliver, so it stands for the traded position. Its hourly shape is valued at the GB day-ahead hourly auction price (the LCCC blend of both exchanges' auctions); the half-hourly remainder at Elexon's intraday market index. The blend is published two days after delivery, so the last two days are priced provisionally at the hourly mean of the market index and re-priced when it lands. Over September 2026 that provisional pricing ran 5% under the final figure for the month, with single days off by up to half; provisional days are shaded on the chart.
Balancing Mechanism. Elexon's indicative cashflows for accepted bids and offers, as settled. Negative when batteries pay more to charge on bids than they earn on offers. Acceptances settled at Elexon's placeholder prices (±9,999 and ±99,999 £/MWh) are left out and recorded separately: from July 2026 each pair's own price in the acceptance stack identifies them, and before that a side whose cashflow exceeds £9,000 per MWh accepted. Over a 30-day window they are worth under £0.6k/MW/yr. An accepted bid books what the battery pays NESO for energy it had already sold and no longer delivers, so Wholesale and BM together are what it earned on the position it actually ran.
Imbalance. (metered − notified − accepted BOA volume − ABSVD) × system price per half hour, on the latest settlement run published. Across the fleet this nets to about zero; by unit and day the gross swings are about ±£4–5k/MW/yr. Small unit-level negatives are normal: frequency response and the timing of actions push batteries off their notified position, and the system price tends to be against them when that happens.
Response and reserve. NESO auction results: contracted MW × clearing price × contracted hours, for Dynamic Containment, Moderation and Regulation and for Quick, Slow and Balancing Reserve. Clearing prices can be negative. Performance penalties are not public and are not deducted.
Capacity Market. De-rated obligation × the auction's actual payment per MW for the month, from LCCC's settlement data (so CPI indexation and monthly weighting are already in); months not yet settled use LCCC's forecast over the register's obligation. Agreements belong to Capacity Market units, which are linked to batteries by the unit's own BM id, failing that by exact postcode, by the component's grid reference within 1.5 km, or by the CMU's name or applicant, accepted in that order while they fit the site's size and stored energy. About 60% of active MW carries a linked agreement, so at fleet level this stream is a floor.
Batteries traded through a virtual lead party. Their notifications are not the site's contracted position: a response battery notifies hours of import its meter never shows (one unit notified 283 MWh of import on a day it metered 75 MWh in and 74 MWh out). They count on days they hold a response or reserve contract, with that revenue and their Capacity Market payment; their wholesale, imbalance and BM legs are not observable and are left out rather than estimated (counting their BM cashflows would move the index by between −£0.3k and +£0.8k/MW/yr depending on the window). A VLP battery living off its trading position is therefore absent from the index. Their size is the largest of their awards, their notified peak and the largest single Capacity Market component that names the unit and is already in delivery (never a postcode match, which can be another battery at the same address; never a future agreement; never the sum of one battery entered in several duration classes). They are listed apart from the ranked fleet. Sizing them this way, and refusing to cap a new unit from its commissioning meter, lowers the 30-day index by under £1k/MW/yr against sizing them from their awards alone; the lower figure is the one that can be defended. Their asset meters have only been published since autumn 2026, so they have no duration yet and sit in the all-fleet figure, not in the 1-hour or 2-hour cuts.
Duration. Each unit is placed in the nearest whole-hour class: 1-hour under 1.5 h, 2-hour 1.5–2.5 h, 3-hour and longer above, where the Capacity Market register states the unit's own duration and the class is no more than 1.5× what the meter shows (a longer class on a shorter battery is a partial-capacity contract, not the battery). Otherwise duration is the longest sustained discharge, or charge at 88% round-trip efficiency, at 10% of rated power or more over 13 weeks of metering, taking the best unit at a multi-unit site; on that basis the class cuts sit at 1.4 h and 2.75 h because usable energy runs about 10% under nameplate. The 3-hour+ cut appears once a battery qualifies.
Today so far. The page shows the current UK day half hour by half hour: the summed physical notifications of BM-registered batteries in the index (VLP-traded units excluded), split unit by unit into discharge and charge, against the Elexon market index price (APX), which is published as the day goes on; half hours with no trades are left out. The spread is the discharge-weighted price less the charge-weighted price. Notifications are planned positions, not metered output or revenue, so the panel is a live indication, not a partial value of the index.
Not included. Performance penalties and non-delivery, network charges and embedded benefits, tolling and floor contracts, power purchase agreements: none are public. Metered data lands about five working days after delivery and is revised at later settlement runs, so the latest fortnight moves.
What they measure. What a megawatt-hour from each technology earned in the GB day-ahead market, how that compares with a flat all-hours price, and, for wind and solar, what the support schemes paid on top, measured on the volume each scheme actually paid for.
Output. Wind is transmission-connected wind: the half-hourly metered output of wind farms in the Balancing Mechanism (Elexon FUELHH). Embedded wind is not measured half-hourly in public data and is excluded. Solar is all GB solar, from Sheffield Solar PV_Live's national half-hourly outturn and installed-capacity estimate. Gas is CCGT plus OCGT metered output (FUELHH). Half-hours are summed to the hour.
Price. The GB hourly day-ahead auction price, as published by LCCC (the Intermittent Market Reference Price). Each hour of output takes that hour's price.
Capture price. capture = Σ (position_h × price_h) ÷ Σ position_h over the hours of the period: the average day-ahead price of the energy the fleet sold. For wind and gas, position = metered output − accepted offer volume − accepted bid volume per hour (bids are negative), from Elexon's indicative accepted volumes for the fleet's units, 2022 onwards: energy NESO turned down had been sold day-ahead, and energy it turned up had not, so it is paid through the Balancing Mechanism and shown there. Before 2022, and for solar, the position is metered output. Capture on delivered output is also shown.
Baseload and capture rate. baseload = Σ price_h ÷ number of hours, the plain average of every priced hour, and capture rate = capture ÷ baseload. Below 100% means the technology produces most when prices are low.
Periods. Months and years are UK calendar periods. “Last 12 months” is the latest 8,760 priced hours, compared with the 8,760 hours before them.
Negative-price hours. Hours with a day-ahead price below zero, and the share of the period's output in them: for wind and gas from 2022, the share of the position sold.
Cannibalisation. Each month's average output against its capture rate, with an ordinary least-squares line through the complete months: the slope is how much capture rate falls per extra gigawatt of average output.
Daily shape. Over the last 12 months, by UK clock hour: mean output, the 10th and 90th percentiles of hourly output, and the mean day-ahead price.
Turning wind down. Elexon's indicative Balancing Mechanism cashflows on accepted bids by wind units, from 2022, split by direction: bids priced below zero are NESO paying the farm to reduce output; bids priced above zero are the farm paying NESO. Monthly totals; a rolling 12-month figure takes each month in proportion to the share of its hours inside the window. These are first-run (indicative) settlement figures and move slightly at later runs.
Gas balancing income. The same cashflows for CCGT and OCGT units: offers are paid to increase output, bids pay back for reducing it.
Solar £/MWp and load factor. £/MWp/yr = day-ahead revenue ÷ average installed MWp × 8,760 ÷ hours in the period and load factor = output ÷ (installed MWp × hours), both on PV_Live's capacity estimate, which includes rooftop systems. Market income only. Part calendar years are left blank: solar output is too seasonal for a few months to scale to a year.
CfD payments. For every Contract for Difference unit and day, LCCC publishes the eligible generation, the strike price in force, the unit's generation-weighted reference price and the settled difference payment. The index sums them by technology: CfD £/MWh = Σ payments ÷ Σ generation, negative when market prices were above strike and generators paid back. Market income for this output is Σ (generation × weighted reference price) ÷ Σ generation. Payments are used as settled and never recomputed: from Allocation Round 4 no top-up is paid in hours with a negative day-ahead price, but that generation still counts, so the figure is per megawatt-hour generated.
Renewables Obligation. Certificates issued for Great Britain (England and Wales, and Scotland; Northern Ireland excluded) from Ofgem's Renewable Electricity Register, by month of generation and technology, with the megawatt-hours they certify. ROC value = ROCs × (buy-out price + recycle value) for the April–March obligation year, the cost the scheme places on consumers. RO £/MWh = ROC value ÷ certified MWh. Market income for this output is the index's capture price for the technology over the same months, day-ahead revenue ÷ MWh sold. What a generator receives for its certificates under its power purchase agreement is private and usually a few per cent lower than this value.
Feed-in Tariffs. Scheme totals for each April–March year from Ofgem's annual report: generation payments ÷ electricity generated. They cover every FiT technology (solar is about 79% of FiT capacity, mostly rooftop and largely self-consumed), so they are shown separately and not added to the utility-scale figures.
Settled months. A month counts as settled when every one of its days is in LCCC's CfD data (about ten days behind) and under 5% of its certificates are still pending (the latest two months are wholly pending and well short of their final totals). Unsettled months are shown hatched. The “last 12 settled months” summary uses the latest twelve settled months. Obligation years whose recycle value is not yet published carry the buy-out price alone.
Today so far. Each index page shows the current UK day half hour by half hour: output (Elexon FUELHH for wind and for CCGT + OCGT gas; Sheffield Solar PV_Live for solar) against the Elexon market index price (APX), which is published as the day goes on; half hours with no trades are left out. The capture price so far is output-weighted; the market average is the plain mean over the same half hours. For all three the price is within-day, not the day-ahead reference the index uses, and for wind and gas the output is metered, not the position sold, so it is a live indication, not a partial value of the index. A half hour Elexon published from part of its data (see Known limitations) shows its estimated output, labelled as an estimate, once one exists; until then it is left out.
Checks. Measured on metered output, LCCC's basis, wind and solar capture rates sit within about two points of the capture rates implied by LCCC's own generation-weighted reference prices for its CfD wind and solar fleets, in every complete year from 2017. On the position sold, wind reads a point or two lower in years of heavy turn-down (2024: 90.2% against LCCC offshore 92.5%), because the turned-down hours are cheap ones. Wind turn-down payments total £310.5m in 2023 and £395.6m in 2024, against £310m and over £393m in the Renewable Energy Foundation's published counts. CfD payments total £1,394m in 2023 and £2,360m in 2024, against LCCC's £1.41bn and £2.36bn. ROC values and support per MWh match Ofgem's annual report figures for every year from 2016-17 on a UK basis.
Known limitations. Before 2022 there are no accepted volumes by unit in the warehouse, so wind and gas capture are on metered output for those years. Accepted volumes are Elexon's first-run (indicative) figures; later settlement runs revise them slightly. Wind output is transmission-connected only. Gas figures are revenue, not margin: fuel and carbon costs are not deducted. Elexon's half-hourly generation (FUELHH) occasionally publishes a half hour with most output missing, a few times a year, usually mid-morning: NESO's planned Balancing Mechanism IT outages stop Elexon's 5-minute feed and the missing readings are published as zeros (eight days in the two years to October 2026, 22 half hours). A half hour is treated as broken when its total output is under 85% of the three half hours either side and its generation excluding interconnectors and pumped storage is under 75%. Each one is listed in the data gaps register and estimated from other official Elexon series, scaled to FUELHH on the neighbouring good half hours: wind from Elexon's wind outturn (AGWS), published within the hour, and the other fuels from settlement metering (B1610) summed by fuel, about five working days later. Tested on good half hours, wind lands within about 1.5% of FUELHH and the total within about 5%, "other" being the least exact fuel. The index keeps FUELHH as published (these half hours move yearly capture prices by less than £0.01/MWh); the overview mix and the Today panel use the estimates, labelled, and leave a half hour out until one exists.
Not included. Power purchase agreement prices, Guarantees of Origin and REGO sales, embedded benefits, network charges, and any payment that is not in public settlement or scheme data.
What it measures. The highest electricity price an AI data centre can pay and still cover every other cost of serving AI, in $ or £ per MWh. It is inspired by the compute heat rate of Hans Royal (Royal Powers Energy, Inc.), whose quarterly CHR Index is our benchmark, but the inputs and several assumptions are our own (below), so our values differ from his. This section is a preview: unlike the GB market indices it depends on a few stated estimates, each labelled on the page.
Definition. CHR = (R − C) ÷ (1 + m) with Royal's required return m = 30%: at the CHR price the operator earns 30% on top of its power bill. R = (output price × output tokens/s + input price × input tokens/s) × utilisation 0.5 × 3.6 ÷ facility kW per GPU. C is the cost to own and run a GPU, excluding power, per MWh: hardware and building written off in straight lines, plus running costs, with no return on capital, because m carries the return. CHR-D, the keep-running price, subtracts only the costs avoided by switching off.
Inputs. Token prices: LiteLLM's price file, with OpenRouter where LiteLLM lacks a model. Where a list price rises with prompt length, the short-prompt rate is used, since an 8k-token prompt sits under every threshold: Claude Haiku 5.5 costs $0.10 per million input tokens and $0.50 per million output tokens up to 100,000 prompt tokens, five times that beyond. Its move into the small Anthropic slot on 21 October 2026, at a tenth of Haiku 4.5's price, is the drop in the Budget group. Throughput: SemiAnalysis InferenceX at the 8k-input, 1k-output workload, read at the speed OpenRouter users are actually served. Each chip is put on an H100-equivalent basis from its published compute and memory bandwidth, so differently tuned benchmarks do not set the comparison. Power: vendor system power × PUE 1.36 (Uptime Institute). Cost: an owner's build from server and network prices, construction cost per watt (Turner & Townsend), depreciation lives from company 10-K filings and the cost of capital (Damodaran). GPU rent: daily public price lists, with GetDeploying's weekly median before October 2026.
Weights and estimates. Models are weighted by the CHR Index's Q3 2026 tier weights (OpenRouter traffic and a market mix from the labs' disclosed volumes are alternatives). All GPUs weights each chip type by the power of chips shipped in the latest four reported quarters (Epoch AI). Closed models' sizes are not published, so their throughput is a class estimate (frontier as DeepSeek-R1, general as MiniMax-M3, small as gpt-oss-120b), marked “estimate”.
Where it differs from the CHR Index. We keep Royal's definition, his 30% required return and his tier weights. We differ in four ways. Revenue counts input tokens as well as output, at the measured 8k-input, 1k-output workload, where input earns most of the revenue. Each tier is the median of named models priced from public lists. Facility power is each chip's vendor system power × PUE 1.36, where the Index uses a DGX H100 at PUE 1.3. The cost of owning a GPU is our own build.
Power and GPU rent. Facility kW per GPU is IT power × PUE. Nameplate IT power is the vendor's system power per GPU (else TDP + 600 W); measured is 80% of TDP + 300 W. GPU rent comes from daily snapshots of public marketplace and cloud price lists, one value per provider, with a fence at 2.5× around the median; a GPU's rent is published once three or more providers list it. Revenue on rent = rent ÷ facility MWh per GPU-hour. Rents are advertised prices, not transacted ones.
Regions and currency. Power prices beside the index are day-ahead daily averages over each market's own day. Currency conversion uses European Central Bank reference rates, with USD/GBP a derived cross.
Sources. Token prices: LiteLLM (Berri AI); OpenRouter. Token volumes: OpenRouter rankings, CC BY 4.0. Throughput: SemiAnalysis InferenceX; MLPerf Inference result files (MLCommons) as a cross-check. Hardware prices, specs and chip shipments: Epoch AI (CC BY 4.0). Cost of capital: Aswath Damodaran (NYU Stern). Construction cost: Turner & Townsend. Depreciation lives: company 10-K and 20-F filings. PUE: Uptime Institute. GPU rent: Vast.ai, RunPod, Shadeform, Hyperbolic, Thunder Compute, Akash Network, Nosana, Nebius; reference overlays GetDeploying (CC BY 4.0) and Ornn OCPI. Power prices: LCCC (GB), Energy-Charts (Fraunhofer ISE) for European markets, CAISO, PJM and MISO. FX: European Central Bank. System power: Nvidia and Supermicro documentation. Benchmark: CHR Index (Compute Heat Rate™), Royal Powers Energy, Inc.
Wholesale price. Elexon's APX market index: the volume-weighted price of trades on the intraday continuous market in each half hour. It is the only wholesale price published live, which is why it carries the Overview and Markets pages. “Baseload” on those pages is its plain daily average; peak is 07:00–19:00 London time and off-peak the rest. The index pages use the day-ahead auction price instead, which arrives two days later; the two monthly averages differ by up to 5%.
Spreads. The 1-hour and 2-hour spreads are the mean of the day's two (four) dearest half-hours minus the mean of its two (four) cheapest: the spread available with perfect foresight, ignoring losses and the order of charge and discharge.
Imbalance price. Elexon's system price per half hour, with the net imbalance volume shown beneath it: positive when the system was short and NESO bought, negative when long.
Generation. NESO's generation mix including embedded wind and solar. Periods NESO has not yet published are filled from Elexon's transmission fuel mix and Sheffield Solar's PV_Live, with embedded wind scaled from NESO's last value, and are marked provisional.
Balancing costs. Each accepted bid and offer in Elexon's settlement stack, costed at its original price × accepted volume and split by the system flag into energy and system actions. System actions are those Elexon flags as taken for grid limits in a particular place: congestion (typically Scotland to England), voltage or stability. Trades outside the mechanism come from DISBSAD, less the non-BM frequency response adjustments it carries: those are paid under response contracts and NESO counts them there, so they are reported separately rather than as trades. Today's figures are indicative; the day total reconciles to Elexon's own cashflows and, once published, to NESO's official daily balancing cost (to the pound on most checked days, within 0.2% on all of them). “Constraints share” divides NESO's published constraint cost by NESO's published total. NESO recovers the net cost, constraints included, from suppliers through BSUoS charges, which end up in household and business bills.
Constraints. NESO's day-ahead forecast of flow across each transmission boundary before it acts, against the boundary's limit. Flow past the limit is what NESO must re-dispatch: bids behind the boundary, offers beyond it. Boundaries sit in series, so one surplus shows on several. Cost by boundary is NESO's own thermal constraint cost series.
Rate card. For each product, £/MW/day is the sum over the day's delivery blocks of clearing price × block hours: what one megawatt held in every block earned. Frequency response clears per four-hour EFA block; reserve per half hour. The average £/MW/h divides that by the hours in the day.
Who provides it. Accepted volume by the technology each unit declared to NESO. “Batteries' share” is their accepted MWh over all accepted MWh across the response products.
Revenue history. The same £/MW/day per product, by day, for the chosen window.
Network. NESO's day-ahead boundary flows and limits, drawn on the regions they separate; interconnector flows from Elexon's fuel mix. Map sites are DESNZ REPD entries of 1 MW and over, plus transmission gas units active in the Balancing Mechanism; REPD lags commissioning by a quarter or more and counts sites, not BM units, so its battery total sits below the battery index's active fleet.
System. Transmission demand is Elexon's initial transmission demand outturn. Frequency is Elexon's system frequency, sampled every 15 seconds. Carbon intensity is NESO's Carbon Intensity API. Tightest margin is the minimum of NESO's de-rated margin forecast at the nearest horizon for the day.
Events. Frequency excursions and trips from Elexon's frequency and REMIT outage data (a notice that re-files an outage an earlier live notice already covers is not a new trip); extreme prices are accepted offers above £500/MWh and accepted bids below −£150/MWh (£500 is a routine battery and peaker offer price, and Renewables Obligation wind bids sit around −£105), grouped per station per day.
Indices. The battery, wind, solar and gas figures on the Overview are the same calculations as their pages, over the last 30 days or 12 months as labelled.
Every dataset is pulled from its publisher's own API or file and kept in one warehouse with its publisher, upstream code, source URL and licence. The index endpoints are public now; the full data catalogue and keyed API follow. Contains BMRS data © Elexon Limited copyright and database right; NESO data under the NESO Open Data Licence; LCCC, Ofgem and DESNZ data under the Open Government Licence v3.0; solar from Sheffield Solar PV_Live.