Skip to main content

Overview

Intelligence hotspots receive dynamic escalation scores that blend four normalized signals (0-100) with 48-hour trend detection. The system correlates news activity, country instability, geographic convergence, and military presence to identify escalating situations.
27 predefined intelligence hotspots span conflict zones, strategic waterways, and critical cities. Scores update every 5-15 minutes as new data arrives.

Hotspot List

  • Tehran, Iran — IRGC HQ, nuclear facilities, strike targets
  • Kyiv, Ukraine — Active war zone, Russian invasion
  • Gaza Strip — Israel-Hamas conflict, humanitarian crisis
  • Damascus, Syria — Civil war, foreign interventions
  • Sanaa, Yemen — Houthi controlled, Red Sea shipping threats
  • Caracas, Venezuela — Political instability, economic collapse
  • Sahel Region — Mali, Niger, Burkina Faso coups and insurgency
  • Horn of Africa — Ethiopia, Somalia, Sudan conflicts
  • Strait of Hormuz — 21% of global oil transit
  • Taiwan Strait — US-China flashpoint
  • Bab el-Mandeb — Red Sea chokepoint, Houthi attacks
  • Suez Canal — Europe-Asia trade artery
  • South China Sea — Territorial disputes, naval buildup
  • Turkish Straits — Bosphorus & Dardanelles, Black Sea access
  • Malacca Strait — 25% of traded goods, piracy risks
  • Moscow, Russia — Kremlin, Wagner mutiny risks
  • Beijing, China — CCP leadership, Taiwan policy
  • Taipei, Taiwan — PLA encirclement threat
  • Tel Aviv, Israel — Military HQ, population center
  • Pyongyang, North Korea — Nuclear program, missile tests
  • Riyadh, Saudi Arabia — Oil markets, Gulf stability
  • Ankara, Turkey — NATO member, Syria border
  • Washington DC, USA — Pentagon, policy epicenter
  • London, UK — NATO, intelligence hub
  • Brussels, Belgium — NATO HQ, EU capital
  • Baghdad, Iraq — Iranian influence, US presence
  • Beirut, Lebanon — Hezbollah, political collapse
See full list in src/config/geo.ts (INTEL_HOTSPOTS)

Scoring Formula

Escalation scores blend static baseline (30%) with dynamic signals (70%):
Output range: 1.0 (minimal) to 5.0 (critical) Source: src/services/hotspot-escalation.ts:92-107

Component Weights

number
default:"0.35"
35% weight — highest priority because news coverage indicates attention and information velocity.
number
default:"0.25"
25% weight — country-level instability scores provide structural context.
number
default:"0.25"
25% weight — multiple event types in same area indicate complex situation.
number
default:"0.15"
15% weight — lowest priority because military presence is often routine (patrols, exercises).

Component Normalization

News Activity (0-100)

Measures news coverage intensity and breaking status:
number
Count of news clusters mentioning hotspot (×15 multiplier).
boolean
+30 if any cluster has isAlert flag.
number
Average sources-per-hour across clusters (×5 multiplier).
Source: src/services/hotspot-escalation.ts:75-77

CII Contribution (0-100)

Uses the maximum CII score among hotspot-linked countries:
Example: Tehran hotspot is linked to Iran (IR), so it uses Iran’s CII score. Source: src/services/hotspot-escalation.ts:60-68, 79-81

Geo Convergence (0-100)

Detects multiple event types co-occurring in 1°×1° cells within 150km radius:
number
Raw convergence score from geographic binning: typeCount * 25 + eventCount * 2
number
Number of distinct event types (protests, military flights, vessels, earthquakes). +10 per type.
Example: If Tehran area has protests + military flights + naval vessels within 150km, alertTypes = 3, contributing +30 to geo score. Source: src/services/hotspot-escalation.ts:83-86, geo-convergence.ts:100-123

Military Activity (0-100)

Counts military assets within 200km radius:
number
Military aircraft within 200km (×10 multiplier).
number
Naval vessels within 200km (×15 multiplier, higher weight for capital ships).
Source: src/services/hotspot-escalation.ts:88-90, 241-263

Trend Detection

Linear regression on 48-hour score history detects escalation patterns:
string
Slope > 0.1 → situation worsening over 48h.
string
Slope between -0.1 and 0.1 → no significant change.
string
Slope < -0.1 → situation improving.
History pruning: Scores older than 24h are removed. Max 48 data points stored. Source: src/services/hotspot-escalation.ts:117-144

Signal Emission

Signals fire when escalation crosses thresholds or changes rapidly:
Integer score increases (2.3 → 3.1) trigger signals:
Minimum score: Must be ≥2 to emit (prevents noise from low-activity hotspots).
+0.5 or more in one update cycle:
Example: Tehran jumps from 3.2 → 3.8 in 5 minutes due to breaking news + military surge.
Score crosses 4.5 threshold:
Critical threshold: 4.5/5.0 indicates imminent crisis.
Cooldown: 2-hour cooldown after signal emission prevents alert fatigue.
Source: src/services/hotspot-escalation.ts:206-227

Example Scores

Integration with Other Systems

CII Scoring

Hotspot proximity boosts country instability scores:
Source: src/services/country-instability.ts:304-348

Focal Point Detection

Hotspot escalation feeds into focal point urgency calculations:

Signal Aggregation

Hotspot data is included in geographic signal context for AI summarization:

Key Files

  • src/services/hotspot-escalation.ts — Main escalation scoring engine
  • src/services/geo-convergence.ts — Geographic event binning
  • src/config/geo.ts — Hotspot definitions and coordinates
  • src/components/HotspotMarker.tsx — Map visualization