Kortex
snapshot · 2026-09-06
Kortex · methodology register · one entry per material derived metric

How every number is made

Every material derived metric on the platform, in one register: what it means in plain English, the formula, its evidence class, what feeds it, when it fails closed, and what is known to be wrong with it. Versions bump when a formula changes meaning; never silently. Where a metric has been tested against independent ground truth, the entry links its validation study, including the misses.

Market value

Capture price

transformedcapture_price_v1
Meaning
What the market actually paid a technology's output; never its cost, never realised project revenue (PPAs/CfDs/balancing sit on top).
Formula
Σ(gen_h × price_h) / Σ(gen_h) over hourly-joined ENTSO-E generation × day-ahead price, per fuel, grid and period.
Inputs
entsoe_generation, entsoe_price (observed hourly series); sub-hourly averaged to the hour before joining; negative prices kept.
Fails closed
Grid-years with <85% of hours joined, <10 GWh of the fuel's output, or non-positive base price are flagged and never ranked (capture-decline).
Limits
Energy-market revenue only. Pumped hydro/batteries valued at gross discharge; charging cost not netted (disclosed on-page).
Used by
Grid day · Capture decline

Capture rate

transformedcapture_rate_v1
Meaning
Capture price as a share of the same period's time-weighted average price; unit-free, so zones settling in EUR, GBP or RON compare honestly.
Formula
capture_price / time_weighted_avg_price × 100; one dominant price series per zone-year (currency chosen by row count, disclosed on-row).
Limits
Descriptive market-value erosion, not causal cannibalisation; penetration, demand, fuel prices and interconnection co-evolve (disclosed on-page).
Used by
Capture decline

Delivery wedge & share of bill

transformednetwork_econ_v1
Meaning
What sits between the wholesale price and the delivered price of a networked commodity; and the unit-free share it takes of the final bill.
Formula
wedge = delivered − upstream (sign-free; negative = capped retail), share = wedge / delivered. Gas normalised to USD/MWh-thermal for cross-network comparison.
Limits
Zone grain, never per-line; US wires revenue uses utility-REPORTED delivery filings (EIA-861) where available; higher fidelity tier, on-row.
Used by
Globe economics layers · /v2/spatial/network-economics

Portfolio structure

Effective independent weather positions (N_eff)

measuredn_eff_v2 · measured_corr_v1
Meaning
How many genuinely independent weather bets a renewable portfolio holds, capacity-weighted.
Formula
N_eff = 1 / (wᵀRw), w = capacity shares, R from direct pairwise edges only; transitive chaining rejected (closure merges continents).
Evidence
R is measured: ERA5-derived daily series 2015–2025 at 1° asset-anchored cells, standardised day-of-year anomalies (±7-day climatology — removes the seasonal cycle), Pearson r on ≥1,000 overlapping days; same-cell assets share their series (r = 1.0); negative r floored at zero. Tail co-lull and DJF/JJA splits are computed and stored alongside (analytics_weather_corr). Supersedes the v1 distance-band proxy (0.9/0.7/0.5/0.3), retired 2026-07-13.
Used by
Weather portfolios (BETA)

Water-system concentration

inferred + validated subsetwater_sys_v2
Meaning
How much of an operator's thermal capacity depends on one hydrological system that fails in the same drought.
Formula
Water system = level-6 Pfafstetter sub-basin ∪ explicit same-river chains (river transitivity is meaningful, unlike weather chaining). Same N_eff form as weather.
Fails closed
<60% of fleet MW linked or <5 linked plants → under-evidenced, never ranked.
Validation
Study 8: every judgeable US cooling link tested against the utility's own EIA-860 filing; 35% contradicted and quarantined. Non-US links remain unvalidated (research grade).
Used by
One river (BETA)

Corporate structure

Ownership network centrality & controlled fleet

derivedigraph_pagerank_wcc_louvain_mw_v2
Meaning
Which entities sit at the centre of the corporate-control web; which stand or fall together (a family is every entity reachable through reported control links, a cluster the denser owner group within it); and — new in v2 — how much generating capacity sits under each entity's control, directly and through its reported group.
Formula
PageRank (damping 0.85) over GLEIF relationship-record direct-control edges, child → parent (ultimate-parent links excluded as transitive closure); families = weakly connected components; clusters = Louvain. v2 adds: fleet_mw_direct = generation MW attached via the audited asset stitch, quarantined edges excluded, an asset controlled by k entities contributing mw/k to each; fleet_mw_group = direct MW summed over the entity's GLEIF-reported ultimate-parent children plus itself (the registry's own closure, no path arithmetic of ours); mw_pagerank = PageRank personalised on fleet MW. 345,709 entities, computed deterministically off-graph, written back with full provenance.
Evidence
Verified-tier and stitched-tier capacity are carried as separate columns, never blended (blind study 7: low-confidence stitches are often wrong). Fleet quantities are gross screening measures — no stake percentages exist in GLEIF direct-control records, so nothing is pro-rated by ownership share. Known limit: GLEIF child entities that carry a group's consolidated capacity can overstate a parent's rollup (disclosed, under review).
Limits
GLEIF coverage only — relationships entities choose to report; custody and fund-administration structures rank centrally in the structural metrics (correctly but literally); centrality is structural position, never an ownership percentage. Supersedes v1 (structure-only, retired 2026-07-14).
Used by
Ownership · entity profiles · diligence screen (network position + controlled fleet) · /v2/demo/ownership-map

Cross-border flow model (corridor sensitivity)

