docs/hotspots.mdx
WorldMonitor uses real-time news correlation to detect and visualize global hotspots, provides regional focus presets for rapid context switching, and supports map pinning for persistent monitoring workflows.
Hotspots on the map are not static threat levels. Activity is calculated in real-time based on news correlation.
Each hotspot defines keywords:
{
id: 'dc',
name: 'DC',
keywords: ['pentagon', 'white house', 'congress', 'cia', 'nsa', ...],
agencies: ['Pentagon', 'CIA', 'NSA', 'State Dept'],
}
The system counts matching news articles in the current feed, applies velocity analysis, and assigns activity levels:
| Level | Criteria | Visual |
|---|---|---|
| Low | <3 matches, normal velocity | Gray marker |
| Elevated | 3-6 matches OR elevated velocity | Yellow pulse |
| High | >6 matches OR spike velocity | Red pulse |
This creates a dynamic "heat map" of global attention based on live news flow.
Beyond visual activity levels, the system generates escalation signals when hotspots show significant changes across multiple dimensions. This multi-component approach reduces false positives by requiring corroboration from independent data streams.
Escalation Components
Each hotspot's escalation score blends four weighted components:
| Component | Weight | Data Source | What It Measures |
|---|---|---|---|
| News Activity | 35% | RSS feeds | Matching news count, breaking flags, velocity |
| CII Contribution | 25% | Country Instability Index | Instability score of associated country |
| Geographic Convergence | 25% | Multi-source events | Event type diversity in geographic cell |
| Military Activity | 15% | OpenSky/AIS | Flights and vessels within 200km |
Score Calculation
static_baseline = hotspot.escalationScore ?? 3 // 1-5 per hotspot
dynamic_raw = (
news_component × 0.35 +
cii_component × 0.25 +
geo_component × 0.25 +
military_component × 0.15
)
dynamic_score = 1 + (dynamic_raw / 100) × 4 // maps 0-100 inputs onto 1-5
final_score = static_baseline × 0.30 + dynamic_score × 0.70
The static baseline is the editorial escalationScore on each hotspot config
(default 3 when absent). It is deliberately kept on the same 1-5 scale as the
dynamic output; the popup exposes it as staticBaseline alongside the component
bars so users can separate structural risk from live movement. Many hotspots
also carry a whyItMatters narrative rationale for the popup, but that text is
not score-affecting. The code does not apply a geographic proximity multiplier
to the final score.
Static Baseline Table
These values come from INTEL_HOTSPOTS in src/config/geo.ts. Rows without an
explicit escalationScore inherit the default 3/5 baseline.
| Hotspot | Baseline | Rationale |
|---|---|---|
| Sahel | 4 | Coups, jihadist insurgency, and Wagner/Africa Corps expansion. |
| Port-au-Prince | 4 | Gang control, government collapse, displacement, and international security mission. |
| Horn of Africa | 4 | Red Sea spillover, piracy, Al-Shabaab activity, and Ethiopia-Somaliland tension. |
| Pakistan–Afghanistan Border | 4 | Recurring border clashes, TTP attacks, and cross-border military pressure. |
| DC | 3 | US government, military, and intelligence activity hub. |
| Silicon Valley | 3 | AI and major technology-sector activity hub. |
| Wall Street | 3 | Financial-market and Federal Reserve policy activity hub. |
| Houston | 3 | Energy-sector and space-industry activity hub. |
| Moscow | 4 | Nuclear power at war, Ukraine operations, mobilization potential, and nuclear rhetoric. |
| Beijing | 3 | CCP and PLA command center with Taiwan and South China Sea monitoring. |
| Kyiv | 5 | Active war zone with Western support, drone warfare, and nuclear-plant risk. |
| Taipei | 3 | Taiwan Strait and semiconductor supply-chain monitoring. |
| Tehran | 4 | Nuclear threshold, proxy activity, succession uncertainty, and Strait of Hormuz risk. |
| Tel Aviv | 5 | Active Gaza operations, northern-front tension, and Iran confrontation risk. |
| Pyongyang | 3 | Nuclear, missile, cyber, and Russia arms-cooperation monitoring. |
| London | 3 | UK intelligence and Five Eyes activity hub. |
| Brussels | 3 | NATO and EU alliance center. |
| Caracas | 3 | Venezuela political crisis, sanctions, and regional instability. |
| Mexico City | 4 | Cartel fragmentation, fentanyl trafficking, and military deployments. |
| Nuuk | 3 | Arctic strategic territory, US presence, and sovereignty questions. |
| Riyadh | 3 | Saudi power center, OPEC+ decisions, and regional influence. |
| Cairo | 3 | Gaza border control and Suez Canal security. |
| Baghdad | 3 | Iran-backed militias and US military presence. |
| Damascus | 3 | Syrian civil-war aftermath and foreign interventions. |
| Doha | 3 | Diplomatic hub and CENTCOM forward base. |
| Ankara | 3 | NATO member with Kurdish, Syria, and Libya operations. |
| Beirut | 3 | Hezbollah, Lebanon crisis, and Israel border tension. |
| Sana'a | 4 | Houthi Red Sea attacks, ship seizures, and US/UK strike risk. |
| Abu Dhabi | 3 | UAE strategic and regional military hub. |
Trend Detection
The system maintains 48-point history (24 hours at 30-minute intervals) per hotspot:
escalating: Slope > +0.1 points per intervalde-escalating: Slope < -0.1 points per intervalstable: Slope within ±0.1, fewer than 3 valid history points, or a zero regression denominatorSignal Generation
Escalation signals (hotspot_escalation) are emitted when:
2/50.5 points>=4.5/5)Signal Context
| Field | Content |
|---|---|
| Why It Matters | "Geopolitical hotspot showing significant escalation based on news activity, country instability, geographic convergence, and military presence" |
| Actionable Insight | "Increase monitoring priority; assess downstream impacts on infrastructure, markets, and regional stability" |
| Confidence Note | "Weighted by multiple data sources—news (35%), CII (25%), geo-convergence (25%), military (15%)" |
This multi-signal approach means a hotspot escalation signal represents corroborated evidence across independent data streams, not just a spike in news mentions.
The FOCUS selector in the header provides instant navigation to strategic regions. Each preset is calibrated to center on the region's geographic area with an appropriate zoom level.
| Region | Coverage | Primary Use Cases |
|---|---|---|
| Global | Full world view | Overview, cross-regional comparison |
| Americas | North America focus | US monitoring, NORAD activity |
| Europe | EU + UK + Scandinavia + Western Russia | NATO activity, energy infrastructure |
| MENA | Middle East + North Africa | Conflict zones, oil infrastructure |
| Asia | East Asia + Southeast Asia | China-Taiwan, Korean peninsula |
| Latin America | Central + South America | Regional instability, drug trafficking |
| Africa | Sub-Saharan Africa | Conflict zones, resource extraction |
| Oceania | Australia + Pacific | Indo-Pacific activity |
The FOCUS dropdown enables rapid context switching:
Regional views are encoded in shareable URLs, enabling direct links to specific geographic contexts.
By default, the map scrolls with the page, allowing you to scroll down to view panels below. The pin button in the map header toggles sticky behavior:
| State | Behavior |
|---|---|
| Unpinned (default) | Map scrolls with page; scroll down to see panels |
| Pinned | Map stays fixed at top; panels scroll beneath |
Pin state persists across sessions via localStorage.