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.
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 734K 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.