Opening a Country Brief
Click a country on the map
The map uses local geometry detection (polygon ray-casting) for instant country resolution — no network latency.
Or use Cmd+K command palette
Press Cmd+K (Mac) or Ctrl+K (Windows/Linux), then type a country name. All ~250 ISO countries are searchable with flag emoji icons.Search aliases: Typing “kremlin” or “putin” finds Russia, “pentagon” finds USA, etc.
Country Instability Index (CII)
Every country receives a real-time instability score (0–100) computed from four components:Unrest
20% weightProtests scored logarithmically for democracies (routine protests don’t trigger), linearly for authoritarian states (every protest is significant).Boosted for:
- Fatalities
- Internet outages during protests
Conflict
20% weightActive conflict zones with escalation tracking (UCDP + ACLED data).Countries with active wars (1,000+ battle deaths/year) receive automatic floor scores.
Security
20% weight
- Own military flights: 3pts each
- Own naval vessels: 5pts each
- Foreign military presence: doubled weight
- GPS/GNSS jamming: up to +35pts
- OREF rocket alerts (Israel): up to +50pts
Information
20% weightNews mention frequency weighted by event severity, log-scaled for high-volume countries.
Baseline Risk
The remaining 40% weight comes from pre-configured baseline risk profiles:- 23 curated tier-1 nations (US, Russia, China, Ukraine, Iran, Israel, Taiwan, North Korea, etc.) have individually tuned baselines
- All other countries receive a universal default baseline of 15 when any event data is detected
Additional Boosts
- Travel advisories — Do-Not-Travel warnings force CII ≥ 60
- Hotspot proximity — Being near a conflict zone increases the score
- Focal point urgency — When a country appears in convergence alerts
- Conflict-zone floors — Ukraine ≥ 55, Syria ≥ 50, Yemen ≥ 48
Brief Layout
Left Column
Instability Index Ring
An animated SVG score ring (0–100) with:
- Color-coded severity: Green (0–30) → Yellow (31–60) → Red (61–100)
- Four component bars: Unrest, Conflict, Security, Information
- Trend indicator: ↑ rising, ↓ falling, → stable
AI-Generated Intelligence Brief
A narrative analysis synthesized by your configured LLM (Ollama → Groq → OpenRouter fallback).Inline citations: Click
[1]–[8] anchors to scroll to the corresponding news source below.Top News (8 headlines)
The most relevant headlines for this country, filtered using:
- Alias matching — Each country has a curated alias map (e.g.,
US → ["united states", "american", "washington", "pentagon", "biden", "trump"]) - Negative-match algorithm — If another country’s alias appears earlier in the headline, the headline is excluded (prevents “Washington sanctions Venezuela” from appearing in the US brief)
- Threat-level color coding — Critical (red), High (orange), Medium (yellow), Low (blue)
Right Column
Active Signals (Real-time Chips)
Live indicators with counts:
- 🚨 Protests
- ✈️ Military aircraft
- ⚓ Naval vessels
- 🌐 Internet outages
- 🌍 Earthquakes
- 🚶 Displacement flows
- 🌡️ Climate stress
- ⚔️ Conflict events
- 📈 Stock market index (1-week change)
7-Day Event Timeline
A D3.js-rendered chart with 4 severity-coded lanes:
- Protest (blue)
- Conflict (red)
- Natural (green)
- Military (gray)
Prediction Markets
Top 3 Polymarket contracts by volume, with:
- Probability bars
- External links to Polymarket
Exporting Country Data
Every country brief is exportable in multiple formats:- JSON
- CSV
- PNG
- PDF (Print)
Structured data with all scores, signals, and headlines.Use case: API integration, automated analysis, data pipelines
Universal Country Coverage
Every country with incoming event data receives a live CII score automatically — not just the 23 curated tier-1 nations.
- Curated countries (US, Russia, China, etc.) — Individually tuned baselines, custom keyword lists, full alias maps
- Non-curated countries — Sensible default baseline (
DEFAULT_BASELINE_RISK = 15), display names resolved viaIntl.DisplayNames
Headline Relevance Filtering
To prevent cross-contamination between country briefs:- Each country has an alias map (e.g.,
Iran → ["iran", "iranian", "tehran", "khamenei", "irgc"]) - Headlines are scanned for country mentions using word-boundary regex (prevents “Iran” from matching “Ukraine”)
- Negative-match algorithm: If another country’s alias appears earlier in the headline title than the target country’s alias, the headline is excluded
- Headline:
"US imposes sanctions on Iranian oil exports" - Target country: Iran
- ✅ Included — “Iranian” matches Iran’s alias, “US” appears first but doesn’t override
- Target country: USA
- ❌ Excluded — “Iranian” appears earlier and is stronger match
Refreshing Data
Country briefs pull live data on each load:- CII scores update every 5 minutes based on incoming signals
- News headlines refresh as RSS feeds are polled (every 5–10 minutes)
- Timeline events include the last 7 days of activity
- Prediction markets update every 15 minutes
Related Features
- World Brief — Global intelligence summary across all countries
- Signal Intelligence — Understanding threat signals and convergence
- Sharing Stories — Exporting country briefs to social media