The data
The capacity model
A capacity record is one value, with everything needed to read it correctly. This page lists every field and every member of every vocabulary.
One record, one series
A record is the current value of a series: one dimension of one operator record, fixed for its whole life — asset, direction, technology, availability type, firmness, curtailment band, horizon, scenario, season, variant, unit and methodology. When the operator republishes, the series gets a new value and the old one moves to its history. id (cap_…) identifies the value, series_id (cs_…) the series.
Every vocabulary below is closed, and every one has an unknown (or equivalent) member. That is deliberate. The failure it prevents is an adapter guessing: mapping one operator’s “reserved” onto another’s “allocated” because the words are close, or tagging a figure battery because the page mentions storage. When the source does not say, the answer is unknown, and records with unknown dimensions are returned only with comparability=raw.
direction
| Value | Meaning |
|---|---|
| injection | Power flowing into the grid at the connection: generation, or storage discharging. |
| offtake | Power drawn from the grid at the connection: demand, or storage charging. Storage appears once per direction, because operators publish the two separately and they are rarely equal. |
| bidirectional | The operator publishes one figure that applies to both directions at once. |
| unknown | The source does not say which way the figure applies. Returned only with comparability=raw. |
technology
Tagged only when the operator distinguishes the technology itself. A generic injection figure is generic_generation, however solar the region is.
| Value | Meaning |
|---|---|
| generic_generation | A generation figure the operator does not split by technology. Not solar_pv, however solar the region is. |
| generic_load | A demand figure the operator does not split by technology. |
| solar_pv | The operator publishes a figure for solar PV. |
| wind_onshore | The operator publishes a figure for onshore wind. |
| wind_offshore | The operator publishes a figure for offshore wind. |
| battery | The operator publishes a figure for battery storage. |
| storage_other | Storage the operator names but not as batteries. |
| hydrogen | The operator publishes a figure for hydrogen. |
| electrolyser | The operator publishes a figure for electrolysers. |
| ev_charging | The operator publishes a figure for vehicle charging. |
| data_center | The operator publishes a figure for data centres. |
| other | A technology the operator names that fits no member above. |
| unknown | The source does not say. Returned only with comparability=raw. |
capacity.type — what the number counts
| Value | Meaning |
|---|---|
| available | What remains, by the operator's own method, after whatever that method subtracts. The methodology's includes_* flags say what was subtracted. |
| total | The operator's total hosting capacity before anything is subtracted. Not a headroom figure: what is left for a new connection is a different number, when the operator publishes it at all. |
| requested | Capacity asked for in connection requests the operator has received and not yet decided. |
| reserved | Capacity set aside for accepted requests that are not yet connected. Kept distinct from allocated and pre-reserved wherever the operator distinguishes the stages. |
| allocated | Capacity assigned to specific parties under the operator's process. |
| pre_reserved | An earlier stage than reserved in operators that publish one (Elia, for example). |
| connected | Capacity of installations already connected. |
| waitlisted | Capacity in the operator's queue for when capacity becomes available. |
| contracted | Capacity under existing connection or transport contracts. |
| installed | Installed capacity at the asset, such as a transformer rating, published beside headroom figures. |
| unknown | The source does not say what the figure counts. Returned only with comparability=raw. |
total is not available
total is the operator’s whole hosting capacity before anything is subtracted. available is what remains by the operator’s own method — and that method decides what “remains” means, which is why the methodology says whether it takes reserved, allocated and pre-reserved capacity and pending requests into account. The API never computes one from the other: subtracting a queue from a total produces a figure no operator published. The search defaults to availability_type=available; ask for others explicitly.capacity.qualifier
Some operators publish a bound rather than a number: “more than 10”, “about 5”. The number goes in value and the bound in qualifier (>, <, >=, <= or ~), which is null when the figure is exact. Read the two together: a value of 10 with qualifier > is not a published 10.
capacity.unit and value_mw
| Unit | Meaning |
|---|---|
| MW | Megawatts of active power. value_mw equals value. |
| kW | Kilowatts of active power. value_mw is value / 1000. |
| MVA | Megavolt-amperes of apparent power. value_mw is null: converting needs a power factor the operator did not publish. |
| kVA | Kilovolt-amperes of apparent power. value_mw is null, for the same reason. |
| A | Amperes, a current limit. value_mw is null. |
| kA | Kiloamperes, a current limit. value_mw is null. |
| GWh | Energy over a period, not capacity. value_mw is null. |
| count | A number of things, such as requests in a queue. value_mw is null. |
| percent | A share, such as a curtailment level. value_mw is null. |
| status | A categorical value: see capacity.status and the operator's own label in capacity.status_label. value is null. |
Why MVA is never converted
MW is active power; MVA is apparent power. Between them sits the power factor, which depends on the connection and which operators publishing MVA do not state. Assuming one — 0.9, 0.95 — would print a number with the authority of the operator that the operator never published, and a customer reading 100 MW where the operator wrote 100 MVA has been told something false.
value_mwis set forMW(equal tovalue) andkW(divided by 1,000), and isnullfor everything else.min_capacity_mwandmax_capacity_mwfilter onvalue_mw, so an MVA record can never satisfy them.- To filter in another unit, name it:
unit=MVA&min_capacity=10.
capacity.status — categorical values
Some operators publish a traffic light rather than a number. Those records have unit: "status", value: null, a normalised status, and the operator’s own words in status_label — because “orange” at one operator is not “orange” at another.
| Value | Meaning |
|---|---|
| available | The operator's map says capacity is available. |
| limited | The operator's map says capacity is limited. |
| unavailable | The operator's map says no capacity is available. |
| waitlist | The operator operates a waiting list for this area. |
| under_study | The operator is studying the area and publishes no verdict. |
| unknown | The operator's category has no equivalent above. Its own label is still in status_label. |
firmness and curtailment
| Value | Meaning |
|---|---|
| firm | Offered without curtailment. |
| flexible | Offered with a stated maximum curtailment, carried in curtailment.max_annual_percent (Elia's 5, 10 and 20 % bands, for example). |
| conditional | Offered subject to conditions other than a curtailment band, such as a non-firm connection agreement. |
| unknown | The source does not say whether the figure is firm. |
curtailment is { max_annual_percent } for flexible capacity and null otherwise. A flexible offer with at most 5 % curtailment a year is a different series from the same asset’s firm offer, and from its 10 % offer.
horizon, scenario, season, variant
| horizon.type | Meaning |
|---|---|
| snapshot | The situation now, as last published. year and label are null. |
| target_year | A future year the operator publishes for, in year; label carries the operator's own name for it, such as Y+2. |
| period | A stated period, described in label. |
scenario: a forecast pathway, such as a future-energy-scenarios name.nullwhen the operator publishes a single view.season:winterorsummerwhere the operator publishes seasonal ratings.variant: the operator’s own discriminator, such asmv_30kv, where a record splits further.details: qualifiers the operator states about the value — a limiting factor, an “at voltage ceiling” flag — verbatim.
methodology
| Field | Meaning |
|---|---|
| id, title | The methodology, versioned per source. GET /v1/methodologies/{id} has its summary, disclaimers and documentation link. |
| capacity_basis | How the figure comes about: operator_calculated (the operator computed it), operator_published (the operator states it, such as a queue or a rating), derived, or unknown. |
| network_state | The network condition the operator studied: n (intact), n_minus_1 (with an outage), n_and_n_minus_1, or unknown. |
| binding | Whether the operator treats the figure as binding. The flag repeats what the operator says; decision_context repeats it on every record. |
| non_additive | When true, figures must not be summed across assets: they share upstream constraints. |
| includes_reserved, includes_allocated, includes_pre_reserved, includes_pending_requests | Whether the operator's method takes each category into account: for an available figure, whether it is already deducted; for a contracted figure, whether it is counted in. null means the operator does not say, and it is never guessed. |
| comparability_class | Records may be compared side by side only within one class. See comparability. |
asset
Every record embeds its asset: our own opaque id (the prefix names the type, so a zone id pasted where a substation id belongs fails as invalid_parameter), the operator, the name as published, voltage, network level and location.
| asset.type | Meaning |
|---|---|
| substation | A substation, at the voltage the source gives. |
| node | A network node, as the operator models it. |
| busbar | A busbar within a substation. |
| feeder | A feeder or circuit. |
| transformer | A transformer. |
| congestion_zone | An area the operator declares congested or constrained. |
| connection_point | A point the operator offers for connection. |
| grid_cell | A cell of a regular grid the operator publishes on. |
| area | A supply area, often defined by postcodes rather than geometry. |
location.precision
We never improve on the precision an operator gave. Some operators shift or remove substation coordinates for public-safety reasons; those stay shifted or removed, and are never re-derived from another dataset.
| Value | Meaning |
|---|---|
| exact | Coordinates as the operator published them. |
| approximate | The operator gives an approximate position. |
| obfuscated | The operator deliberately shifts positions, often for public-safety reasons. We never correct it from another source. |
| municipality | Only the municipality is known; the point is its centre. |
| region | Only the region is known; the point is its centre. |
| none | The operator publishes no location. |
| unknown | The precision is not stated. |
freshness, provenance, access, decision_context
freshness: the operator’s effective date, our retrieval time, when we last confirmed it unchanged, and the source’s health. Freshness and history.provenance: the source id, the operator’s own record id, the URL of the publication, the SHA-256 of the payload it came from, the licence and the rights mode.access:grantedwith the attribution to show, orwithheldwith the reason and the operator’s URL. Rights and licensing.decision_context:binding,source_indicative,formal_connection_study_required(alwaystrue) and astatementto show people: what the operator’s dataset reports, never that capacity is available to them.