Skip to main content

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
Source: src/services/signal-aggregator.ts:16-24

Ingestion Methods

Internet Outages

Severity mapping:
  • total outage → high
  • major outage → medium
  • partial outage → low
Source: src/services/signal-aggregator.ts:112-128

Military Flights

Aggregates by country and assigns severity based on volume:
Severity thresholds:
  • ≥10 aircraft → high
  • 5-9 aircraft → medium
  • 1-4 aircraft → low
Source: src/services/signal-aggregator.ts:130-152

Military Vessels

Similar aggregation logic with higher severity threshold:
number
default:"5"
≥5 vessels → high severity
number
default:"2"
2-4 vessels → medium severity
Source: src/services/signal-aggregator.ts:154-181

Protests

Counts by country with volume-based severity:
number
default:"10"
≥10 protests → high severity
number
default:"5"
5-9 protests → medium severity
Source: src/services/signal-aggregator.ts:183-210

Satellite Fires

NASA FIRMS thermal hotspot classification:
Severity thresholds:
  • Above 360K brightness → high
  • 320-360K → medium
  • Below 320K → low
Source: src/services/signal-aggregator.ts:238-264

Temporal Anomalies

Welford’s algorithm detects deviations from 90-day baseline:
Z-score thresholds (computed in src/services/temporal-baseline.ts):
  • z ≥ 3.0 → critical
  • 2.0 ≤ z < 3.0 → high
  • 1.5 ≤ z < 2.0 → medium
Deduplication: Uses 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:
Severity thresholds:
  • ≥5 high/critical strikes → high
  • 2-4 high/critical strikes → medium
  • 0-1 high/critical strikes → low
Source: src/services/signal-aggregator.ts:306-357

Country Signal Clusters

Signals are aggregated by country with convergence scoring:
Convergence scoring formula:
Source: src/services/signal-aggregator.ts:422-454

Regional Convergence Detection

Identifies regions where multiple countries show simultaneous signal spikes:
Requirements for convergence alert:
  1. ≥2 countries in region with signals
  2. ≥2 distinct signal types across region
Example output:
Source: src/services/signal-aggregator.ts:456-498

Regional Definitions

Source: src/services/signal-aggregator.ts:66-91

AI Context Generation

Generates formatted text for LLM summarization prompts:
Example output:
This context is prepended to AI summarization prompts to give the LLM geographic awareness. Source: src/services/signal-aggregator.ts:500-526

Signal Summary API

Source: 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:
Storage: Stats are stored in Redis via Upstash with keys like:
  • baseline:{eventType}:{region}:{weekday}:{month}
Example: 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
Source: 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 engine
  • src/services/temporal-baseline.ts — Welford’s algorithm anomaly detection
  • src/services/focal-point-detector.ts — News-signal correlation
  • src/services/country-instability.ts — CII integration
  • src/services/summarization.ts — AI context consumption