Substralis methodology

One map for the datacenter scout, stitched from incompatible TSO publications.

A scout asking where can I put 200 MW of compute is reading half a dozen different connection registers, headroom maps, market feeds, and operator statements at once. Each TSO publishes a different shape of the same question. Substralis reads them the way the source intended, keeps the trail back to the publication, and labels the gaps instead of filling them with synthetic estimates.

01

Read the source as published

Every connection register, capacity map, and market feed is parsed in its own shape. We never invent a row the publication didn't include.

02

Make the shapes comparable

Queue lifecycles, MW vocabulary, and statuses are mapped to a single vocabulary so a Statnett row can sit next to a NESO row without double-counting.

03

Keep the source trail intact

Every value carries a claim with timestamp, source URL, and fingerprint. The same publication re-ingested creates zero new facts; corrections stay visible.

04

Show the gaps

When a TSO doesn't publish headroom, applicant identity, or history, the missing layer is labeled — not synthesized, not estimated, not blended.

Reading the numbers

Grid publications mix requests, reservations, connection dates, and aggregate capacity. These four definitions keep the public numbers from being added together incorrectly.

Lifecycle waterfall

A project moves through stages in order: Requested → Assessment → Reserved → In queue → Connected. Each project lives in exactly one stage at any moment — its deepest populated stage. The waterfall on a site memo shows how many MW currently sit at each stage.

Not additive. Summing the bars double-counts. Use Active MW for total in-flight capacity, Connected MW for what's physically live.

MW vocabulary

Active MW
Sum of current-stage MW for every non-withdrawn, not-yet-connected project. The headline "how much is in flight here" number.
Reserved MW
Sum of explicit reserved-capacity values across active rows. Independent of the waterfall's "Reserved" bar (which counts row count, not capacity field).
Queue MW
Capacity across active rows whose deepest stage is still pre-reservation: Requested or In queue.
Connected MW
Capacity across rows that have physically connected. Moves into historical context because the queue journey is complete.

Signal types

Project queue rows carry stable applicant identity: a row for a named developer asking for X MW at substation Y. Aggregate capacity rows publish headroom or request totals at the station, region, or feeding-area level without naming applicants. Market and operational series cover prices, balancing, line flows, and outages.

These signals are kept separate. A scout never sees an aggregate-capacity number blended into a per-applicant queue total.

Plain-English labels

Status and industry terms render in plain English wherever a localization exists — Statnett's Reservert kapasitet i dagens nett renders as Reserved (current grid); Solkraft renders as Solar. Terms we have not localized yet stay in the source's own words rather than being machine-guessed.

The original wording stays in the source trail, so plain-English labels do not erase what the publication actually said.

Per-country coverage

What each TSO actually publishes for the five launch markets. A queue layer for one country is not the same shape as a queue layer for another — these rows say so honestly.

NO

Norway

FreeApplicant queue
What we deliver
Statnett datacenter and AI-compute grid-connection rows with applicant identity and dated lifecycle (Requested → Reserved → Queued → Connected → Withdrawn). NVE Vannkraftdatabase: 2,000+ hydropower plants with geo coordinates. Konsesjonskraft cohort flag per kommune (pre / post the 2026-05-06 datacenter rule).
Limits
Norway local DSO headroom (WattApp) is shown with an explicit low-confidence label: local hosting capacity is not a connection offer, and DSO coverage is a mosaic, not national. Corporate-group structure isn't reliably disclosed.
GB

Great Britain

ProApplicant queue
What we deliver
NESO and ENA connection queues with named applicants. REPD project registry. Contracts for Difference and Capacity Market awards as separate contracted-asset lifecycles. DNO headroom heatmaps where each DNO publishes. NESO/Ofgem/DESNZ grid-context intelligence — connection-queue reform, FES data-centre demand outlook, and the Scotland-England constraint picture — cited to source.
Limits
DNO headroom varies sharply by operator; some files expose operator-specific slices only. Bidding-zone outline is at national-boundary level until an open polygon ships.
DK

Denmark

