mirror of
https://github.com/koala73/worldmonitor.git
synced 2026-04-25 17:14:57 +02:00
* fix(docs): correct variant count from 4 to 5 Updated overview.mdx and architecture.mdx to reflect all 5 platform variants (World Monitor, Tech Monitor, Happy Monitor, Finance Monitor, Commodity Monitor). Previously only 2 were listed in the table and the text said "four". * fix(docs): correct all numerical inaccuracies across documentation Updated counts verified against actual codebase: - AI datacenters: 111 → 313 - Undersea cables: 55 → 86 - Map layers: 45 → 49 - News sources: 80+ → 344 - Service domains: 22 → 24 - CII countries: 20 → 24 - Military bases: 210/220+ → 226 - Strategic ports: 61/83 → 62 - Airports: 30/107 → 111 - Chokepoints: 6/8 → 9 - Signal entities: 100+/600+ → 66 - Variant count: four → five (added Commodity Monitor) * docs(overview): add Happy, Finance, and Commodity Monitor sections Added detailed documentation sections for the three previously undocumented platform variants, including layers, panels, and news categories for each. * docs(features): document 13 previously undocumented features Added: trade routes, FIRMS fire detection, webcam surveillance, country brief, aviation intelligence panel, climate anomalies, displacement tracking, Gulf economies, WTO trade policy, central banks & BIS, market watchlist, NOTAM closure detection, and offline ML capabilities. * docs: standardize terminology, add cross-references, fix stale refs Phase 4: Renamed "News Importance Scoring" to "Headline Scoring", "Signal Correlation" to "Cross-Stream Correlation". Added cross-refs between CII/convergence, CORS/API-key, maritime/finance chokepoints. Deduplicated Population Exposure content. Clarified hotspot vs focal point distinction. Phase 5: Rewrote daily_stock_analysis as historical context. Added legacy note for api/*.js files. Added OREF 24h rolling history boost and GPS jamming classification thresholds to algorithms.mdx. Fixed orbital-surveillance tier table contradictions. Phase 6: Fixed orphaned markdown separator in orbital-surveillance. * fix(docs): catch remaining stale numbers in secondary doc files Fixed stale counts in data-sources.mdx, strategic-risk.mdx, documentation.mdx, ai-intelligence.mdx, PRESS_KIT.md, and roadmap-pro.md that were missed in the initial pass. * fix(docs): address review findings from fresh-eyes pass - desktop-app.mdx: "four variants" → "five", "22 services" → "24" - infrastructure-cascade.mdx: chokepoints 8 → 9, node total 279 → 350 - data-sources.mdx: chokepoints 8 → 9 - overview.mdx: remove duplicated intro sentence - getting-started.mdx: fix stale file tree comments (AI clusters, airports, entities)
445 lines
20 KiB
Plaintext
445 lines
20 KiB
Plaintext
---
|
||
title: "Signal Intelligence"
|
||
description: "Signal detection, entity correlation, source ranking, and intelligence aggregation powering World Monitor's analytical engine."
|
||
---
|
||
|
||
## Signal Intelligence
|
||
|
||
The dashboard continuously analyzes data streams to detect significant patterns and anomalies. Signals appear in the header badge (⚡) with confidence scores.
|
||
|
||
### Intelligence Findings Badge
|
||
|
||
The header displays an **Intelligence Findings** badge that consolidates two types of alerts:
|
||
|
||
| Alert Type | Source | Examples |
|
||
|------------|--------|----------|
|
||
| **Correlation Signals** | Cross-source pattern detection | Velocity spikes, market divergence, prediction leading |
|
||
| **Unified Alerts** | Module-generated alerts | CII spikes, geographic convergence, infrastructure cascades |
|
||
|
||
**Interaction**: Clicking the badge—or clicking an individual alert—opens a detail modal showing:
|
||
|
||
- Full alert description and context
|
||
- Component breakdown (for composite alerts)
|
||
- Affected countries or regions
|
||
- Confidence score and priority level
|
||
- Timestamp and trending direction
|
||
|
||
This provides a unified command center for all intelligence findings, whether generated by correlation analysis or module-specific threshold detection.
|
||
|
||
### Signal Types
|
||
|
||
The system detects 12 distinct signal types across news, markets, military, and infrastructure domains:
|
||
|
||
**News & Source Signals**
|
||
|
||
| Signal | Trigger | What It Means |
|
||
|--------|---------|---------------|
|
||
| **◉ Convergence** | 3+ source types report same story within 30 minutes | Multiple independent channels confirming the same event—higher likelihood of significance |
|
||
| **△ Triangulation** | Wire + Government + Intel sources align | The "authority triangle"—when official channels, wire services, and defense specialists all report the same thing |
|
||
| **🔥 Velocity Spike** | Topic mention rate doubles with 6+ sources/hour | A story is accelerating rapidly across the news ecosystem |
|
||
|
||
**Market Signals**
|
||
|
||
| Signal | Trigger | What It Means |
|
||
|--------|---------|---------------|
|
||
| **🔮 Prediction Leading** | Prediction market moves 5%+ with low news coverage | Markets pricing in information not yet reflected in news |
|
||
| **📰 News Leads Markets** | High news velocity without corresponding market move | Breaking news not yet priced in—potential mispricing |
|
||
| **✓ Market Move Explained** | Market moves 2%+ with correlated news coverage | Price action has identifiable news catalyst—entity correlation found related stories |
|
||
| **📊 Silent Divergence** | Market moves 2%+ with no correlated news after entity search | Unexplained price action after exhaustive search—possible insider knowledge or algorithm-driven |
|
||
| **📈 Sector Cascade** | Multiple related sectors moving in same direction | Market reaction cascading through correlated industries |
|
||
|
||
**Infrastructure & Energy Signals**
|
||
|
||
| Signal | Trigger | What It Means |
|
||
|--------|---------|---------------|
|
||
| **🛢 Flow Drop** | Pipeline flow disruption keywords detected | Physical commodity supply constraint—may precede price spike |
|
||
| **🔁 Flow-Price Divergence** | Pipeline disruption news without corresponding oil price move | Energy supply disruption not yet priced in—potential information edge |
|
||
|
||
**Geopolitical & Military Signals**
|
||
|
||
| Signal | Trigger | What It Means |
|
||
|--------|---------|---------------|
|
||
| **🌍 Geographic Convergence** | 3+ event types in same 1°×1° grid cell | Multiple independent data streams converging on same location—heightened regional activity |
|
||
| **🔺 Hotspot Escalation** | Multi-component score exceeds threshold with rising trend | Hotspot showing corroborated escalation across news, CII, convergence, and military data |
|
||
| **✈ Military Surge** | Transport/fighter activity 2× baseline in theater | Unusual military airlift concentration—potential deployment or crisis response |
|
||
|
||
### How It Works
|
||
|
||
The correlation engine maintains rolling snapshots of:
|
||
|
||
- News topic frequency (by keyword extraction)
|
||
- Market price changes
|
||
- Prediction market probabilities
|
||
|
||
Each refresh cycle compares current state to previous snapshot, applying thresholds and deduplication to avoid alert fatigue. Signals include confidence scores (60-95%) based on the strength of the pattern.
|
||
|
||
### Entity-Aware Correlation
|
||
|
||
The signal engine uses a **knowledge base of 66 entities** to intelligently correlate market movements with news coverage. Rather than simple keyword matching, the system understands that "AVGO" (the ticker) relates to "Broadcom" (the company), "AI chips" (the sector), and entities like "Nvidia" (a competitor).
|
||
|
||
#### Entity Knowledge Base
|
||
|
||
Each entity in the registry contains:
|
||
|
||
| Field | Purpose | Example |
|
||
|-------|---------|---------|
|
||
| **ID** | Canonical identifier | `broadcom` |
|
||
| **Name** | Display name | `Broadcom Inc.` |
|
||
| **Type** | Category | `company`, `commodity`, `crypto`, `country`, `person` |
|
||
| **Aliases** | Alternative names | `AVGO`, `Broadcom`, `Broadcom Inc` |
|
||
| **Keywords** | Related topics | `AI chips`, `semiconductors`, `VMware` |
|
||
| **Sector** | Industry classification | `semiconductors` |
|
||
| **Related** | Linked entities | `nvidia`, `intel`, `amd` |
|
||
|
||
#### Entity Types
|
||
|
||
| Type | Count | Examples |
|
||
|------|-------|----------|
|
||
| **Companies** | 38 | Nvidia, Apple, Tesla, Broadcom, Boeing, Lockheed Martin, TSMC, Rheinmetall |
|
||
| **Indices** | 3 | S&P 500, Dow Jones, NASDAQ |
|
||
| **Sectors** | 5 | Technology (XLK), Finance (XLF), Energy (XLE), Healthcare (XLV), Semiconductors (SMH) |
|
||
| **Commodities** | 6 | Oil (WTI), Gold, Natural Gas, Copper, Silver, VIX |
|
||
| **Crypto** | 3 | Bitcoin, Ethereum, Solana |
|
||
| **Countries** | 11 | China, Russia, Iran, Israel, Ukraine, Taiwan, Saudi Arabia, UAE, Qatar, Turkey, Egypt |
|
||
|
||
#### How Entity Matching Works
|
||
|
||
When a market moves significantly (≥2%), the system:
|
||
|
||
1. **Looks up the ticker** in the entity registry (e.g., `AVGO` → `broadcom`)
|
||
2. **Gathers all identifiers**: aliases, keywords, sector peers, related entities
|
||
3. **Scans all news clusters** for matches against any identifier
|
||
4. **Scores confidence** based on match type:
|
||
- Alias match (exact name): 95%
|
||
- Keyword match (topic): 70%
|
||
- Related entity match: 60%
|
||
|
||
If correlated news is found → **"Market Move Explained"** signal with the news headline.
|
||
If no correlation after exhaustive search → **"Silent Divergence"** signal.
|
||
|
||
#### Example: Broadcom +2.5%
|
||
|
||
```
|
||
1. Ticker AVGO detected with +2.5% move
|
||
2. Entity lookup: broadcom
|
||
3. Search terms: ["Broadcom", "AVGO", "AI chips", "semiconductors", "VMware", "nvidia", "intel", "amd"]
|
||
4. News scan finds: "Broadcom AI Revenue Beats Estimates"
|
||
5. Result: "✓ Market Move Explained: Broadcom AI Revenue Beats Estimates"
|
||
```
|
||
|
||
Without this system, the same move would generate a generic "Silent Divergence: AVGO +2.5%" signal.
|
||
|
||
#### Sector Coverage
|
||
|
||
The entity registry spans strategically significant sectors:
|
||
|
||
| Sector | Examples | Keywords Tracked |
|
||
|--------|----------|------------------|
|
||
| **Technology** | Apple, Microsoft, Nvidia, Google, Meta, TSMC | AI, cloud, chips, datacenter, streaming |
|
||
| **Defense & Aerospace** | Lockheed Martin, Raytheon, Northrop Grumman, Boeing, Rheinmetall, Airbus | F-35, missiles, drones, tanks, defense contracts |
|
||
| **Semiconductors** | ASML, Samsung, AMD, Intel, Broadcom | Lithography, EUV, foundry, fab, wafer |
|
||
| **Critical Minerals** | Albemarle, SQM, MP Materials, Freeport-McMoRan | Lithium, rare earth, cobalt, copper |
|
||
| **Finance** | JPMorgan, Berkshire Hathaway, Visa, Mastercard | Banking, credit, investment, interest rates |
|
||
| **Healthcare** | Eli Lilly, Novo Nordisk, UnitedHealth, J&J | Pharma, drugs, GLP-1, obesity, diabetes |
|
||
| **Energy** | Exxon, Chevron, ConocoPhillips | Oil, gas, drilling, refinery, LNG |
|
||
| **Consumer** | Tesla, Walmart, Costco, Home Depot | EV, retail, grocery, housing |
|
||
|
||
This broad coverage enables correlation detection across diverse geopolitical and market events.
|
||
|
||
### Entity Registry Architecture
|
||
|
||
The entity registry is a knowledge base of 66 entities with rich metadata for intelligent correlation:
|
||
|
||
```typescript
|
||
{
|
||
id: 'NVDA', // Unique identifier
|
||
name: 'Nvidia', // Display name
|
||
type: 'company', // company | country | index | commodity | currency
|
||
sector: 'semiconductors',
|
||
searchTerms: ['Nvidia', 'NVDA', 'Jensen Huang', 'H100', 'CUDA'],
|
||
aliases: ['nvidia', 'nvda'],
|
||
competitors: ['AMD', 'INTC'],
|
||
related: ['AVGO', 'TSM', 'ASML'], // Related entities
|
||
country: 'US', // Headquarters/origin
|
||
}
|
||
```
|
||
|
||
**Entity Types**:
|
||
|
||
| Type | Count | Use Case |
|
||
|------|-------|----------|
|
||
| `company` | 38 | Market-news correlation, sector analysis |
|
||
| `country` | 11 | Focal point detection, CII scoring |
|
||
| `index` | 3 | Market overview, regional tracking |
|
||
| `commodity` | 6 | Energy and mineral correlation |
|
||
| `sector` | 5 | Sector cascade analysis |
|
||
| `crypto` | 3 | Cryptocurrency correlation |
|
||
|
||
**Lookup Indexes**:
|
||
|
||
The registry provides multiple lookup paths for fast entity resolution:
|
||
|
||
| Index | Query Example | Use Case |
|
||
|-------|---------------|----------|
|
||
| `byId` | `'NVDA'` → Nvidia entity | Direct lookup from ticker |
|
||
| `byAlias` | `'nvidia'` → Nvidia entity | Case-insensitive name match |
|
||
| `byKeyword` | `'AI chips'` → [Nvidia, AMD, Intel] | News keyword extraction |
|
||
| `bySector` | `'semiconductors'` → all chip companies | Sector cascade analysis |
|
||
| `byCountry` | `'US'` → all US entities | Country-level aggregation |
|
||
|
||
### Signal Deduplication
|
||
|
||
To prevent alert fatigue, signals use **type-specific TTL (time-to-live)** values for deduplication:
|
||
|
||
| Signal Type | TTL | Rationale |
|
||
|-------------|-----|-----------|
|
||
| **Silent Divergence** | 6 hours | Market moves persist; don't re-alert on same stock |
|
||
| **Flow-Price Divergence** | 6 hours | Energy events unfold slowly |
|
||
| **Explained Market Move** | 6 hours | Same correlation shouldn't repeat |
|
||
| **Prediction Leading** | 2 hours | Prediction markets update more frequently |
|
||
| **Other signals** | 30 minutes | Default for fast-moving events |
|
||
|
||
Market signals use **symbol-only keys** (e.g., `silent_divergence:AVGO`) rather than including the price change. This means a stock moving +2.5% then +3.0% won't trigger duplicate alerts—the first alert covers the story.
|
||
|
||
---
|
||
|
||
## Source Intelligence
|
||
|
||
Not all sources are equal. The system implements a dual classification to prioritize authoritative information.
|
||
|
||
### Source Tiers (Authority Ranking)
|
||
|
||
| Tier | Sources | Characteristics |
|
||
|------|---------|-----------------|
|
||
| **Tier 1** | Reuters, AP, AFP, Bloomberg, White House, Pentagon | Wire services and official government—fastest, most reliable |
|
||
| **Tier 2** | BBC, Guardian, NPR, Al Jazeera, CNBC, Financial Times | Major outlets—high editorial standards, some latency |
|
||
| **Tier 3** | Defense One, Bellingcat, Foreign Policy, MIT Tech Review | Domain specialists—deep expertise, narrower scope |
|
||
| **Tier 4** | Hacker News, The Verge, VentureBeat, aggregators | Useful signal but requires corroboration |
|
||
|
||
When multiple sources report the same story, the **lowest tier** (most authoritative) source is displayed as the primary, with others listed as corroborating.
|
||
|
||
### Source Types (Categorical)
|
||
|
||
Sources are also categorized by function for triangulation detection:
|
||
|
||
- **Wire** - News agencies (Reuters, AP, AFP, Bloomberg)
|
||
- **Gov** - Official government (White House, Pentagon, State Dept, Fed, SEC)
|
||
- **Intel** - Defense/security specialists (Defense One, Bellingcat, Krebs)
|
||
- **Mainstream** - Major news outlets (BBC, Guardian, NPR, Al Jazeera)
|
||
- **Market** - Financial press (CNBC, MarketWatch, Financial Times)
|
||
- **Tech** - Technology coverage (Hacker News, Ars Technica, MIT Tech Review)
|
||
|
||
### Propaganda Risk Indicators
|
||
|
||
The dashboard visually flags sources with known state affiliations or propaganda risk, enabling users to appropriately weight information from these outlets.
|
||
|
||
**Risk Levels**
|
||
|
||
| Level | Visual | Meaning |
|
||
|-------|--------|---------|
|
||
| **High** | ⚠ State Media (red) | Direct state control or ownership |
|
||
| **Medium** | ! Caution (orange) | Significant state influence or funding |
|
||
| **Low** | (none) | Independent editorial control |
|
||
|
||
**Flagged Sources**
|
||
|
||
| Source | Risk Level | State Affiliation | Notes |
|
||
|--------|------------|-------------------|-------|
|
||
| **Xinhua** | High | China (CCP) | Official news agency of PRC |
|
||
| **TASS** | High | Russia | State-owned news agency |
|
||
| **RT** | High | Russia | Registered foreign agent in US |
|
||
| **CGTN** | High | China (CCP) | China Global Television Network |
|
||
| **PressTV** | High | Iran | IRIB subsidiary |
|
||
| **Al Jazeera** | Medium | Qatar | Qatari government funded |
|
||
| **TRT World** | Medium | Turkey | Turkish state broadcaster |
|
||
|
||
**Display Locations**
|
||
|
||
Propaganda risk badges appear in:
|
||
|
||
- **Cluster primary source**: Badge next to the main source name
|
||
- **Top sources list**: Small badge next to each flagged source
|
||
- **Cluster view**: Visible when expanding multi-source clusters
|
||
|
||
**Why Include State Media?**
|
||
|
||
State-controlled outlets are included rather than filtered because:
|
||
|
||
1. **Signal Value**: What state media reports (and omits) reveals government priorities
|
||
2. **Rapid Response**: State media often breaks domestic news faster than international outlets
|
||
3. **Narrative Analysis**: Understanding how events are framed by different governments
|
||
4. **Completeness**: Excluding them creates blind spots in coverage
|
||
|
||
The badges ensure users can **contextualize** state media reports rather than unknowingly treating them as independent journalism.
|
||
|
||
---
|
||
|
||
## Entity Extraction System
|
||
|
||
The dashboard extracts **named entities** (companies, countries, leaders, organizations) from news headlines to enable news-to-market correlation and entity-based filtering.
|
||
|
||
### How It Works
|
||
|
||
Headlines are scanned against a curated entity index containing:
|
||
|
||
| Entity Type | Examples | Purpose |
|
||
|-------------|----------|---------|
|
||
| **Companies** | Apple, Tesla, NVIDIA, Boeing | Market symbol correlation |
|
||
| **Countries** | Russia, China, Iran, Ukraine | Geopolitical attribution |
|
||
| **Leaders** | Putin, Xi Jinping, Khamenei | Political event tracking |
|
||
| **Organizations** | NATO, OPEC, Fed, SEC | Institutional news filtering |
|
||
| **Commodities** | Oil, Gold, Bitcoin | Commodity news correlation |
|
||
|
||
### Entity Matching
|
||
|
||
Each entity has multiple match patterns for comprehensive detection:
|
||
|
||
```
|
||
Entity: NVIDIA (NVDA)
|
||
Aliases: nvidia, nvda, jensen huang
|
||
Keywords: gpu, h100, a100, cuda, ai chip
|
||
Match Types:
|
||
- Name match: "NVIDIA announces..." → 95% confidence
|
||
- Alias match: "Jensen Huang says..." → 90% confidence
|
||
- Keyword match: "H100 shortage..." → 70% confidence
|
||
```
|
||
|
||
### Confidence Scoring
|
||
|
||
Entity extraction produces confidence scores based on match quality:
|
||
|
||
| Match Type | Confidence | Example |
|
||
|------------|------------|---------|
|
||
| **Direct name** | 95% | "Apple reports earnings" |
|
||
| **Alias** | 90% | "Tim Cook announces..." |
|
||
| **Keyword** | 70% | "iPhone sales decline" |
|
||
| **Related cluster** | 63% | Secondary headline mention (90% × 0.7) |
|
||
|
||
### Market Correlation
|
||
|
||
When a market symbol moves significantly, the system searches news clusters for related entities:
|
||
|
||
1. **Symbol lookup** - Find entity by market symbol (e.g., `AAPL` → Apple)
|
||
2. **News search** - Find clusters mentioning the entity or related entities
|
||
3. **Confidence ranking** - Sort by extraction confidence
|
||
4. **Result** - "Market Move Explained" or "Silent Divergence" signal
|
||
|
||
This enables signals like:
|
||
|
||
- **Explained**: "AVGO +5.2% — Broadcom mentioned in 3 news clusters (AI chip demand)"
|
||
- **Silent**: "AVGO +5.2% — No correlated news after entity search"
|
||
|
||
---
|
||
|
||
## Signal Context ("Why It Matters")
|
||
|
||
Every signal includes contextual information explaining its analytical significance:
|
||
|
||
### Context Fields
|
||
|
||
| Field | Purpose | Example |
|
||
|-------|---------|---------|
|
||
| **Why It Matters** | Analytical significance | "Markets pricing in information before news" |
|
||
| **Actionable Insight** | What to do next | "Monitor for breaking news in 1-6 hours" |
|
||
| **Confidence Note** | Signal reliability caveats | "Higher confidence if multiple markets align" |
|
||
|
||
### Signal-Specific Context
|
||
|
||
| Signal | Why It Matters |
|
||
|--------|---------------|
|
||
| **Prediction Leading** | Prediction markets often price in information before it becomes news—traders may have early access to developments |
|
||
| **Silent Divergence** | Market moving without identifiable catalyst—possible insider knowledge, algorithmic trading, or unreported development |
|
||
| **Velocity Spike** | Story accelerating across multiple sources—indicates growing significance and potential for market/policy impact |
|
||
| **Triangulation** | The "authority triangle" (wire + government + intel) aligned—gold standard for breaking news confirmation |
|
||
| **Flow-Price Divergence** | Supply disruption not yet reflected in prices—potential information edge or markets have better information |
|
||
| **Hotspot Escalation** | Geopolitical hotspot showing escalation across news, instability, convergence, and military presence |
|
||
|
||
This contextual layer transforms raw alerts into **actionable intelligence** by explaining the analytical reasoning behind each signal.
|
||
|
||
---
|
||
|
||
## Energy Flow Detection
|
||
|
||
The correlation engine detects signals related to energy infrastructure and commodity markets.
|
||
|
||
### Pipeline Keywords
|
||
|
||
The system monitors news for pipeline-related events:
|
||
|
||
**Infrastructure terms**: pipeline, pipeline explosion, pipeline leak, pipeline attack, pipeline sabotage, pipeline disruption, nord stream, keystone, druzhba
|
||
|
||
**Flow indicators**: gas flow, oil flow, supply disruption, transit halt, capacity reduction
|
||
|
||
### Flow Drop Signals
|
||
|
||
When news mentions flow disruptions, two signal types may trigger:
|
||
|
||
| Signal | Criteria | Meaning |
|
||
|--------|----------|---------|
|
||
| **Flow Drop** | Pipeline keywords + disruption terms | Potential supply interruption |
|
||
| **Flow-Price Divergence** | Flow drop news + oil price stable (< $1.50 move) | Markets not yet pricing in disruption |
|
||
|
||
### Why This Matters
|
||
|
||
Energy supply disruptions create cascading effects:
|
||
|
||
1. **Immediate**: Spot price volatility
|
||
2. **Short-term**: Industrial production impacts
|
||
3. **Long-term**: Geopolitical leverage shifts
|
||
|
||
Early detection of flow drops—especially when markets haven't reacted—provides an information edge.
|
||
|
||
---
|
||
|
||
## Signal Aggregator
|
||
|
||
The Signal Aggregator is the central nervous system that collects, groups, and summarizes intelligence signals from all data sources.
|
||
|
||
### What It Aggregates
|
||
|
||
| Signal Type | Source | Frequency |
|
||
|-------------|--------|-----------|
|
||
| `military_flight` | OpenSky ADS-B | Real-time |
|
||
| `military_vessel` | AIS WebSocket | Real-time |
|
||
| `protest` | ACLED + GDELT | Hourly |
|
||
| `internet_outage` | Cloudflare Radar | 5 min |
|
||
| `ais_disruption` | AIS analysis | Real-time |
|
||
|
||
### Country-Level Grouping
|
||
|
||
All signals are grouped by country code, creating a unified view:
|
||
|
||
```typescript
|
||
{
|
||
country: 'UA', // Ukraine
|
||
countryName: 'Ukraine',
|
||
totalCount: 15,
|
||
highSeverityCount: 3,
|
||
signalTypes: Set(['military_flight', 'protest', 'internet_outage']),
|
||
signals: [/* all signals for this country */]
|
||
}
|
||
```
|
||
|
||
### Regional Convergence Detection
|
||
|
||
The aggregator identifies geographic convergence—when multiple signal types cluster in the same region:
|
||
|
||
| Convergence Level | Criteria | Alert Priority |
|
||
|-------------------|----------|----------------|
|
||
| **Critical** | 4+ signal types within 200km | Immediate |
|
||
| **High** | 3 signal types within 200km | High |
|
||
| **Medium** | 2 signal types within 200km | Normal |
|
||
|
||
### Summary Output
|
||
|
||
The aggregator provides a real-time summary for dashboards and AI context:
|
||
|
||
```
|
||
[SIGNAL SUMMARY]
|
||
Top Countries: Ukraine (15 signals), Iran (12), Taiwan (8)
|
||
Convergence Zones: Baltic Sea (military_flight + military_vessel),
|
||
Tehran (protest + internet_outage)
|
||
Active Signal Types: 5 of 5
|
||
Total Signals: 47
|
||
```
|