modelledzonal_ptdf_calibrated_v1
Meaning
Which borders physically carry a zone-to-zone power exchange — loop flows included. Roughly half of a Germany→France exchange takes the direct border; the rest travels via Switzerland, the Netherlands/Belgium and Austria. The platform's first modelled metric: a physics simulation, not an observation or a join.
Formula
DC power flow on the PyPSA-Eur prebuilt OSM network (2,741 buses, real line reactances, HVDC excluded as controlled devices; ODbL): 100 MW injected at the sending zone on generator-capacity weights, withdrawn at the receiving zone on night-lights load weights; each border's reading scaled by a calibration slope chosen out-of-sample per border.
Evidence
Validated against observed 2025 ENTSO-E cross-border physical flows on a held-out test window: median r +0.88, sign agreement 92%, median error reduction from calibration 57%. Phase-shifter-controlled borders (BE-NL, CZ-PL, AT-CZ) carry an empirical response term fitted to German loop-flow pressure — disclosed as such, never a device model. Every response row carries its border's own validation r.
Fails closed
Luxembourg borders are unvalidated intra-market-zone meterings and serve uncalibrated with that label; borders below the noise floor are dropped, never zero-filled.
Limits
Screening-grade: DC linearisation (no losses, voltages, or reactive power); 2025-vintage network; injection on existing capacity weights, so a specific new plant at a specific bus will differ. Never an injection study, a capacity allocation, or an intra-zonal claim — the CEII/ISO-study lane is explicitly out of scope.
Used by
GET /v2/insights/corridor-sensitivity (CWE+: DE FR BE NL LU AT CH CZ PL)

Counterparty pre-diligence screen

gate- and evidence-drivendiligence_screen_v1
Meaning
An exception ledger over submitted counterparties: which contain visible disqualifiers, which deserve full KYC and primary-document work, and which critical facts remain unknown. Four verdicts — proceed / investigate / reject / insufficient_evidence — from hard gates and abstention. There is no risk score.
Formula
Identity resolves by LEI, Companies House number, or exact legal name (punctuation-normalised; ambiguity is abstained on with candidates listed, never guessed). Gates: exact primary sanctions-list match (OFAC SDN / UK OFSI — tested on the submitted name even when identity is unresolved) and registry-dead (GLEIF INACTIVE). Checks: registry status incl. the CH insolvency ladder; sanctions (primary quoted, OpenSanctions as match flags only — licence rail); ICIJ offshore-leaks candidates; UK PSC beneficial control incl. unresolved-control statements; GLEIF parent chain + reporting exceptions verbatim + ownership-network position; CH charge counts; observed asset footprint from the graph; jurisdiction context.
Fails closed
Unresolved or ambiguous identity → abstention, never a guess; fewer than three checks with evidence → abstention, never a thin “proceed”.
Limits
Not KYC/AML determination and not legal advice; exact-name sanctions testing does not cover transliteration, aliases or the OFAC 50% rule; PSC and charges are UK-register grain; HMLR land control is a declared next check (registration in progress); “proceed” means no visible screening-level disqualifier, never a clean bill.
Used by
POST /v2/insights/diligence/entities (Template 2 — sibling of the site screen’s exception ledger)

Network structure

Grid criticality (single points of failure)

derivedigraph_articulation_bridges_v1
Meaning
Substations and lines whose loss would structurally disconnect part of their network, and how much — substations and attached generation MW cut off.
Formula
Articulation points and bridge edges over the OpenInfraMap line topology (undirected, per network component); severity = the severed side's substation count and generator MW. Exact graph theory, no sampling.
Limits
Topology, never power flow: a graph cut is not an outage — re-dispatch, lower-voltage paths and lines absent from OSM all add redundancy this cannot see. The mapped network is fragmented (11.5k components; largest 3.7k substations), so severity is relative to the mapped island, and severed MW is a floor (only mapped generator attachments count). Screening-grade: which nodes deserve an N-1 study.
Used by
Asset profiles · declared feed for a future "load-bearing nodes" insight page

Siting & capacity

Installed dispatchable low-carbon capacity

source-reported → transformedclean_firm_v2
Meaning
Nameplate MW of hydro, nuclear, geothermal and biomass in a zone; wind and solar never counted firm. Installed, canonical, operational units only.
Limits
Never availability, deliverability, capacity accreditation or contractibility; the homepage and siting screen say "installed" for exactly this reason.
Used by
Siting · Power & digital

Suitability score & evidence confidence

modelled (deterministic)siting_v3
Meaning
Two SEPARATE numbers: how a zone scores on the decision weights taking evidence at face value, and how complete/reliable that evidence is.
Formula
suitability = 0.42·dispatchable_low_carbon + 0.24·price + 0.16·EHV + 0.18·water (disclosed, inspectable weights; no learned parameters). evidence_confidence down-weights imputed price (×0.7), unresolved water (×0.85), absent queue coverage (×0.9).
Limits
Screening-grade zone pre-ranking: which zones deserve a connection study. Not a power-flow study, headroom claim or connection guarantee. Queue evidence US-only today; zones without it say so per-row.
Used by
Siting

Queue completion rates

transformedqueue_cohort_v1
Meaning
Of capacity entering an interconnection queue, the share that reached operation vs withdrew; per cohort, technology and region.
Formula
Cohort rollups of LBNL Queued Up records; active projects are right-censored; undecided, never counted as failed. History (LBNL) and current snapshots (direct ISO) are never blended.
Limits
US only; end-2024 vintage (refresh declared); hybrid secondary components under-collected (known LBNL limitation, disclosed).
Used by
Queue reality

Money & carbon (modelled)

Modelled generation revenue

