Overview
The World Tension Score is a composite 0–100 index of geopolitical stress and its likely inflationary impact on the global economy. It is calculated in two parts: a raw signal score derived from five real-time data signals, and an event memory adjustment that ensures major events leave a lasting imprint on the score even after they fade from the daily news cycle.
Final Score = Raw Score + Event Memory Boost (scaled by raw score)
The five signals
1. Conflict Index
Weight: 25%Measures active armed conflict intensity worldwide. Derived from NLP keyword analysis of headlines across 12 RSS news feeds: Reuters, BBC, Al Jazeera, The Guardian, Google News, Yahoo Finance, NPR, and MarketWatch. Articles are scanned for fear-signal words (war, invasion, attack, missile, airstrike, sanctions, blockade, nuclear) and calm-signal words (ceasefire, peace, agreement, deal, recovery). The ratio of fear-to-calm signals per article, weighted by article count, produces the conflict score.
Formula: fear_per_article normalized against 0.08 (very calm) to 1.20 (crisis level), minus calm penalty. Calibrated so 0.30 fear/article ≈ 45, 0.80 fear/article ≈ 75.
2. Energy Stress
Weight: 20%Composite of Brent crude oil price and gold price (XAU/USD). Oil is the primary inflation transmission mechanism — every $10/barrel increase in oil historically adds ~0.3% to headline CPI within 3 months. Gold above $2,000/oz signals safe-haven demand and reflects investor fear of instability. Both prices are fetched in real-time from Yahoo Finance and Alpha Vantage.
Oil normalization: $55 = 0, $115 = 100 · Gold normalization: $1,800 = 0, $5,500 = 100 · Combined: (Oil × 60%) + (Gold × 40%)
3. Trade Disruption
Weight: 20%Approximates disruption to global trade flows, supply chains, and shipping routes. Computed as a weighted blend of the conflict score (55%) and media sentiment score (45%). This reflects the empirical relationship where active conflict is the dominant driver of supply chain disruption, while media coverage captures secondary signals like sanctions, tariffs, and port closures that conflict data may not capture directly.
Formula: (Conflict score × 55%) + (Media score × 45%)
4. Financial Stress
Weight: 20%Three-component composite using real-time market data from the Federal Reserve FRED database and Yahoo Finance. The US 10-year Treasury yield reflects inflation expectations built into bond markets. The VIX (CBOE Volatility Index) measures equity market fear and uncertainty. The US Dollar Index (DXY) captures currency stress — both extreme dollar strength (capital flight to safety) and extreme weakness (inflation expectations) signal elevated tension.
Yield normalization: 1.5% = 0, 5.5% = 100 · VIX normalization: 10 = 0, 45 = 100 · DXY stress: abs(DXY−100) normalized 0–18 · Combined: (Yield × 45%) + (VIX × 40%) + (DXY × 15%)
5. Media Sentiment
Weight: 15%Standalone media fear score derived from the same 12 RSS news feeds used by the conflict signal, but measured independently. While the conflict signal counts geopolitical fear words specifically, media sentiment measures the overall ratio of fear to calm language across all coverage — including financial crisis language, humanitarian crises, and political instability that may not be captured by the conflict keyword set.
Fear keywords (weighted): war, attack, crisis, collapse, sanctions, nuclear, invasion, recession, shock, catastrophic · Calm keywords: ceasefire, peace, deal, recovery, surplus, agreement, growth
Event memory — variable half-life decay
A key limitation of pure daily-signal scoring is that major events can disappear from a score overnight when they fade from the news cycle — even though their real-world impact persists for weeks or months. The Russia-Ukraine invasion in 2022 did not stop affecting global energy and food prices after it fell off the front page.
To address this, every scored event is classified and stored in an event memory register with a variable half-life decay. The half-life determines how slowly the event's contribution to the score decays over time. A war has a 60-day half-life — its contribution halves every 60 days, meaning it still contributes meaningfully months later. A single drone strike has a 4-day half-life and fades within two weeks.
| Category | Examples | Half-life | Initial boost | Day 30 |
|---|---|---|---|---|
| War / Invasion | Russia invades Ukraine, US-Iran war, nuclear threat | 60 days | +18 pts | +12.7 |
| Major Crisis | Record drone attack, national energy emergency, oil above $120 | 21 days | +13 pts | +5.9 |
| Escalation | Ground offensive, major sanctions, Hormuz threatened, oil above $100 | 10 days | +7 pts | +1.2 |
| Incident | Drone attack, border incident, pipeline disruption | 4 days | +4 pts | 0 |
Decay formula: boost(t) = initial_impact × 0.5^(days_elapsed / half_life) · Events expire when their contribution drops below 0.5 pts. Total event memory boost is capped based on raw score to prevent artificial inflation: if raw score ≥ 80, maximum boost = +8 pts; if raw score 68–79, maximum = +14 pts.
Score zones and historical context
Calm
Low inflationary pressure. Safe-haven demand minimal. Risk assets typically perform well. Historical examples: 2015–2017 relative stability, mid-2019.
Stable
Background geopolitical noise. Normal market conditions. Some trade friction or diplomatic tension but no systemic stress.
Moderate
Elevated but contained stress. Rising safe-haven demand. Supply chain friction visible. Historical examples: 2018 US-China trade war, 2019 Gulf tensions.
High Tension
Multiple stress signals active simultaneously. Gold and oil elevated. Equity volatility rising. Historical examples: 2022 Ukraine invasion early phase, 2023 Middle East conflict.
Extreme Fear
Crisis-level conditions. All five signals simultaneously elevated. Maximum safe-haven demand. Historical examples: early 2022 Ukraine invasion peak, 2008 financial crisis, 2020 COVID shock.
Update schedule
Data sources
| Source | Data | Frequency |
|---|---|---|
| Federal Reserve (FRED) | US 10-year Treasury yield (DGS10) | Daily |
| Yahoo Finance | Gold (GC=F), Oil (BZ=F), Silver (SI=F), VIX (^VIX), DXY, 10Y Yield (^TNX) | Real-time |
| Alpha Vantage | Gold spot price (XAU/USD) — primary source | Real-time |
| CoinGecko | BTC, ETH prices and 24h change, BTC dominance | Every 5 min |
| RSS Feeds (12 sources) | Reuters, BBC, Al Jazeera, Guardian, Google News, Yahoo Finance News, NPR, MarketWatch | Every 15 min |