The IRR-E (Energy Route Risk Index) is a proprietary composite score from 0 to 10 measuring the real-time risk of disruption to a specific energy shipping corridor. Here is exactly how it is calculated.
Data sources — live pipeline
The pipeline runs every 15 minutes via GitHub Actions, pulling from two concurrent source layers: GDELT 2.0 (real Goldstein NLP scores) and 20 specialised RSS feeds (energy, maritime, regional). Sources are merged and deduplicated by URL; GDELT takes priority where overlap exists.
Primary — GDELT 2.0 API
→GDELT 2.0 — Global Events Language and Tone database. 250 articles per chokepoint per cycle. Real Goldstein scale (−10 to +10) from GDELT's own NLP system — not keyword proxies. 15-min cadence.
→Tier 2 · Regional specialists — Al Jazeera (×9), The National (×8), Al Arabiya (×8), Arab News (×8), Middle East Eye (×7), Reuters World (×9), Reuters Business (×8), South China Morning Post (×7), Straits Times (×8).
→Tier 3 · Global wire — BBC World (×8), The Guardian (×7), Deutsche Welle (×6), Sky News (×6), BBC Business (×7).
Macroeconomic & supply data
→EIA Petroleum API — US Energy Information Administration. Weekly crude production, refinery utilisation, and strategic reserve levels. Ingested every 15 min; new data publishes Wednesdays.
→FRED (Federal Reserve Economic Data) — USD/barrel macro context: DXY index, oil-sector credit spreads, US 10y yield. Used in the Macro module and as EIA_CI input.
→OFAC / EU / UN Sanctions — Keyword-density proxy from GDELT corpus. Phase 2 will add direct entity-feed integration from ofac.treasury.gov and EU FISMA REST API.
→aisstream.io — AIS vessel tracking (Phase 2). Current AIS_CI sub-index uses a vessel-mention proxy from GDELT/RSS corpus.
// GDELT_CI = mention-weighted Goldstein scale (GDELT 2.0 + 20 RSS feeds), normalized 0–1 // AIS_CI = vessel-mention proxy from news corpus [Phase 2: aisstream.io real-time feed] // SAN_CI = sanctions-term density per chokepoint corpus (OFAC/EU/UN keywords) // EIA_CI = supply pressure index derived from GDELT/AIS trend [Phase 2: EIA weekly delta] // Score range: 0.0 (minimal) to 10.0 (critical disruption) // Temporal smoothing: score = 0.80 × current + 0.20 × prev_cycle
Each sub-index is scored independently and then weighted. The GDELT Conflict Index (GDELT_CI) is derived from the mention-weighted Goldstein scale of articles matching each chokepoint's geographic keyword set, inverted and normalized so that 1.0 represents maximum conflict intensity.
Temporal smoothing (20% blending with the previous cycle) dampens single-article spikes and reflects the reality that geopolitical risk does not reset to zero between news cycles.
Score interpretation
→1.0 – 2.9 — LOW: Normal operational conditions. Standard monitoring protocols apply.
PetroSentinel publishes a semi-annual Accuracy Report documenting alert precision, false positive rates, and model performance by region. We are the only platform in this segment that publicly reports our error rates.
The SHAP (SHapley Additive exPlanations) explainer module allows subscribers to see exactly which data inputs contributed to any specific score, with percentage contribution breakdown. No black box.