# Resilience scorer indicator-source manifest (PR 0 scaffold, 2026-04-22). # # One entry per sub-indicator used inside a dimension scorer. Each entry # answers the mechanism test from docs/plans/2026-04-22-001-fix-resilience- # scorer-structural-bias-plan.md §1.1: what direct shock channel does this # measure? # # Fields: # indicator — scorer variable name (matches the weighted-blend entry) # dimension — parent dimension id (matches RESILIENCE_DIMENSION_ORDER) # domain — parent domain id # weight — current nominal weight inside the dimension blend # direction — higher-better | lower-better | composite # scoringTier — registry tier when the row is backed by INDICATOR_REGISTRY: core | enrichment | experimental # source — authority that publishes the series # seriesId — canonical series id where applicable (e.g. EG.IMP.CONS.ZS) # seriesUrl — direct link to source documentation # coveragePct — observed-data coverage across the 222-country static index (first-pass estimate; authoritative value lives in the matching seeder's seed-meta.coverage field) # lastObservedYear — most-recent year with global data in the source # license — reuse license (CC-BY, CC0, OGL, Proprietary-with-fair-use, etc.) # mechanismTestRationale — one-sentence answer to "what direct shock channel does this measure?" # constructStatus — observed-mechanism | wealth-proxy | imputed-floor | regional-only | dead-signal # # constructStatus is the v3-plan classification: # observed-mechanism — passes the mechanism test; kept as-is pending goalpost review # wealth-proxy — fails the mechanism test; slated for removal or threshold-transform # imputed-floor — data source not wired; producing only the imputed midpoint # regional-only — data source covers <50% of scorable countries # dead-signal — saturated or compressed; signal collapsed across the ranking # ECONOMIC DOMAIN (weight 0.17) ------------------------------------------- - indicator: govRevenuePct dimension: macroFiscal domain: economic weight: 0.40 direction: higher-better scoringTier: core source: IMF seriesId: GGR_G01_GDP_PT seriesUrl: https://www.imf.org/external/datamapper/GGR_G01_GDP_PT@FM/ coveragePct: 0.90 lastObservedYear: 2024 license: Proprietary-with-fair-use mechanismTestRationale: Government revenue % GDP is the policy-response headroom a state can deploy during a fiscal shock; higher = more ability to absorb. constructStatus: observed-mechanism reviewNotes: Goalpost 5-45 is probably too wide at the top; Nordic revenue/GDP ≥ 50% saturates. Review in PR 4 goalpost pass. - indicator: debtGrowthRate dimension: macroFiscal domain: economic weight: 0.20 direction: lower-better scoringTier: core source: National debt databases (IMF + WB cross-source) seriesId: TBD seriesUrl: TBD coveragePct: 0.80 lastObservedYear: 2024 license: Mixed (per-source) mechanismTestRationale: Rising debt growth indicates deteriorating fiscal trajectory and reduced capacity to finance a shock response. constructStatus: observed-mechanism - indicator: currentAccountPct dimension: macroFiscal domain: economic weight: 0.20 direction: higher-better scoringTier: core source: IMF seriesId: BCA_NGDPD seriesUrl: https://www.imf.org/external/datamapper/BCA_NGDPD@WEO/ coveragePct: 0.85 lastObservedYear: 2024 license: Proprietary-with-fair-use mechanismTestRationale: Current account surplus indicates external-payments resilience; deficit indicates vulnerability to external-finance shocks. constructStatus: observed-mechanism - indicator: unemploymentPct dimension: macroFiscal domain: economic weight: 0.15 direction: lower-better scoringTier: enrichment source: IMF seriesId: LUR seriesUrl: https://www.imf.org/external/datamapper/LUR@WEO/ coveragePct: 0.68 lastObservedYear: 2024 license: Proprietary-with-fair-use mechanismTestRationale: Unemployment rate measures labor-market slack and reduced fiscal absorption capacity during shocks. constructStatus: observed-mechanism reviewNotes: Active macroFiscal Enrichment scorer input; included in the weighted dimension blend at 0.15. - indicator: householdDebtService dimension: macroFiscal domain: economic weight: 0.05 direction: lower-better scoringTier: enrichment source: BIS seriesId: Household debt service ratio seriesUrl: https://data.bis.org/topics/DSR coveragePct: 0.18 lastObservedYear: 2024 license: Proprietary-with-fair-use mechanismTestRationale: Household debt service burden measures private-sector balance-sheet strain that can amplify banking and fiscal shocks. constructStatus: regional-only reviewNotes: Active macroFiscal Enrichment scorer input for curated BIS economies; conservative imputation applies outside coverage. - indicator: inflationStability dimension: currencyExternal domain: economic weight: 0.60 direction: lower-better scoringTier: core source: IMF seriesId: PCPIPCH seriesUrl: https://www.imf.org/external/datamapper/PCPIPCH@WEO/ coveragePct: 0.83 lastObservedYear: 2024 license: Proprietary-with-fair-use mechanismTestRationale: Inflation stability measures currency purchasing-power shock risk; the scorer rewards the 1-3% target band and penalizes deflation or high inflation. constructStatus: observed-mechanism reviewNotes: Active currencyExternal Core scorer input after PR 3 §3.5; paired with reserves adequacy at 0.40. - indicator: fxReservesAdequacy dimension: currencyExternal domain: economic weight: 0.40 direction: higher-better scoringTier: core source: World Bank seriesId: FI.RES.TOTL.MO seriesUrl: https://data.worldbank.org/indicator/FI.RES.TOTL.MO coveragePct: 0.85 lastObservedYear: 2023 license: CC-BY-4.0 mechanismTestRationale: Reserves in months of imports directly measures immediate external-finance cushion. constructStatus: observed-mechanism reviewNotes: Active currencyExternal Core scorer input after PR 3 §3.5; paired with inflationStability at 0.60. - indicator: fxVolatility dimension: currencyExternal domain: economic weight: 0.60 direction: lower-better scoringTier: experimental source: BIS Data Portal seriesId: Broad Effective Exchange Rate seriesUrl: https://data.bis.org/topics/EER coveragePct: 0.30 # BIS covers 64 economies lastObservedYear: 2024 license: CC-BY mechanismTestRationale: FX volatility measures monetary-shock transmission risk. constructStatus: regional-only reviewNotes: Experimental/enrichment-only registry row after PR 3 §3.5; BIS EER covers only about 64 economies and scoreCurrencyExternal no longer reads it. - indicator: fxDeviation dimension: currencyExternal domain: economic weight: 0.25 direction: lower-better scoringTier: experimental source: BIS Data Portal seriesId: EER deviation from equilibrium seriesUrl: https://data.bis.org/topics/EER coveragePct: 0.30 lastObservedYear: 2024 license: CC-BY mechanismTestRationale: EER deviation from equilibrium proxies mis-aligned exchange rates that create abrupt-correction risk. constructStatus: regional-only reviewNotes: Experimental/enrichment-only registry row after PR 3 §3.5; BIS EER covers only about 64 economies and scoreCurrencyExternal no longer reads it. # tradeSanctions → tradePolicy renamed in plan 2026-04-25-004 Phase 1 # (Ship 1). The OFAC `sanctionCount` indicator was DROPPED — counting # designated-party domicile locations is a corporate-finance liability # metric, not a country-resilience indicator (a transit-hub country like # UAE or Singapore hosts many shell-company entries without that # reflecting on the host country's structural resilience). The OFAC # source itself is preserved (still consumed by country-brief generation # and ad-hoc analysis); only the resilience-scorer binding was removed. # A separate `financialSystemExposure` dim (plan Phase 2) will add # structural sanctions-vulnerability via BIS Consolidated Banking # Statistics (CBS, WS_CBS_PUB) + WB IDS short-term external debt + FATF AML/CFT listing # status. Remaining 3 components reweighted to total 1.0: - indicator: tradeRestrictions dimension: tradePolicy domain: economic weight: 0.30 direction: lower-better scoringTier: enrichment source: WTO seriesId: Trade Monitoring Database seriesUrl: https://www.wto.org/english/tratop_e/tpr_e/trade_monitoring_e.htm coveragePct: 0.75 lastObservedYear: 2025 license: Open mechanismTestRationale: WTO restriction severity directly measures market-access friction (low=0, moderate=1, high=2; lower is better). constructStatus: observed-mechanism - indicator: tradeBarriers dimension: tradePolicy domain: economic weight: 0.30 direction: lower-better scoringTier: enrichment source: WTO seriesId: Trade Barriers Notifications seriesUrl: https://tradebarriers.wto.org/ coveragePct: 0.70 lastObservedYear: 2025 license: Open mechanismTestRationale: Notified trade barriers (not yet in force) indicate near-term market-access risk. constructStatus: observed-mechanism - indicator: appliedTariffRate dimension: tradePolicy domain: economic weight: 0.40 direction: lower-better scoringTier: core source: World Bank / WITS seriesId: TM.TAX.MRCH.WM.AR.ZS seriesUrl: https://data.worldbank.org/indicator/TM.TAX.MRCH.WM.AR.ZS coveragePct: 0.90 lastObservedYear: 2023 license: CC-BY-4.0 mechanismTestRationale: Applied tariff rates measure cost of trade restriction on imports. constructStatus: observed-mechanism - indicator: shortTermExternalDebtPctGni dimension: financialSystemExposure domain: economic weight: 0.35 direction: lower-better scoringTier: enrichment source: World Bank IDS seriesId: DT.DOD.DSTC.IR.ZS × DT.DOD.DECT.GN.ZS seriesUrl: https://data.worldbank.org/ coveragePct: 0.56 lastObservedYear: 2024 license: CC-BY-4.0 mechanismTestRationale: Short-term external debt as % of GNI measures rollover funding pressure against the IMF Article IV vulnerability threshold. constructStatus: observed-mechanism reviewNotes: Active financialSystemExposure Enrichment scorer input. - indicator: bisLbsXborderPctGdp dimension: financialSystemExposure domain: economic weight: 0.30 direction: lower-better scoringTier: enrichment source: BIS Consolidated Banking Statistics seriesId: By-parent cross-border claims as % GDP seriesUrl: https://data.bis.org/topics/CBS coveragePct: 0.90 lastObservedYear: 2024 license: Proprietary-with-fair-use mechanismTestRationale: CBS by-parent foreign claims as % GDP measure external financial-channel exposure; the scorer applies a U-shape penalty for isolation and over-exposure. constructStatus: regional-only reviewNotes: Active financialSystemExposure Enrichment scorer input from curated BIS reporters. - indicator: fatfListingStatus dimension: financialSystemExposure domain: economic weight: 0.20 direction: higher-better scoringTier: core source: FATF seriesId: AML/CFT listing status seriesUrl: https://www.fatf-gafi.org/en/countries/black-and-grey-lists.html coveragePct: 0.90 lastObservedYear: 2026 license: Open mechanismTestRationale: FATF status measures direct financial-system access risk; compliant countries score above gray-list and black-list countries. constructStatus: observed-mechanism reviewNotes: Active financialSystemExposure Core scorer input. - indicator: financialCenterRedundancy dimension: financialSystemExposure domain: economic weight: 0.15 direction: higher-better scoringTier: enrichment source: BIS Consolidated Banking Statistics seriesId: Count of by-parent reporters with non-trivial claims seriesUrl: https://data.bis.org/topics/CBS coveragePct: 0.90 lastObservedYear: 2024 license: Proprietary-with-fair-use mechanismTestRationale: Distinct CBS by-parent counterparties measure redundancy in financial-center links and offset single-counterparty exposure. constructStatus: regional-only reviewNotes: Active financialSystemExposure Enrichment scorer input from curated BIS reporters. # INFRASTRUCTURE DOMAIN (weight 0.15) ------------------------------------- - indicator: cyberThreats dimension: cyberDigital domain: infrastructure weight: 0.45 direction: lower-better scoringTier: core source: Cyber threat feeds (mixed Western-origin) seriesId: discovery-day decayed severity-weighted count (critical 3×, high 2×, medium 1×, low 0.5×) seriesUrl: Internal seed coveragePct: 0.70 lastObservedYear: 2026 license: Proprietary feeds (aggregated) mechanismTestRationale: Discovery-day decayed severity-weighted cyber threat count measures ongoing cyber-attack pressure while dampening isolated stale bursts. constructStatus: observed-mechanism reviewNotes: Western-feed bias; non-English cyber activity under-represented. PR 4 §4.8 tracks this. - indicator: internetOutages dimension: cyberDigital domain: infrastructure weight: 0.35 direction: lower-better scoringTier: core source: Cloudflare Radar + internal monitoring seriesId: Outage penalty (total 4×, major 2×, partial 1×) seriesUrl: https://radar.cloudflare.com/ coveragePct: 0.95 lastObservedYear: 2026 license: CC-BY-4.0 mechanismTestRationale: Internet outages directly measure digital-infrastructure availability under current stress. constructStatus: observed-mechanism - indicator: gpsJamming dimension: cyberDigital domain: infrastructure weight: 0.20 direction: lower-better scoringTier: core source: GPSJam seriesId: Hex penalty (high 3×, medium 1×) seriesUrl: https://gpsjam.org/ coveragePct: 0.95 lastObservedYear: 2026 license: Open data mechanismTestRationale: GPS jamming intensity measures electronic-warfare / navigation-disruption exposure. constructStatus: observed-mechanism - indicator: logisticsPerformanceIndex dimension: logisticsSupply domain: infrastructure weight: TBD direction: higher-better source: World Bank LPI seriesId: LP.LPI.OVRL.XQ seriesUrl: https://lpi.worldbank.org/ coveragePct: 0.85 lastObservedYear: 2023 license: CC-BY-4.0 mechanismTestRationale: Logistics Performance Index measures functional capacity to move goods; directly shocks during supply-chain disruptions. constructStatus: observed-mechanism reviewNotes: Legacy catalog alias only; active logisticsSupply parity is represented by roadsPavedLogistics, shippingStress, and transitDisruption. - indicator: roadsPavedLogistics dimension: logisticsSupply domain: infrastructure weight: 0.50 direction: higher-better scoringTier: core source: World Bank Open Data seriesId: IS.ROD.PAVE.ZS seriesUrl: https://data.worldbank.org/indicator/IS.ROD.PAVE.ZS coveragePct: 0.85 lastObservedYear: 2024 license: CC-BY-4.0 mechanismTestRationale: Paved-road share measures physical logistics capacity for moving goods during supply-chain disruption. constructStatus: observed-mechanism reviewNotes: Active logisticsSupply Core scorer input. - indicator: shippingStress dimension: logisticsSupply domain: infrastructure weight: 0.25 direction: lower-better scoringTier: core source: Supply-chain monitor seriesId: supply_chain:shipping_stress:v1 seriesUrl: Internal seed coveragePct: 0.88 lastObservedYear: 2026 license: Open with attribution mechanismTestRationale: Shipping stress measures current maritime logistics shock pressure. constructStatus: observed-mechanism reviewNotes: Active logisticsSupply Core scorer input. - indicator: transitDisruption dimension: logisticsSupply domain: infrastructure weight: 0.25 direction: lower-better scoringTier: core source: Supply-chain monitor seriesId: supply_chain:transit-summaries:v1 seriesUrl: Internal seed coveragePct: 0.88 lastObservedYear: 2026 license: Open with attribution mechanismTestRationale: Transit-corridor disruption measures near-term goods-movement friction through disruption percentage and incident counts. constructStatus: observed-mechanism reviewNotes: Active logisticsSupply Core scorer input. - indicator: infrastructureSubcomponents dimension: infrastructure domain: infrastructure weight: TBD direction: higher-better source: World Bank + WEF Global Competitiveness seriesId: Composite seriesUrl: TBD coveragePct: 0.80 lastObservedYear: 2024 license: Mixed mechanismTestRationale: Physical infrastructure quality is the baseline capacity for delivering services during normal and crisis periods. constructStatus: observed-mechanism reviewNotes: Legacy catalog alias only; active infrastructure parity is represented by electricityAccess, roadsPavedInfra, infraOutages, and broadband. - indicator: electricityAccess dimension: infrastructure domain: infrastructure weight: 0.30 direction: higher-better scoringTier: core source: World Bank Open Data seriesId: EG.ELC.ACCS.ZS seriesUrl: https://data.worldbank.org/indicator/EG.ELC.ACCS.ZS coveragePct: 0.98 lastObservedYear: 2024 license: CC-BY-4.0 mechanismTestRationale: Electricity access measures baseline infrastructure reach for resilient public and commercial service delivery. constructStatus: observed-mechanism reviewNotes: Active infrastructure Core scorer input. - indicator: roadsPavedInfra dimension: infrastructure domain: infrastructure weight: 0.30 direction: higher-better scoringTier: core source: World Bank Open Data seriesId: IS.ROD.PAVE.ZS seriesUrl: https://data.worldbank.org/indicator/IS.ROD.PAVE.ZS coveragePct: 0.85 lastObservedYear: 2024 license: CC-BY-4.0 mechanismTestRationale: Paved-road share measures physical infrastructure quality for continuity of service delivery and goods movement. constructStatus: observed-mechanism reviewNotes: Active infrastructure Core scorer input. - indicator: infraOutages dimension: infrastructure domain: infrastructure weight: 0.25 direction: lower-better scoringTier: core source: Cloudflare Radar + internal monitoring seriesId: Outage penalty (total 4×, major 2×, partial 1×) seriesUrl: https://radar.cloudflare.com/ coveragePct: 0.88 lastObservedYear: 2026 license: CC-BY-4.0 mechanismTestRationale: Infrastructure outage events measure service-availability stress under current operating conditions. constructStatus: observed-mechanism reviewNotes: Active infrastructure Core scorer input. - indicator: broadband dimension: infrastructure domain: infrastructure weight: 0.15 direction: higher-better scoringTier: core source: World Bank Open Data seriesId: IT.NET.BBND.P2 seriesUrl: https://data.worldbank.org/indicator/IT.NET.BBND.P2 coveragePct: 0.96 lastObservedYear: 2024 license: open-data mechanismTestRationale: Fixed broadband subscriptions per 100 people measure baseline digital infrastructure reach for resilient public and commercial service delivery. constructStatus: observed-mechanism reviewNotes: Active infrastructure Core scorer input. Coverage is above the 70% coverage-influence floor and the Core tier floor. # ENERGY DOMAIN (weight 0.11) -------------------------------------------- - indicator: dependency dimension: energy domain: energy weight: 0.25 direction: lower-better source: IEA (via static seed) seriesId: Energy import dependency (%) seriesUrl: https://www.iea.org/data-and-statistics/data-browser coveragePct: 0.50 # IEA detail covers OECD + major non-OECD lastObservedYear: 2023 license: Proprietary-with-fair-use mechanismTestRationale: Share of energy consumption that is imported; direct supply-shock exposure. constructStatus: observed-mechanism reviewNotes: PR 1 §3.2 replaces with World Bank EG.IMP.CONS.ZS (better coverage) as part of importedFossilDependence composite. - indicator: gasShare dimension: energy domain: energy weight: 0.12 direction: lower-better scoringTier: experimental source: IEA World Energy Balances via static seed seriesId: Natural gas share of primary energy seriesUrl: https://www.iea.org/data-and-statistics/data-browser coveragePct: 0.85 lastObservedYear: 2023 license: Proprietary-with-fair-use mechanismTestRationale: CURRENT SCORER applies this as a vulnerability (lower-better) but it CONFLATES fossil-dominance with fossil-import-dependence. Domestic gas is a resilience asset, not a vulnerability. constructStatus: wealth-proxy reviewNotes: PR 1 §3.2 removes as standalone input; folds into importedFossilDependence under power-system framing. - indicator: coalShare dimension: energy domain: energy weight: 0.08 direction: lower-better scoringTier: experimental source: IEA World Energy Balances via static seed seriesId: Coal share of primary energy seriesUrl: https://www.iea.org/data-and-statistics/data-browser coveragePct: 0.85 lastObservedYear: 2023 license: Proprietary-with-fair-use mechanismTestRationale: Same concern as gasShare — penalty is climate-frame, not resilience-frame. Fails mechanism test under absolute-resilience contract. constructStatus: wealth-proxy reviewNotes: PR 1 §3.2 removes. - indicator: renewShare dimension: energy domain: energy weight: 0.05 direction: higher-better scoringTier: experimental source: IEA / World Bank seriesId: EG.ELC.RNEW.ZS seriesUrl: https://data.worldbank.org/indicator/EG.ELC.RNEW.ZS coveragePct: 0.85 lastObservedYear: 2023 license: CC-BY-4.0 mechanismTestRationale: Share of electricity from renewables, proxies low-carbon-firm-generation capacity (for hydro/geothermal) and diversity-of-supply (for wind/solar). constructStatus: observed-mechanism reviewNotes: PR 1 §3.3 collapses this legacy input into lowCarbonGenerationShare; the active replacement now uses OWID's pre-aggregated low-carbon electricity share. - indicator: storageStress dimension: energy domain: energy weight: 0.10 direction: lower-better source: GIE AGSI+ seriesId: EU gas storage fill % (per country) seriesUrl: https://agsi.gie.eu/ coveragePct: 0.15 # EU + UK + a handful lastObservedYear: 2026 license: Open mechanismTestRationale: EU gas storage fill directly measures winter-heating-shock buffer. European-only platform. constructStatus: regional-only reviewNotes: PR 1 §3.5 renames to euGasStorageStress and scopes to EU-only (weight 0 for non-EU). - indicator: energyPriceStress dimension: energy domain: energy weight: 0.15 direction: lower-better scoringTier: core source: Energy prices + fossil-electricity exposure composite seriesId: Derived seriesUrl: economic:energy:v1:all coveragePct: 1.00 lastObservedYear: 2026 license: Public-domain mechanismTestRationale: Combines energy-price shocks with import-exposure to measure price-shock transmission. constructStatus: observed-mechanism reviewNotes: Active energy-v2 Core scorer input. Weight increased from legacy 0.10 to 0.15; exposure is derived from fossil share of electricity generation under the power-system framing. - indicator: electricityConsumption dimension: energy domain: energy weight: 0.30 direction: higher-better scoringTier: experimental source: World Bank seriesId: EG.USE.ELEC.KH.PC seriesUrl: https://data.worldbank.org/indicator/EG.USE.ELEC.KH.PC coveragePct: 0.90 lastObservedYear: 2022 license: CC-BY-4.0 mechanismTestRationale: FAILS the mechanism test. Per-capita electricity consumption tracks GDP per capita; it is a level-of-load measure not a resilience mechanism. IEA energy-security framing treats EFFICIENCY (lower load for same output) as resilience, which this indicator inversely rewards. constructStatus: wealth-proxy reviewNotes: PR 1 §3.1 removes. Replaced with powerLossesPct (EG.ELC.LOSS.ZS), reserveMarginPct (IEA), and accessToElectricityPct (EG.ELC.ACCS.ZS) moved to infrastructure domain. - indicator: importedFossilDependence dimension: energy domain: energy weight: 0.35 direction: lower-better scoringTier: core source: World Bank + static net-import dependency seed seriesId: EG.ELC.FOSL.ZS × max(EG.IMP.CONS.ZS, 0) / 100 seriesUrl: https://data.worldbank.org/indicator/EG.ELC.FOSL.ZS coveragePct: 0.97 lastObservedYear: 2024 license: CC-BY-4.0 mechanismTestRationale: Measures imported fossil exposure in the power system while not penalizing domestic fossil producers as import-dependent. constructStatus: observed-mechanism reviewNotes: Active energy-v2 Core scorer input. Replaces standalone energyImportDependency + gasShare + coalShare under the Option B power-system framing. - indicator: lowCarbonGenerationShare dimension: energy domain: energy weight: 0.20 direction: higher-better scoringTier: core source: OWID / Ember / Energy Institute seriesId: share-electricity-low-carbon seriesUrl: https://ourworldindata.org/grapher/share-electricity-low-carbon coveragePct: 0.97 lastObservedYear: 2025 license: CC-BY-4.0 mechanismTestRationale: Credits low-carbon electricity generation from renewables plus nuclear; OWID renewables already include hydropower, avoiding hydro omission or double-counting. constructStatus: observed-mechanism reviewNotes: Active energy-v2 Core scorer input. Absorbs legacy renewShare and adds nuclear credit through the pre-aggregated OWID low-carbon electricity share. - indicator: powerLossesPct dimension: energy domain: energy weight: 0.20 direction: lower-better scoringTier: core source: World Bank seriesId: EG.ELC.LOSS.ZS seriesUrl: https://data.worldbank.org/indicator/EG.ELC.LOSS.ZS coveragePct: 0.96 lastObservedYear: 2024 license: CC-BY-4.0 mechanismTestRationale: Transmission and distribution losses directly measure grid integrity. constructStatus: observed-mechanism reviewNotes: Active energy-v2 Core scorer input. Temporarily absorbs reserveMarginPct's deferred 0.10 share until an IEA reserve-margin seeder lands. - indicator: euGasStorageStress dimension: energy domain: energy weight: 0.10 direction: lower-better scoringTier: enrichment source: GIE AGSI+ seriesId: EU gas storage fill % (per country) seriesUrl: https://agsi.gie.eu/ coveragePct: 0.15 lastObservedYear: 2026 license: Open mechanismTestRationale: EU gas storage fill directly measures winter-heating-shock buffer for countries where the regional source applies. constructStatus: regional-only reviewNotes: Active energy-v2 Enrichment scorer input. Scored only for EU gas-storage countries; non-EU countries contribute null, not 0. # SOCIAL-GOVERNANCE DOMAIN (weight 0.19) --------------------------------- - indicator: wgiComposite dimension: governanceInstitutional domain: social-governance weight: 1.0 direction: higher-better source: World Bank WGI seriesId: Voice/Accountability, Political Stability, Government Effectiveness, Regulatory Quality, Rule of Law, Control of Corruption seriesUrl: https://info.worldbank.org/governance/wgi/ coveragePct: 0.98 lastObservedYear: 2023 license: CC-BY-4.0 mechanismTestRationale: WGI subscores measure state capacity to design and enforce policy response to shocks. Passes the mechanism test conditionally — the composite is a direct policy-response-capacity signal. constructStatus: observed-mechanism reviewNotes: Legacy catalog alias only; active governanceInstitutional parity is represented by the six WGI subscore rows below. - indicator: wgiVoiceAccountability dimension: governanceInstitutional domain: social-governance weight: 0.16666666666666666 direction: higher-better scoringTier: core source: World Bank WGI seriesId: Voice and Accountability seriesUrl: https://info.worldbank.org/governance/wgi/ coveragePct: 0.96 lastObservedYear: 2023 license: Public-domain mechanismTestRationale: Voice and Accountability measures civic accountability capacity that supports policy legitimacy during shocks. constructStatus: observed-mechanism reviewNotes: Active governanceInstitutional Core scorer input. - indicator: wgiPoliticalStability dimension: governanceInstitutional domain: social-governance weight: 0.16666666666666666 direction: higher-better scoringTier: core source: World Bank WGI seriesId: Political Stability and Absence of Violence seriesUrl: https://info.worldbank.org/governance/wgi/ coveragePct: 0.96 lastObservedYear: 2023 license: Public-domain mechanismTestRationale: Political Stability measures institutional continuity and absence-of-violence capacity under shock conditions. constructStatus: observed-mechanism reviewNotes: Active governanceInstitutional Core scorer input. - indicator: wgiGovernmentEffectiveness dimension: governanceInstitutional domain: social-governance weight: 0.16666666666666666 direction: higher-better scoringTier: core source: World Bank WGI seriesId: Government Effectiveness seriesUrl: https://info.worldbank.org/governance/wgi/ coveragePct: 0.96 lastObservedYear: 2023 license: Public-domain mechanismTestRationale: Government Effectiveness measures administrative capacity to deliver services and execute policy response. constructStatus: observed-mechanism reviewNotes: Active governanceInstitutional Core scorer input. - indicator: wgiRegulatoryQuality dimension: governanceInstitutional domain: social-governance weight: 0.16666666666666666 direction: higher-better scoringTier: core source: World Bank WGI seriesId: Regulatory Quality seriesUrl: https://info.worldbank.org/governance/wgi/ coveragePct: 0.96 lastObservedYear: 2023 license: Public-domain mechanismTestRationale: Regulatory Quality measures policy design capacity that supports resilient markets and public systems. constructStatus: observed-mechanism reviewNotes: Active governanceInstitutional Core scorer input. - indicator: wgiRuleOfLaw dimension: governanceInstitutional domain: social-governance weight: 0.16666666666666666 direction: higher-better scoringTier: core source: World Bank WGI seriesId: Rule of Law seriesUrl: https://info.worldbank.org/governance/wgi/ coveragePct: 0.96 lastObservedYear: 2023 license: Public-domain mechanismTestRationale: Rule of Law measures enforcement predictability and institutional trust during shocks. constructStatus: observed-mechanism reviewNotes: Active governanceInstitutional Core scorer input. - indicator: wgiControlOfCorruption dimension: governanceInstitutional domain: social-governance weight: 0.16666666666666666 direction: higher-better scoringTier: core source: World Bank WGI seriesId: Control of Corruption seriesUrl: https://info.worldbank.org/governance/wgi/ coveragePct: 0.96 lastObservedYear: 2023 license: Public-domain mechanismTestRationale: Control of Corruption measures leakage and capture risk in policy-response capacity. constructStatus: observed-mechanism reviewNotes: Active governanceInstitutional Core scorer input. - indicator: gpiScore dimension: socialCohesion domain: social-governance weight: 0.55 direction: lower-better scoringTier: enrichment source: Institute for Economics and Peace seriesId: Global Peace Index seriesUrl: https://www.visionofhumanity.org/ coveragePct: 0.75 lastObservedYear: 2024 license: Proprietary-with-fair-use mechanismTestRationale: GPI measures internal conflict, militarization, and external conflict intensity — direct social-cohesion-shock exposure. constructStatus: observed-mechanism reviewNotes: Active socialCohesion Enrichment scorer input; known Western-democracy bias in GPI methodology. - indicator: displacementTotal dimension: socialCohesion domain: social-governance weight: 0.25 direction: lower-better scoringTier: core source: UNHCR seriesId: totalDisplaced seriesUrl: https://data.unhcr.org/ coveragePct: 0.95 lastObservedYear: 2025 license: Open mechanismTestRationale: "Total displaced persons directly measures ongoing forced-migration pressure; the live scorer uses log10 absolute displaced-person counts." constructStatus: observed-mechanism reviewNotes: Active socialCohesion Core scorer input; not population-normalized and no longer documented as the retired displacementMetric alias. - indicator: unrestEvents dimension: socialCohesion domain: social-governance weight: 0.20 direction: lower-better scoringTier: core source: Internal unrest seed (cross-source signals + UCDP) seriesId: unrestCount + sqrt(fatalities) seriesUrl: Internal seed coveragePct: 0.85 lastObservedYear: 2026 license: Mixed mechanismTestRationale: Active unrest events measure current social-cohesion stress. constructStatus: observed-mechanism reviewNotes: Active socialCohesion Core scorer input; event counts divide by max(populationMillions, 0.5) in the live scorer. - indicator: borderSecuritySubs dimension: borderSecurity domain: social-governance weight: TBD direction: composite source: Composite (UNHCR displacement + UCDP conflict + governance) seriesId: Derived seriesUrl: Internal seed coveragePct: 0.80 lastObservedYear: 2026 license: Mixed mechanismTestRationale: Border-security composite captures cross-border shock transmission exposure. constructStatus: observed-mechanism reviewNotes: Legacy catalog alias only; active borderSecurity parity is represented by ucdpConflict and displacementHosted. - indicator: ucdpConflict dimension: borderSecurity domain: social-governance weight: 0.65 direction: lower-better scoringTier: core source: UCDP seriesId: Armed conflict events / fatalities seriesUrl: https://ucdp.uu.se/ coveragePct: 0.87 lastObservedYear: 2026 license: Research-only mechanismTestRationale: UCDP conflict intensity measures armed-conflict event pressure and fatalities as a direct continuity shock. constructStatus: observed-mechanism reviewNotes: Active borderSecurity Core scorer input. - indicator: displacementHosted dimension: borderSecurity domain: social-governance weight: 0.35 direction: lower-better scoringTier: core source: UNHCR seriesId: hosted / total displaced persons seriesUrl: https://data.unhcr.org/ coveragePct: 0.90 lastObservedYear: 2025 license: Open mechanismTestRationale: Hosted displaced-person pressure measures refugee and forced-migration stress on state services and borders. constructStatus: observed-mechanism reviewNotes: Active borderSecurity Core scorer input. - indicator: rsfPressFreedom dimension: informationCognitive domain: social-governance weight: 0.55 direction: lower-better scoringTier: core source: Reporters Sans Frontieres seriesId: Press Freedom Index seriesUrl: https://rsf.org/en/index coveragePct: 0.85 lastObservedYear: 2024 license: open-attribution mechanismTestRationale: RSF press-freedom risk directly measures information-environment fragility and independent-verification constraints; lower RSF score is better. constructStatus: observed-mechanism - indicator: languageNormalizedSocialVelocity dimension: informationCognitive domain: social-governance weight: TBD direction: composite source: Reddit + cross-source + internal language-coverage-weighting seriesId: Internal seriesUrl: Internal seed coveragePct: 0.95 lastObservedYear: 2026 license: Mixed mechanismTestRationale: Language-normalized social-information velocity measures information-shock propagation speed adjusted for source-density bias. constructStatus: observed-mechanism reviewNotes: Legacy catalog alias only; active informationCognitive parity is represented by rsfPressFreedom, socialVelocity, and newsThreatScore. - indicator: socialVelocity dimension: informationCognitive domain: social-governance weight: 0.15 direction: lower-better scoringTier: core source: Reddit social monitor seriesId: intelligence:social:reddit:v1 seriesUrl: Internal seed coveragePct: 0.88 lastObservedYear: 2026 license: Open with attribution mechanismTestRationale: Social velocity measures information-shock propagation speed after language-coverage weighting. constructStatus: observed-mechanism reviewNotes: Active informationCognitive Core scorer input. - indicator: newsThreatScore dimension: informationCognitive domain: social-governance weight: 0.30 direction: lower-better scoringTier: core source: AI news threat summary seriesId: news:threat:summary:v1 seriesUrl: Internal seed coveragePct: 0.88 lastObservedYear: 2026 license: Open with attribution mechanismTestRationale: Threat-weighted news intensity measures current information-environment stress. constructStatus: observed-mechanism reviewNotes: Active informationCognitive Core scorer input. # HEALTH-FOOD DOMAIN (weight 0.13) --------------------------------------- - indicator: physiciansPer1k dimension: healthPublicService domain: health-food weight: 0.15 direction: higher-better scoringTier: core source: WHO Global Health Observatory seriesId: HWF_0001 seriesUrl: https://www.who.int/data/gho coveragePct: 0.99 lastObservedYear: 2022 license: WHO public-domain/open-data mechanismTestRationale: Physician density measures clinical workforce capacity available for routine service delivery and surge response. constructStatus: observed-mechanism reviewNotes: Active healthPublicService Core scorer input. Static seed converts WHO's per-10,000 value to physicians per 1,000 before scoring. - indicator: healthExpPerCapitaUsd dimension: healthPublicService domain: health-food weight: 0.15 direction: higher-better scoringTier: core source: WHO Global Health Observatory seriesId: GHED_CHE_pc_US_SHA2011 seriesUrl: https://www.who.int/data/gho coveragePct: 0.99 lastObservedYear: 2022 license: WHO public-domain/open-data mechanismTestRationale: Health expenditure per capita proxies health-system capacity. FAILS the strict mechanism test — it measures SPEND, not CAPACITY. Should be replaced with surge-capacity / bed-density / ICU-density threshold signal. constructStatus: wealth-proxy reviewNotes: Active healthPublicService Core scorer input. PR 4 §4.9 tracks replacement with a direct surge-capacity signal; kept Core here because it is already in the public scorer and clears coverage-influence tiering. - indicator: uhcIndex dimension: healthPublicService domain: health-food weight: 0.35 direction: higher-better scoringTier: core source: WHO Global Health Observatory seriesId: Universal Health Coverage service coverage index seriesUrl: https://www.who.int/data/gho coveragePct: 0.87 lastObservedYear: 2022 license: WHO public-domain/open-data mechanismTestRationale: Universal Health Coverage index measures baseline service coverage available before and during public-health shocks. constructStatus: observed-mechanism reviewNotes: Active healthPublicService Core scorer input. - indicator: measlesCoverage dimension: healthPublicService domain: health-food weight: 0.25 direction: higher-better scoringTier: core source: WHO Global Health Observatory seriesId: Measles immunization coverage among 1-year-olds seriesUrl: https://www.who.int/data/gho coveragePct: 0.87 lastObservedYear: 2022 license: WHO public-domain/open-data mechanismTestRationale: Measles immunization coverage measures preventive-health reach and public-service delivery capacity. constructStatus: observed-mechanism reviewNotes: Active healthPublicService Core scorer input. - indicator: hospitalBeds dimension: healthPublicService domain: health-food weight: 0.10 direction: higher-better scoringTier: core source: WHO Global Health Observatory seriesId: Hospital beds per 1,000 people seriesUrl: https://www.who.int/data/gho coveragePct: 0.87 lastObservedYear: 2022 license: WHO public-domain/open-data mechanismTestRationale: Hospital-bed density measures physical care capacity available for health-system surge response. constructStatus: observed-mechanism reviewNotes: Active healthPublicService Core scorer input. - indicator: ipcPeopleInCrisis dimension: foodWater domain: health-food weight: 0.45 direction: lower-better scoringTier: core source: FAO IPC (Integrated Food Security Phase Classification) seriesId: People in food crisis (log10 scale) seriesUrl: https://www.ipcinfo.org/ coveragePct: 0.88 lastObservedYear: 2025 license: Open mechanismTestRationale: People in crisis measures population-scale food-security pressure, with log scaling for extreme crises. constructStatus: observed-mechanism reviewNotes: Active foodWater Core scorer input. - indicator: ipcPhase dimension: foodWater domain: health-food weight: 0.15 direction: lower-better scoringTier: core source: FAO IPC (Integrated Food Security Phase Classification) seriesId: IPC Phase (1-5) seriesUrl: https://www.ipcinfo.org/ coveragePct: 0.40 # IPC covers acutely-affected countries lastObservedYear: 2025 license: Open mechanismTestRationale: IPC phase directly measures current food-security-crisis severity. constructStatus: observed-mechanism reviewNotes: Coverage is inherently partial — IPC only tracks countries with current/imminent food crises. Imputed to a resilient-default for non-tracked countries. - indicator: aquastatScore dimension: foodWater domain: health-food weight: 0.40 direction: composite scoringTier: core source: FAO AQUASTAT seriesId: Indicator-tagged water stress / withdrawal / dependency / availability / renewable / access reading seriesUrl: https://www.fao.org/aquastat/ coveragePct: 0.85 lastObservedYear: 2020 license: Open mechanismTestRationale: The scorer uses one AQUASTAT slot. `scoreAquastatValue()` routes stress/withdrawal/dependency tags through lower-better 0-100 anchors and availability/renewable/access tags through higher-better 0-100 or 0-5000 anchors. constructStatus: observed-mechanism # RECOVERY DOMAIN (weight 0.25) ------------------------------------------ - indicator: recoveryGovRevenue dimension: fiscalSpace domain: recovery weight: 0.25 direction: higher-better scoringTier: core source: IMF seriesId: GGR_G01_GDP_PT seriesUrl: https://www.imf.org/external/datamapper/GGR_G01_GDP_PT@FM/ coveragePct: 0.90 lastObservedYear: 2024 license: Proprietary-with-fair-use mechanismTestRationale: Government revenue % GDP for recovery scenarios — policy-response fiscal headroom. constructStatus: observed-mechanism reviewNotes: Weight reduced 0.40 → 0.25 to make room for debtSustainabilityGap (the more informative single signal). Duplicate with macroFiscal.govRevenuePct. PR 4 may de-duplicate. - indicator: recoveryFiscalBalance dimension: fiscalSpace domain: recovery weight: 0.20 direction: higher-better scoringTier: core source: IMF seriesId: GGXCNL_G01_GDP_PT seriesUrl: https://www.imf.org/external/datamapper/GGXCNL_G01_GDP_PT@FM/ coveragePct: 0.85 lastObservedYear: 2024 license: Proprietary-with-fair-use mechanismTestRationale: General government net lending/borrowing as % of GDP — direct fiscal-response-capacity signal. constructStatus: observed-mechanism reviewNotes: Weight reduced 0.30 → 0.20 with the addition of debtSustainabilityGap, which integrates fiscal balance into its r-g computation. - indicator: recoveryDebtToGdp dimension: fiscalSpace domain: recovery weight: 0.20 direction: lower-better scoringTier: core source: IMF seriesId: GGXWDG_NGDP_PT seriesUrl: https://www.imf.org/external/datamapper/GGXWDG_NGDP_PT@FM/ coveragePct: 0.90 lastObservedYear: 2024 license: Proprietary-with-fair-use mechanismTestRationale: General government gross debt to GDP — fiscal-stress cushion. constructStatus: observed-mechanism reviewNotes: Weight reduced 0.30 → 0.20 alongside the addition of debtSustainabilityGap. Goalpost 0-150 is too linear; Japan at 260% (mostly domestic, yen-denominated) scores 0 despite weak real fiscal-stress risk. The gap indicator partially compensates by honoring the g≈r regime. PR 4 §4.4 adds holder-composition modifier. - indicator: debtSustainabilityGap dimension: fiscalSpace domain: recovery weight: 0.35 direction: higher-better scoringTier: enrichment source: IMF (5 series composite — see formula in country-resilience-index.mdx §Fiscal Space) seriesId: GGXONLB_NGDP × GGXCNL_NGDP × GGXWDG_NGDP × NGDP_RPCH × PCPIPCH seriesUrl: https://www.imf.org/external/datamapper/datasets/WEO coveragePct: 0.79 # ~150 of 190 countries — realistic joint coverage after year-alignment + hyperinflation cap lastObservedYear: 2024 license: Proprietary-with-fair-use mechanismTestRationale: | Primary-balance gap to debt-stabilizing level — the standard IMF DSA construct used by Article IV missions, ECB MIP scoreboard, and S&P sovereign methodology. Captures debt trajectory (sustainability) rather than debt level. Computed at seed time: gap = pb − ((r−g)/(1+g))·d where r is derived from the algebraic identity (overall_balance = primary_balance − interest_expense), g is compounded nominal growth (1+real)·(1+inflation)−1. Inputs year-aligned via latestCommonYear across the 5 formula series; year-mismatched countries drop to null and the scorer's weightedBlend redistributes weight across the remaining 3 fiscal-space indicators. constructStatus: observed-mechanism reviewNotes: | Inflation cap (CPI > 10%) drops gap to null for inflation-tax-regime countries (Argentina, Turkey, Lebanon, Egypt, Nigeria, Ethiopia, Bolivia, Kazakhstan, etc.) — above this threshold the formula's high nominal-growth term mechanically erodes debt while masking real fiscal pathology. Fiscal-3 still scores these countries. Cap tightened from 25% in 2026-05-19 follow-up to PR #3669 after live data showed Lebanon (14.6% CPI) scoring #1 globally on this indicator. Goalposts -5/+3 chosen from IMF DSA distress conventions; gap≈0 is debt-stabilizing (normalized score ≈ 62), gap≥+3 saturates (debt declining), gap≤-5 floors (severe distress). - indicator: recoveryReserveMonths dimension: reserveAdequacy domain: recovery weight: 1.00 direction: higher-better scoringTier: experimental source: World Bank seriesId: FI.RES.TOTL.MO seriesUrl: https://data.worldbank.org/indicator/FI.RES.TOTL.MO coveragePct: 0.85 lastObservedYear: 2023 license: CC-BY-4.0 mechanismTestRationale: Central-bank reserves in months of imports — immediate external-liquidity cushion. constructStatus: observed-mechanism reviewNotes: Experimental rollback row only; active recovery parity moved to recoveryLiquidReserveMonths under liquidReserveAdequacy. - indicator: recoveryLiquidReserveMonths dimension: liquidReserveAdequacy domain: recovery weight: 1.00 direction: higher-better scoringTier: core source: World Bank seriesId: FI.RES.TOTL.MO seriesUrl: https://data.worldbank.org/indicator/FI.RES.TOTL.MO coveragePct: 0.85 lastObservedYear: 2023 license: CC-BY-4.0 mechanismTestRationale: Central-bank reserves in months of imports measure immediate external-liquidity cushion; sovereign-wealth assets score separately. constructStatus: observed-mechanism reviewNotes: Active liquidReserveAdequacy Core scorer input replacing the reserveAdequacy rollback dimension. - indicator: recoveryDebtToReserves dimension: externalDebtCoverage domain: recovery weight: 1.00 direction: lower-better scoringTier: core source: World Bank seriesId: DT.DOD.DSTC.CD / FI.RES.TOTL.CD seriesUrl: https://data.worldbank.org/indicator/DT.DOD.DSTC.CD coveragePct: 0.75 lastObservedYear: 2023 license: CC-BY-4.0 mechanismTestRationale: Short-term external debt to reserves ratio — rollover-shock exposure. Goalpost anchored on Greenspan-Guidotti (ratio≥1 = reserve inadequacy). constructStatus: observed-mechanism reviewNotes: PR 3 §3.5 point 3 re-goalposted from (0..5) to (0..2). Old goalpost saturated at 100 across the 9-country probe including stressed states; new anchor maps ratio=1.0 to score 50 and ratio=2.0 to score 0. - indicator: recoveryImportHhi dimension: importConcentration domain: recovery weight: 1.00 direction: lower-better scoringTier: core source: UN Comtrade seriesId: HS2 bilateral Herfindahl-Hirschman Index seriesUrl: https://comtrade.un.org/ coveragePct: 0.70 lastObservedYear: 2023 license: Open mechanismTestRationale: Import-partner concentration (HHI) — supplier-shock exposure. constructStatus: observed-mechanism reviewNotes: Coverage gap for UAE and small-island states; PR 1+ audit. - indicator: recoveryWgiContinuity dimension: stateContinuity domain: recovery weight: 0.50 direction: higher-better scoringTier: core source: World Bank WGI seriesId: Mean of WGI subscores seriesUrl: https://info.worldbank.org/governance/wgi/ coveragePct: 0.98 lastObservedYear: 2023 license: CC-BY-4.0 mechanismTestRationale: WGI composite as state-continuity proxy — institutional durability through shocks. constructStatus: observed-mechanism reviewNotes: Duplicate with governanceInstitutional.wgiComposite. PR 4 de-duplicate. - indicator: recoveryConflictPressure dimension: stateContinuity domain: recovery weight: 0.30 direction: lower-better scoringTier: core source: UCDP seriesId: Armed conflict events / fatalities seriesUrl: https://ucdp.uu.se/ coveragePct: 0.95 lastObservedYear: 2026 license: Open mechanismTestRationale: UCDP conflict intensity — direct state-continuity-shock metric. constructStatus: observed-mechanism - indicator: recoveryDisplacementVelocity dimension: stateContinuity domain: recovery weight: 0.20 direction: lower-better scoringTier: core source: UNHCR seriesId: Displacement as share of population seriesUrl: https://data.unhcr.org/ coveragePct: 0.95 lastObservedYear: 2025 license: Open mechanismTestRationale: Displacement velocity — population-scale state-continuity stress. constructStatus: observed-mechanism reviewNotes: Inherits host-vs-sending bias. PR 4 §4.2 fix. - indicator: recoveryFuelStockDays dimension: fuelStockDays domain: recovery weight: 1.00 direction: higher-better scoringTier: experimental source: IEA / EIA seriesId: Days of fuel stock cover seriesUrl: https://www.iea.org/data-and-statistics/data-tools/oil-stocks-of-iea-countries coveragePct: 0.30 # imputed for every country lastObservedYear: null license: Proprietary mechanismTestRationale: Days of fuel stock for import-shock coverage. IEA rules bind only net importers; net exporters get no observed value. constructStatus: imputed-floor reviewNotes: PR 3 §3.5 retires from core score (permanent). Enrichment-only if IEA/EIA connector ever wires. # FOOTER STATUS NOTES ------------------------------------------------------ # Deferred additions: # - reserveMarginPct → IEA electricity balance (generation reserve margin, higher-better) # Landed active dimensions: # - liquidReserveAdequacy → FI.RES.TOTL.MO (active replacement for reserveAdequacy) # - sovereignFiscalBuffer → IFSWF + official disclosures × access × liquidity × transparency # Future replacement candidate (not yet in the scorer): # - realInterestRate → FR.INR.RINR (replaces currencyExternal for non-BIS countries)