Overview
The Signal Aggregator collects all map signals and correlates them by country/region to create a unified intelligence picture. It feeds geographic context to AI summaries and identifies convergence zones where multiple signal types spike simultaneously.Signals are retained for 24 hours, automatically pruned after expiration. All ingestion methods are idempotent and can be called multiple times per data refresh cycle.
Signal Types
internet_outage
Cloudflare Radar outages (total, major, partial)
military_flight
ADS-B tracked military aircraft
military_vessel
AIS + USNI tracked naval vessels
protest
ACLED social unrest events
ais_disruption
Shipping anomalies (high, elevated, low)
satellite_fire
NASA FIRMS thermal anomalies
temporal_anomaly
Welford baseline deviations (z-score ≥1.5)
active_strike
GDELT + Iran attack conflict events
src/services/signal-aggregator.ts:16-24
Ingestion Methods
Internet Outages
totaloutage →highmajoroutage →mediumpartialoutage →low
src/services/signal-aggregator.ts:112-128
Military Flights
Aggregates by country and assigns severity based on volume:- ≥10 aircraft →
high - 5-9 aircraft →
medium - 1-4 aircraft →
low
src/services/signal-aggregator.ts:130-152
Military Vessels
Similar aggregation logic with higher severity threshold:≥5 vessels →
high severity2-4 vessels →
medium severitysrc/services/signal-aggregator.ts:154-181
Protests
Counts by country with volume-based severity:≥10 protests →
high severity5-9 protests →
medium severitysrc/services/signal-aggregator.ts:183-210
Satellite Fires
NASA FIRMS thermal hotspot classification:- Above 360K brightness →
high - 320-360K →
medium - Below 320K →
low
src/services/signal-aggregator.ts:238-264
Temporal Anomalies
Welford’s algorithm detects deviations from 90-day baseline:src/services/temporal-baseline.ts):
- z ≥ 3.0 →
critical - 2.0 ≤ z < 3.0 →
high - 1.5 ≤ z < 2.0 →
medium
WeakMap to track source event type per signal, preventing double-counting when multiple async pipelines emit anomalies for the same source.
Source: src/services/signal-aggregator.ts:269-304
Active Strikes
Conflict events aggregated by country with strike count and high-severity filtering:- ≥5 high/critical strikes →
high - 2-4 high/critical strikes →
medium - 0-1 high/critical strikes →
low
src/services/signal-aggregator.ts:306-357
Country Signal Clusters
Signals are aggregated by country with convergence scoring:src/services/signal-aggregator.ts:422-454
Regional Convergence Detection
Identifies regions where multiple countries show simultaneous signal spikes:- ≥2 countries in region with signals
- ≥2 distinct signal types across region
src/services/signal-aggregator.ts:456-498
Regional Definitions
src/services/signal-aggregator.ts:66-91
AI Context Generation
Generates formatted text for LLM summarization prompts:src/services/signal-aggregator.ts:500-526
Signal Summary API
src/services/signal-aggregator.ts:528-552
Temporal Anomaly Detection
Welford’s online algorithm computes streaming mean/variance per event type, region, weekday, and month over a 90-day window:baseline:{eventType}:{region}:{weekday}:{month}
baseline:military_flight:IR:Thursday:January
Z-score interpretation:
- z ≥ 3.0: “3.2x normal for Thursday (January)” →
critical - z ≥ 2.0: “2.4x normal” →
high - z ≥ 1.5: “1.8x normal” →
medium
src/services/temporal-baseline.ts
Example Signal Summary
Integration Points
Focal Point Detection
Signal aggregator data is correlated with news entities:Country Instability Index
Signals feed into supplemental CII boosts:AI Summarization
AI context is prepended to World Brief prompts:Key Files
src/services/signal-aggregator.ts— Main aggregation enginesrc/services/temporal-baseline.ts— Welford’s algorithm anomaly detectionsrc/services/focal-point-detector.ts— News-signal correlationsrc/services/country-instability.ts— CII integrationsrc/services/summarization.ts— AI context consumption