modelledgen_rev_v2
Meaning
Screening-grade estimate of a generator's energy-market revenue. Never reported financials; filed financials are served beside it, never blended.
Formula
capacity × technology capacity factor × zone price signal, empirical prices where held (ENTSO-E/EIA/AEMO), benchmarks elsewhere (basis on-row).
Validation
Study 3 vs SEC-reported revenue; reconciliation of revenue universes stated on the homepage.
Limits
Generic capacity factors misestimate reserve-heavy fleets; see the carbon entry's Finland miss; the observed-CF layer (EPA CEMS, US) is the correction template.

Modelled carbon cost

modelledcarbon_cost_v2
Meaning
Estimated annual carbon-pricing exposure per generator under its jurisdiction's mechanism.
Formula
capacity × CF × emission factor × mechanism price (mechanism and price basis on-row).
Validation
Study 9 vs the EU ETS compliance record: 26/27 countries in the expected band with the physics-correct structure; published miss: Finland at 1.93×; generic capacity factors ≈2× overestimate reserve-heavy fossil fleets.
Used by
Entity profiles · exposure screens

Hourly clean supply

Hourly-matched coverage

transformedclean_hours_v1
Meaning
Share of an illustrative flat load coverable from domestic clean surplus after existing demand, hour by hour; deliberately conservative; not a procurement calculation and not contractual 24/7 CFE matching.
Formula
Calendar-slot arrays (8,784 leap / 8,760 standard); missing hours stay null, never interpolated. Imports carry no fuel attribution (meshed-flow tracing out of scope).
Used by
Clean hours

Observed capacity factor (US)

observedcems_cf_v1
Meaning
Actual utilisation of US fossil units from measured stack data; the antidote to generic capacity factors.
Formula
EPA CEMS gross load unit-days aggregated per plant/unit-year ÷ nameplate hours.
Used by
Asset profiles; declared correction path for the modelled revenue/carbon entries above.

The decision rulebook · what may settle a verdict

Everything above describes how a figure is derived. This section states how a verdict is reached, which is a different question and was previously answerable only by exporting a receipt and reading its appendix. It is generated from the running screen modules and the live evidence-applicability registry, so it states the rules the engine is applying right now, not a description of them maintained by hand alongside.

The governing idea, introduced in methodology 1.27: a large graph can make a decision worse if irrelevant evidence is joined convincingly. So every piece of evidence carries a classification: which direction it points (import demand or generation export), what voltage grain it lives at, its topological relation to the site and its time basis. A target's resolved connection tier then selects which evidence may decide a verdict. Everything else is served as context with its applicability stated. A below-target figure at an inapplicable grain fires no finding, because no point at that grain could ever carry the target.

Since methodology 1.29 each answer freezes the rulebook it was decided under, with a SHA-256 over it. Compare the hash on your receipt against the hash below: if they match, the rules have not moved since your answer was computed; if they differ, they have, and your receipt's own pinned rulebook remains the authority for what that answer meant. Machine-readable at /v2/methodology; governance changes to served figures are in the corrections register.

Candidate-site screen