ProNo queue yet
What we deliver
Connected plants and connection-field metadata from Stamdata and Energinet. Kapacitetskort headroom map. Energinet market zones. ENTSO-E, ENTSO-G, JAO market and cross-border context.
Limits
No Statnett-style applicant queue: Denmark publishes connection points and connected capacity, not a dated request → reserved → connected lifecycle per developer.
FI

Finland

FuturePartial local queue
What we deliver
Elenia's public connection-project pipeline with named applicants across its Finnish service area. Finnish Environment Administration datacenter YVA project rows as separate project-signal context. Fingrid real-time system state, shortage status, battery (BESS) register, transfer-capacity context, and Nordic balancing market. ENTSO-E generation and load.
Limits
This is not a national Fingrid queue. Fingrid does not publish a structured applicant-level connection queue today, so Finland's named queue coverage is partial, local, and source-grained: Elenia rows are DSO service-area projects, while YVA rows are environmental-impact project signals, not grid-offer commitments.
SE

Sweden

FutureNo queue yet
What we deliver
Regional capacity pressure (SE1–SE4), Svenska kraftnät reserve and balancing markets, generation statistics, Mimer queue metadata, Nordic cross-border market context.
Limits
Svenska kraftnät does not publish an applicant-level connection queue today. Same EU process as Finland: binding queue-disclosure rules are expected late 2026 / early 2027. We'll ship the Svenska kraftnät queue layer the day it's published.

Great Britain's bidding-zone outline is shown at national-boundary level until an open bidding-zone polygon is available. SE and FI: the EU Commission's December 2025 grid-connections guidance recommends transparent queue disclosure, and binding rules are expected late 2026 / early 2027. Substralis will surface those queues the day each TSO publishes them.

Source trail

Behind every value on the map sits a claim: the source publication, the timestamp it was verified at, and a fingerprint of the underlying row. Open the evidence drawer on any number to see the receipt. The same publication re-ingested produces zero new claims; only an actual change moves a number on the page.

Claims model

Every value has provenance

Claim ID, source URL, verified-at timestamp, and a stable fingerprint travel with every value. The site memo's evidence drawer is the receipt; nothing is shown without one.

Catalog

Every source, freshness, and grain

The full catalog — refresh cadence, signal type, certification state, source links — lives at the dataset catalog. This page covers the method; that page covers the inventory.

Metric formulas

The derived metrics on a site memo. Each tile is the source of truth for what the number on the page means — formula version included so an older brief stays comparable even when a metric evolves.

operator_applied_vs_connected_ratio / v1

Operator Applied vs Connected Ratio

Ratio of total applied/requested MW to total connected MW across all queue entries where this company is a participant.

contention_score / v1

Contention Score

Median number of concurrent active queue entries at this location over the trailing 12 months.

ghost_mw / v1

Ghost MW

Sum of reserved/queued/ordered MW for projects whose planned connection date is past, but which have not connected and have not been withdrawn.

Sensitive to source freshness. Locations with stale data may be over-counted.

hhi_end_customers / v1

HHI of End Customers

Herfindahl-Hirschman Index of end-customer concentration by active MW at this location.

queue_momentum_30d / v1

Queue Momentum (30d net MW change)

Net change in active queue MW at this location over the trailing 30 days.

source_coverage_score / v1

Source Coverage Score

Fraction of expected claim_types that are present and fresh for this location, weighted by source confidence.

time_in_stage_median_months / v1

Median Time in Stage (months)

Median dwell time across all stages and entries that have ever touched this location.

withdrawal_rate_24mo / v1

Withdrawal Rate (24 months)

Withdrawn MW divided by (withdrawn MW + connected MW) over the trailing 24 months at this location.

withdrawal_rate_12mo / v1

Withdrawal Rate (12 months)

Withdrawn MW (deepest waterfall stage) divided by (withdrawn MW + connected MW) over the trailing 365 days, globally over the filtered Queue Atlas set. Distinct from `withdrawal_rate_24mo`, which is per-location.

Mirrors the analytics-registry pattern of withdrawn / (withdrawn + connected) but on a 12-month window. Rate is 0 when the denominator is 0.