How the score is built
Global Health Report does not predict an apocalypse. It aggregates measurable systemic-risk indicators into a transparent 0–100 stress model.
Core quantities
- Level — normalized 0–100 stress from the current observation
- Velocity — whether stress is rising or falling
- Acceleration — whether that change is speeding up
- Buffer depletion — high stress coinciding with rising stress
System risk formula (v1.8.0)
SystemRisk = 0.60·Level + 0.15·Velocity + 0.15·BufferDepletion + 0.10·Acceleration
Weights live in config/weights.json and are versioned with every publish. Buffer buckets are stress-first (flat high stress is not labeled “stable”).
Propagation
A directed weighted graph connects metrics and domains (e.g., energy → food). Impacts are confidence-weighted, depth-damped, and capped by maxImpact to prevent runaway recursion. Every contribution is logged in data/cascades.json.
6-month stress outlook
Each publish builds a persistence-plus-cascade scenario (also at data/outlook.json):
- Assume today’s domain scores largely hold for six months unless drivers reverse
- Add partial realization of domain→domain graph edges (water→food, energy→finance, maritime→energy, geopolitical→maritime, etc.)
- Rank “if this stays stressed → impact on that” channels by source stress × edge weight
- Optional Bedrock prose decorates the structure; it does not invent scores or events
This is a scenario tool, not a probabilistic forecast. Named events (e.g. a specific chokepoint closure) appear only when live metrics already reflect them.
Confidence
Confidence falls when data is stale, secondary, inferred, or unavailable. Low-confidence metrics pull less weight in domain and global aggregates.
Primary sources (v1.8.7)
- Eagle Intelligence — live strategic chokepoint status (Hormuz crisis-day counter, Suez, Bab el-Mandeb, Panama, Malacca, Bosphorus; CC BY 4.0)
- FAO — Food Price Index and Cereal Price Index (official monthly CSV)
- IPC via HDX — Phase 3+ and Phase 5 acute food-insecurity population headcounts (CC0)
- NOAA NCEI — global land+ocean temperature anomaly
- INFORM (JRC / UNDP) — country humanitarian crisis risk scores
- World Bank / OWID / AQUASTAT-derived — multi-region water stress, drinking water, power access, containers/TEU, inflation/GDP, immunization
- FRED / IMF — Brent/Dubai crude, EU gas, Asia LNG, energy index, oil/gold vol, VIX, Euro/EM credit OAS, EM USD, Global EPU, World Uncertainty Index
- UNHCR — refugees, IDPs, asylum seekers, forcibly displaced totals
- ILOSTAT — world unemployment and employment ratios
- UCDP — conflict events (Candidate CSV / GED); US CENTCOM keyword proxies demoted/disabled
- WHO DON — outbreak news (US CDC regional series disabled)
- GDACS / NASA FIRMS / USGS quakes — disasters, fires, global seismicity
LLM role
Optional Bedrock text explains the day. It never creates the quantitative score. Steelman and red-team sections are both required when enabled.
Limitations
- Annual World Bank / UNHCR / OWID series update slowly; freshness windows are wide by design
- US-regional series (EIA inventories, USGS rivers, CENTCOM releases, CDC NNDSS) are disabled or low-weight so they do not drive “global” domain scores
- Normalization anchors are expert-configurable, not universal truth
- Missing paid keys (ACLED, UCDP GED token) fall back to free Candidate CSV / alternate feeds