v1.31ab2b6339c5dc95c1
Endpoint
/v2/insights/siting/sites
Method
Screens the submitted candidate coordinates one by one. Per site: nearest >=min_kv substation from REAL mapped topology (synthetic/scenario nodes excluded) with a 40 km hard connection gate; the operator's OWN published capacity at the nearest published point within 30 km, verbatim and in the operator's own units (NPG: MW; ESB Networks: demand in MVA, generation in MW — a below-target test against MVA is conservative); WRI Aqueduct basin water stress by containment; queue records within 50 km — US interconnection queues (LBNL/ISO), the GB Embedded Capacity Register (all DNOs, accepted-to-connect vs connected) or the Irish registers (EirGrid TSO contracted + ESB DSO lists, joined to connection nodes by exact station name; register vintages stated); the GB planning pipeline within 25 km (REPD renewables/storage ladder + live NSIP cases — a pre-queue signal); EA abstraction reality (CAMS availability/reliability classes at Q30-Q95, England) alongside Aqueduct stress; EA Flood Map for Planning zone containment (England — Zone 1 is claimed by absence only inside EA jurisdiction); FEMA NRI county hazard (US); and zone-grain supply/market context resolved by Voronoi containment. Verdicts are gate- and evidence-driven: reject (gate failed), insufficient_evidence (fewer than three checks with evidence — abstention, not a low score), investigate (material findings), proceed (no visible screening-level disqualifier). v1.1: GB queue evidence added (ECR). v1.2: Ireland published capacity added (ESB Networks heatmap, 657 MV+ station groups) to the headroom check. v1.3: Irish queue evidence added (EirGrid contracted + ESB DSO lists at connection-node grain). v1.4: GB planning check added (REPD Q1 2026 + NSIP register). v1.5: NESO TEC/Embedded registers stitched to connection sites (exact name join, ambiguity-guarded) — GB queue evidence now carries the transmission level. v1.6: EA CAMS abstraction classes + Flood Zones 2/3 added (England). v1.7: published capacity extended — UKPN heatmap (LTDS-convention MVA, unit unstated by publisher), SPEN GSP remaining import/export MW, E-Redes PT generation-reception MVA + committed pipeline. v1.8: site boundaries — a site may submit a GeoJSON Polygon/MultiPolygon land assembly instead of (or alongside) a point; distance and radius checks then measure from the asserted boundary edge, containment checks resolve at a derived representative point (ST_PointOnSurface), and flood evidence becomes an area intersection: share of the site in EA Zones 2/3 and net area outside Zone 3 at screening grain. Boundaries are customer-asserted, validated (never repaired) and capped at 100 km2; receipts echo the boundary's sha256, area and derived point, never the outline itself. v1.9: the path-to-power ledger — per site, every candidate point of interconnection (connection-grade published points within 30 km, EHV topology within 25 km) with its published figure assessed against the target in the operator's own units, queue pressure as competition context, a one-line conclusion, and the cheapest next fact that could change the verdict. v1.10: customer power evidence — workspace sites may bridge structured evidence objects (operator responses, study extracts) into the path-to-power ledger, resolved at item write time and served as customer_reported, unverified rows BESIDE the published record; they never change assessments, findings or verdicts. v1.11: US generation-hosting context — where a US utility publishes feeder-level DER hosting capacity (first entry: Pepco/Delmarva/Atlantic City Electric), the ledger reports the strongest feeders within 5 km in the operator's own kW; generation-side only, never demand headroom, no demand finding fires from it. v1.12: land fabric — HMLR INSPIRE index polygons (England & Wales, parcel grain): a boundary site reports the registered-freehold parcels it spans, the share of the site inside the index and the largest single parcel's share, with a finding when the fabric implies a material assembly (>=25 parcels) or a material unindexed share (<50% in the index); point sites get containment context only. Parcel identifiers carry no public mapping to titles or proprietors — fabric complexity, never an ownership claim. v1.13: digital infrastructure — nearest community-mapped telecom cable route (OpenStreetMap/OpenInfraMap) with the 10 km route count, nearest PeeringDB facility with network counts at 50 km, nearest operational datacentre. Context only: no finding fires from it, presence requires a signal within a meaningful radius, and mapped-cable absence is a mapping gap, never 'no fibre'. Submarine-cable and IXP registers are rights-held and deliberately not consulted. v1.14: observed connection durations — the path-to-power ledger reports what connected projects on the local operator's register actually took from acceptance to connection, as a transformed observed distribution (p25/median/p75 with n and vintage; operator cohort at 20+ observed pairs, GB-wide fallback disclosed). GB Embedded Capacity Register only: it is the one ingested register carrying both dates; embedded grain (>=1 MW distribution connections, predominantly generation), never a transmission-scale load timeline, never a forecast for the submitted site. v1.15: German queue evidence — DE sites read the Marktstammdatenregister at unit grain within 50 km: registered-planned units and MW (with a material finding at 1,000+ planned MW), operating units and MW, permanent retirements, register vintage. 'In Planung' is registered intent, weaker than a contracted queue position, and the evidence says so; units below 100 kW are out of scope at this grain. v1.16: statutory designations — England sites are tested against Green Belt, SSSI, AONB (National Landscape) and National Park boundaries (planning.data.gov.uk, OGL): boundary sites report area overlap per designation with a material finding on any overlap; point sites report containment plus the nearest designation within 5 km. An overlap prices planning friction; it is not a refusal, and absence outside England is a coverage edge, never a clear site. v1.18: US grid-congestion evidence — the site's ISO footprint is resolved from the interconnection-queue records within 50 km; ERCOT sites get site-grain evidence (SCED binding constraints on monitored elements whose stations map within 40 km: binding-interval counts, max shadow price, last bound date, last 365 days, with a material finding when an element bound 4,000+ five-minute intervals — the top decile of ERCOT constraints); MISO, SPP, CAISO, PJM, NYISO and ISO-NE publish constraint names or interfaces without public coordinates, so those footprints get ISO-SYSTEM-grain context (most-bound constraints verbatim, last 90 days) that never fires a finding — all seven US organized markets carry an ingested feed; non-ISO utility footprints disclose the coverage gap. v1.19: duration cohorts — observed connection durations are cohorted by capacity band (chosen by the site's target load) and a rolling 36-month energisation window, because pooling misleads: recent-era sub-11kV connections run single-digit median months while 33kV+/10MW+ connections run ~4 years. The cohort widens stepwise (operator, then GB-wide, then all years) at fewer than 20 pairs, every widening disclosed; operators whose ingested registers publish no acceptance dates are named rather than silently absorbed into the GB cohort, and every block states its energisation window. v1.23: published-capacity coverage extended and rights-settled — GB is now all six DNO groups (Electricity North West CC BY 4.0, March 2026 vintage; NGED Connected Data all four licence areas, CONNECTED-lane MW, WPD Open Data Licence cleared 2026-07-28) and FRANCE joins as the vehicle's first whole-country layer via Caparéseau (RTE + Enedis + 24 regional operators, S3REnR reception capacity per poste source with per-substation queue MW and connection levy; generation side only, so demand findings never fire from it; figures are the portal's published indicative capacities, served verbatim; data reuse permitted with source citation, cleared 2026-07-28, attribution 'Source - capareseau.fr (RTE)'). v1.24: digital-infrastructure evidence graded — the block now states a presence assessment ('strong mapped presence' requires two of: mapped route within 2 km, PeeringDB facility within 25 km, operational datacentre within 25 km) that receipts cite as corroboration. Deliberately asymmetric and non-gating: presence strengthens evidence but never moves a verdict (findings are the exception ledger; fibre presence is a virtue, not an exception), and community-mapped absence remains a mapping gap that fires nothing. v1.26: the land-fabric check reaches ten jurisdictions. Added since 1.25: Spain (Direccion General del Catastro), Italy (Agenzia delle Entrate), Belgium (SPF Finances), Czechia (CUZK), Luxembourg (ACT), British Columbia (ParcelMap BC) and Utah (UGRC) — 279.3 million parcels in total. Two postures are carried rather than flattened. SPAIN IS DERIVED-ONLY: its licence permits commercial use of transformed products and forbids redistributing the original, so the screen's counts and area shares are servable but raw Spanish parcel geometry never is. And the US differs in kind from Europe: state parcel layers routinely bundle owner names and mailing addresses, so ingest applies a field allowlist and owner identity is never held — Utah's fabric is loaded without it. Absence in an uncovered jurisdiction remains a coverage gap, never a claim that land is unparcelled. v1.25: land fabric goes multi-jurisdiction — beyond the HMLR INSPIRE index (England & Wales) the check now answers from open national cadastres for Scotland (Registers of Scotland, OGL v3), France (Etalab PCI vecteur, Licence Ouverte 2.0) and the Netherlands (Kadaster Kadastrale Kaart, CC BY 4.0). The two layers never both answer — a site is in one country — and the layer that answered is named in the evidence with its attribution. The distinction is kept deliberately: HMLR records registered freehold, a tenure concept, while a continental cadastre records parcels and no tenure, so counts from the cadastres are reported as cadastral parcels and never as registered freehold. Fabric grain only in every jurisdiction — none of these products carries proprietor data and none is inferred. v1.27: target-tier evidence applicability — every screened target resolves an indicative connection tier from its size (>= 100 MW transmission; 20-100 MW EHV distribution; below 20 MW distribution; the thresholds are Kortex screening rules stated on the ledger row, and the actual point and voltage of connection is always an operator/NESO determination). Every evidence object the screen consults is classified in a registry (direction: demand / generation / supply; voltage grain; topological relation; time basis) and the screen resolves at query time which evidence may DECIDE at the resolved tier: a transmission-tier demand target is assessed against grid-supply-point / 132 kV+ published capacity and the demand-direction rows of the NESO connections registers — never against distribution-grade headroom or the Embedded Capacity Register, which are served as labelled context, because the ECR records embedded GENERATION and STORAGE export connections and accepted export capacity does not consume a demand target's import headroom. GB queue evidence gains the GSP group: the grid supply point most cited by embedded-register rows within 50 km (register-derived, disclosed, never a claim about the operator's actual assignment) with the embedded pipeline grouped at that GSP and SP Energy Networks' own GSP generation queue joined by exact name; the NESO demand-direction pipeline is reported register-wide beside the stitched 50 km counts, whose absence is a stitching floor, never an empty demand queue. v1.28: mapped-topology plausibility screening: the community-mapped grid inventory is swept against country-scoped invariants of the jurisdiction's network structure (an England & Wales distribution licensee operates at or below 132 kV; NGET transmission is 275/400 kV only; Northern Ireland tops out at 275 kV; no GB network operates above 400 kV; a foreign system operator's presence on GB-keyed assets is a conflation) and, in the US, corroborated against the EIA transmission inventory as an independent federal lineage. A mapped claim that fails a check is flagged, never suppressed: the power-lines layer serves the failed invariant on the affected feature, and the screen's connection context states how many mapped claims within 25 km are under review. Flags are correction worklists for the upstream mapping, not deletions, and a passing claim is still a mapping, not an operator record. v1.29: the rulebook is frozen with the answer. Until now a receipt pinned the answer (canonical response plus its SHA-256) and a methodology version LABEL, but not the methodology TEXT — so an export rendered later showed the CURRENT rules above findings computed under older ones, and a screen decided under v1.7 could ship as a PDF carrying v1.28 rules that forbid the very findings printed above them. Every receipt now carries methodology_rulebook (methodology, confidence, limitations, the screening thresholds AND the evidence-applicability registry rows as they stood) and methodology_sha256 over it, so the rules verify exactly as the answer does. The applicability registry is included deliberately: since 1.27 the question of which evidence may DECIDE is answered from a table, so pinning only the code constants would leave half the rulebook floating. Receipts archived before this change carry no rulebook and are exported with that stated on the artifact rather than back-filled with rules they were never computed under. Supersession is bidirectional and retraction is a recorded state with a reason: a withdrawn answer stays in the archive marked withdrawn, never deleted and never silently left standing. v1.30: mapped voltages are checked against an INDEPENDENT source, not only against a ceiling. The 1.28 regime asks whether a value exceeds its jurisdiction's AC transmission ceiling, and where no ceiling is registered it abstains — so a voltage that is wrong but IN RANGE passed in silence, which is most of the ways a mapped voltage can be wrong. Every mapped substation is now compared against the nearest PyPSA-Eur bus (cleared ODbL, an independently built European transmission model) and stamped voltage_contradicted where a reference within 250 m matches no voltage level recorded at the site. The two signals are GRADED, not merged: voltage_implausible means the value cannot be true and is excluded from every figure; voltage_contradicted means an independent source disagrees and the value may still be correct, so it is excluded from best_kv and the counterparty election — the decisive uses — but retained in the substation count, disclosed separately as claims_contradicted, and charged a smaller confidence cost than an impossibility. A reference WITHOUT coordinates can never raise a contradiction, however authoritative it is: a transmission owner's own site index is name-keyed, and town names repeat across voltage levels, so a name match is evidence about a name and not about a place. Contradictions are worklists for the upstream mapping; no publisher value is ever overwritten. v1.31: HVDC converter stations no longer count as AC connection evidence. The ceiling check rightly exempts them (a 600 kV converter is real), but exemption left them inside ehv_substations, best_kv and the counterparty election, so GB reported best 600 kV at the Western HVDC Link converter: the correct number for the wrong concept, since a DC corridor endpoint is not a point a load connects to. Converter stations, identified by the same predicate the ceiling sweep exempts, are now counted separately, disclosed as converters_excluded, and excluded from the count, the best-voltage figure and the election. No confidence cost is charged: this is a class distinction on sound data, not a doubt about it.
Confidence
Screening-grade pre-diligence for an analyst, not a connection guarantee. Substation topology, published headroom, water stress, queue records and hazard indices are source-reported; the gates, findings and verdicts are Kortex-derived. Every evidence block states its grain (site / basin / 50 km radius / county / zone) and absence is disclosed per check.
What may decide
checkdirectiongrainmay decide at tier
durations_ecr_embeddedgenerationdistribution_embeddednothing: context only
gen_hosting_us_feedersgenerationfeedernothing: context only
headroom_point_33kv_plusbothconnection_grade_33kv_plusdistribution, ehv_distribution
headroom_point_gsp_or_132kvbothgsp_or_132kv_plusdistribution, ehv_distribution, transmission
queue_ecr_embeddedgenerationdistribution_embeddeddistribution, ehv_distribution
queue_ie_registersgenerationconnection_nodedistribution, ehv_distribution
queue_mastr_unitsgenerationunit_graindistribution, ehv_distribution
queue_neso_demanddemandtransmissiontransmission
queue_neso_tec_generationgenerationtransmissionnothing: context only
queue_spen_gspgenerationgspnothing: context only
queue_us_interconnectiongenerationproject_pointsdistribution, ehv_distribution, transmission
zone_clean_firmsupplyzonedistribution, ehv_distribution, transmission
A check whose decisive set is empty is never able to settle a verdict at any tier; it is served as context with its applicability stated.
Thresholds
boundary_max_area_ha=10000.0 · congestion_radius_km=40.0 · duration_min_cohort=20 · gate_ehv_km=40.0 · headroom_finding_km=20.0 · headroom_near_km=30.0 · land_fabric_finding_parcels=25 · queue_radius_km=50.0 · tier_ehv_mw=20.0 · tier_transmission_mw=100.0
Does not claim
  • This screen does NOT claim available capacity, connection dates, reinforcement requirements, connection cost, engineering feasibility, legal title or planning status.
  • Distances are straight-line to mapped topology — not routed connections, not capacity statements; where a site boundary is submitted they are measured from the asserted boundary edge.
  • Mapped grid topology is community-sourced (OpenStreetMap/OpenInfraMap) and passes through country-scoped plausibility checks: operator class against voltage level, jurisdiction-impossible voltages, foreign operators on GB-keyed assets; in the US the inventory is additionally corroborated against the EIA transmission inventory as an independent lineage. A mapped claim that fails a check is served with the failed invariant stated, never silently removed, and the connection context discloses how many such claims sit within 25 km of the site. A passing claim is still a mapping, not an operator record.
  • Site boundaries are customer-asserted and verified against nothing — not cadastral records, not legal title, not planning control; a boundary changes where the screen looks, never what the sources say. Flood-area shares and net-area figures are screening geometry, not a developability assessment.
  • Published network capacity exists only where operators publish it (GB: Northern Powergrid, UK Power Networks, SP Energy Networks GSPs, SSEN Distribution SEPD + SHEPD incl. north Scotland and the islands; IE: ESB Networks; PT: E-Redes generation-reception only — demand findings cannot fire from PT rows); absence means unpublished, never 'no capacity', and capacity at a nearby published point is not capacity at the submitted site. Demand figures keep the operator's own unit (NPG/SPEN MW; ESB and SSEN MVA; UKPN values are LTDS-convention MVA, unit not explicitly stated by the publisher) — never converted.
  • Queue evidence covers the US (LBNL/ISO interconnection queues), GB (Embedded Capacity Register — distribution-level, >=1 MW — plus the NESO TEC/Embedded registers at stitched connection sites: exact name join, ~41% of rows stitched, a floor not a ceiling) IE (EirGrid TSO contracted + ESB DSO lists at connection-node grain — a station-join floor, ~37% of rows held by name only) and DE (Marktstammdatenregister at unit grain, >=100 kW — 'In Planung' is registered intent, not a contracted queue position; Quelle: Marktstammdatenregister der Bundesnetzagentur, dl-de/by-2-0); register vintages are stated per response; elsewhere absence is a coverage gap, not an empty queue. Direction is stated everywhere: the ECR, the Irish lists, MaStR and the US queues are predominantly GENERATION-direction registers (export connections) and are never served as direct competition for a demand target's import capacity; demand-direction competition is reported from the NESO connections registers' Demand rows, whose 50 km counts are a stitching floor (only the geocoded minority of demand rows can appear locally, and the register-wide figure is stated beside them). The GB GSP group is register-derived (the GSP most cited by embedded rows within 50 km) and is never a claim about which supply point the operator would actually assign.
  • The connection tier is a Kortex screening rule, not an operator determination: >=100 MW resolves transmission, 20-100 MW EHV distribution, below 20 MW distribution, with the thresholds and basis stated on every ledger row. The tier selects which evidence may be decisive (right direction, right voltage grain) via the evidence applicability registry; evidence outside the decisive set is served as context with its applicability stated, and a below-target figure at an inapplicable grain (e.g. a 33 kV point against a 300 MW target) fires no finding, because no such point could ever carry the target. The actual point, voltage and route of connection are decided by the operator/NESO and can differ from the resolved tier.
  • Water stress is basin-level (Aqueduct) with EA CAMS abstraction classes at water-body grain in England; hazard is US-county-level; flood zones are EA planning zones for England only (Zone 1 claimed by absence only inside EA jurisdiction; Scotland/Wales are coverage gaps) and are not a site flood-risk assessment; zone supply/market context is zone-grain — supply in the zone is not supply at the site. Planning-pipeline coverage is GB today (REPD renewables/storage >150 kW + NSIP register); a planning application is intent, not a connection agreement.
  • The path-to-power ledger is a composition of published evidence (capacity maps, mapped topology, queue registers) — never a power-flow study, an available-capacity statement or a connection offer; its cheapest-next-fact line is a screening recommendation about what evidence to buy next, not engineering advice. Customer power evidence (operator responses, study extracts bridged from the workspace evidence store) is served customer_reported and unverified, beside the published record — Kortex does not verify it and it never changes assessments, findings or verdicts.
  • Statutory-designation evidence covers England (Green Belt, SSSI, AONB, National Park boundaries as published on planning.data.gov.uk) and Scotland (SSSI at site grain from NatureScot; National Scenic Areas, Scottish national parks and green belts are NOT ingested and a clear Scottish result does not clear them): an overlap prices planning friction and is never a refusal; a clear result covers the ingested statutory designations only, not local designations, conservation areas, TPOs or heritage assets; and outside the covered jurisdictions absence is a coverage edge, never a clear site. Jurisdiction resolved against ONS constituent-country boundaries. Not planning advice.
  • Observed connection durations are register history, not a forecast: the distribution of acceptance-to-connection times for already-connected embedded projects (>=1 MW, predominantly generation) on the local operator's register, cohorted by capacity band and a rolling 36-month energisation window with cohort size, window and vintage stated — durations differ by multiples across bands and eras, and a cohort that widens (to GB, or to all years) says so on the block. They say how fast the operator's register has moved for comparable connections, not when the submitted site would connect; transmission-scale loads follow a different process entirely. NGED and SSEN publish no acceptance dates in the ingested register vintages, and TEC, Irish and US registers carry too few dates to compute durations — every such absence is disclosed, never interpolated.
  • Digital-infrastructure evidence is community-mapped (OpenStreetMap/OpenInfraMap cable routes, ODbL, held as the purchased worldwide extract) plus PeeringDB facilities (CC BY-SA) and the curated datacentre set. Since methodology 1.24 the block carries a graded presence assessment (strong mapped presence requires two independent signals in range) that the receipt can cite as corroboration; presence never gates a verdict, absence never fires a finding, and mapped-cable absence remains a mapping gap, never 'no fibre'. A mapped route nearby is not capacity, dark-fibre availability, route diversity or a wayleave; submarine-cable and IXP registers are rights-held and not consulted; fibre-route diversity, carrier counts and latency are not modelled and never claimed.
  • Land fabric is the HMLR INSPIRE index-polygon fabric (England & Wales, registered freehold only): parcel counts and area shares against the asserted boundary. INSPIRE ids have no public mapping to title numbers or proprietors — the check states assembly complexity, never ownership, title quality or control; area outside the index is unregistered land or unpolygonised title, not distinguished at this grain. Scotland is a separate register (Registers of Scotland, not ingested): Scottish sites carry no parcel fabric and no title roll-up, and that absence is a coverage gap, never a clear site. Attribution: Crown copyright and database rights, reproduced with the permission of HM Land Registry; polygons Crown copyright and database rights Ordnance Survey 100026316.
  • US grid-congestion evidence is market ground truth, not a deliverability statement: binding constraints are the ISO's own published record of where its dispatch actually hit limits, and a shadow price is the marginal congestion cost in that interval, never a cost forecast for the submitted site. ERCOT is the one site-grain footprint (SCED names monitored from/to stations; station coordinates are Kortex-derived for the 233 stations that have actually bound — absence of a mapped element is absence of mapping, never 'no congestion'). MISO, SPP, CAISO, PJM, NYISO and ISO-NE context is ISO-system grain and never moves a verdict; CAISO is interface grain with no public per-branch shadow prices (CMRI-gated); PJM shadow prices are negative in PJM's own sign convention, NYISO constraint costs and ISO-NE marginal values carry both signs, kept verbatim; the ISO-NE real-time final report lags the market day by about three days. The ISO footprint is resolved from interconnection-queue majority within 50 km, so a site can resolve to the neighbouring market where queue records dominate (Manhattan resolves PJM on the northern-New-Jersey queue mass). With ISO-NE, all seven US organized markets carry an ingested constraint feed; non-ISO utility footprints (the Southeast and much of the West) publish no comparable binding-constraint record — a disclosed coverage gap.
  • Submitted coordinates are processed in-request and echoed into the answer receipt; do not submit sites you cannot place in a receipt. Submitted boundaries are NOT stored or echoed: the receipt carries the boundary's sha256, area and derived representative point only, so the outline stays in the submitter's hands while the receipt remains verifiable against the original file.

Counterparty diligence screen

v1.5118f9962fa690139
Endpoint
/v2/insights/diligence/entities
Method
Screens the submitted entities one by one against the corporate registers Kortex holds. Identity resolves by LEI (GLEIF golden copy, exact), Companies House number (live register + GLEIF registration-authority map), or exact legal name (case-insensitive; ambiguous names are abstained on with candidates listed, never guessed). Per resolved entity: registry status (GLEIF entity/registration status; CH status ladder incl. insolvency stages); sanctions exposure — exact-name test against the curated primary lists (OFAC SDN + UK OFSI, quoted) plus pre-computed fuzzy matches for graph-stitched operators, and OpenSanctions long-tail match FLAGS (licence rail: flags only); offshore-leaks exposure (ICIJ candidate matches resolved to the LEI, match scores on-row); beneficial control (active UK PSC records incl. unresolved-control statements; corporate controllers stitched to LEIs where the registration number joins); ownership structure (GLEIF direct/ultimate accounting parents, reporting exceptions verbatim, and structural position from the ownership-network analytics — family size, centrality percentile); encumbrances (CH registered-charge counts, upgraded to live charge particulars via the CH API when reachable); site control (HMLR CCOD/OCOD, England & Wales — title counts across all four proprietor slots with tenure and locality mix, stated price-paid where present, and a corporate-group roll-up over GLEIF-reported children and active PSC control links, so land held in SPVs surfaces against the parent); GB transmission queue positions (NESO TEC register — projects, capacity, Connections Reform Gate 1/2 status, exact-name join); German registered asset base (Marktstammdatenregister, the federal register of energy assets — operating/planned/decommissioned units with capacity, technology and the operator's Handelsregister identifiers, exact-name join, >= 100 kW grain); GB balancing-market presence (Elexon BMU register — the lead party's registered Balancing Mechanism units with capacity and fuel, plus BM acceptance history and settlement-derived accepted energy (BOAV) from 2025-01 onward with the system operator's SO flag as the constraint marker, exact lead-party name join); observed asset footprint (generators stitched to the entity in the Kortex graph, with modelled attributed revenue); and jurisdiction context (WGI/CPI at country grain). Verdicts are gate- and evidence-driven: reject (exact primary sanctions match, or the registry says the entity is no longer active), insufficient_evidence (identity unresolved/ambiguous, or fewer than three checks with evidence — abstention, not a low score), investigate (material findings), proceed (no visible screening-level disqualifier).
Confidence
Screening-grade pre-diligence for an analyst, not a KYC/AML determination and not legal advice. Registry facts (GLEIF, Companies House, OFAC/OFSI) are source-reported and vintage-stamped; ICIJ and extended-sanctions rows are candidate name matches requiring adjudication; ownership-network position and attributed revenue are Kortex-derived. Every evidence block states its grain and absence is disclosed per check.
Does not claim
  • This screen does NOT claim creditworthiness, litigation exposure, tax standing, regulatory approvals, or ultimate economic beneficiaries beyond the registers cited; a 'proceed' means no visible screening-level disqualifier, never a clean bill.
  • Sanctions testing is exact-name (primary lists) plus pre-computed fuzzy matches; an entity absent from these results is not certified sanctions-free — transliteration, aliases and ownership-based designation (OFAC 50% rule) require a dedicated screening provider. OpenSanctions long-tail rows are match flags only (CC BY-NC licence).
  • Beneficial control and encumbrances are UK-register grain (Companies House PSC + charge counts, bulk-file vintage on-row); their absence for non-UK entities is a jurisdiction gap, not transparency. Charge counts are bulk-vintage; charge particulars are pulled live from the CH register API when reachable and the screen falls back to counts-only when it is not.
  • Ownership structure is GLEIF relationship records — links entities choose to report; a missing parent with a filed reporting exception is disclosed verbatim, and fund/custody structures rank centrally in the network analytics without implying economic ownership.
  • UK land/parcel control (HMLR CCOD/OCOD) joins on normalised registration number across all four CCOD proprietor slots (co-owned titles counted) or exact legal name (OCOD); the corporate-group land roll-up follows GLEIF-reported children and active PSC control links (reported control, never economic ownership; capped at 2,000 group members). Title counts are not areas or values — price_paid is stated on a minority of titles and is a floor, never an estate valuation. The GB transmission-queue check (NESO TEC register) and the German asset-register check (MaStR) join on exact legal name — TEC publishes no company number, and MaStR's Handelsregister numbers are carried for verification but not yet a join key. Zeros at these joins mean 'nothing found at this join', never 'none exists'. Distribution-level (DNO) queue positions are outside the TEC register; MaStR units under 100 kW and natural-person operators are outside the loaded grain. The GB balancing check (Elexon BMU register) joins on exact lead-party name — free text on the register — with GB legal-form variants normalised; BM acceptance levels are absolute MW, and accepted energy (MWh) is a settlement-side derivation the screen does not make.
  • ICIJ offshore-leaks rows are candidate matches from historical leak data (vintages per ICIJ release); presence is a research lead, not a finding of wrongdoing — ICIJ's own disclaimer applies.
  • Submitted names/identifiers are processed in-request and echoed into the answer receipt; do not submit entities you cannot place in a receipt.

Appendix · The three-layer revenue model in full

Three-layer empirical model with explicit confidence tiers.

Layer 1: Generation revenue. Per-generator output (capacity × fuel-specific capacity factor) × grid-zone wholesale price (empirical: ENTSO-E, EIA, AEMO, or IEA/EIA benchmarks where hourly data unavailable). Covers $2.19T across 210K generators.

Layer 2: Network revenue. Per-substation share of grid-zone T&D revenue (retail price minus wholesale price × zonal demand ÷ substation count). Covers $1.17T across 745K substations.

Layer 3: Retail revenue. Country-level retail electricity revenue from World Bank / IEA. $3.36T globally; consistent with IEA estimates (~3.1% of global GDP).

How these figures relate. The headline "$2.38T revenue modelled" is the subset of layers 1–2 attributed to 16,061 resolved operator groups (generation $1.21T + network $0.84T). The $2.19T and $1.17T layer totals cover ALL assets including those without a resolved operator; the $3.36T retail figure is a country-level benchmark that includes generation, network, supply margins and taxes; it is a consistency check, never added to the others.

Layers are additive where data permits, with revenue tier flags: tier_1 (empirical hourly prices, highest confidence), tier_2 (country-level benchmarks), tier_3 (modelled from regional proxies).

Revenue figures are modelled screening estimates for relative comparison; not audited financial revenue, and not suitable as valuation input without independent verification against operator filings.

Entity resolution uses GLEIF LEI matching (3.3M entities) with manual curation (134 corporate group mappings, 25+ groups). Revenue consolidates across subsidiaries to ultimate parent. All source data, matching methodology, and confidence tiers are queryable via the API.
Evidence classes: observed · source-reported · transformed · inferred · heuristic · modelled; definitions in the API contract and on every material metric's response. Versions are stable identifiers: a changed meaning is a new version and a changelog entry, never a silent edit. Coverage per domain: /coverage. Misses live at /validation. A machine-readable register is the declared next step for this page.