Geographic intelligence
Geo terminal
Pick a mission. The map, filters, window and workflows follow it. Every layer states its source and freshness; missing data is shown as missing, never as zero.
Loading country outlines…
On the map
- Country activity vs baselineunknown
- Severe vs baseline (mature baseline only)
- Elevated vs baseline
- Within normal range
- Quiet / warming-up baseline / coverage gap
- No signals recorded in window
- Approximate: dashed ring at the capital where no 1:110m outline exists (SG, HK, BH…)
signals per window (count) vs 30-day median
- Active anomaliesunknown
- Severity ≥ 7
- Severity ≥ 5
- Severity < 5
severity 0–10 (deviation strength, not probability)
- Geolocated signalsunknown
- Place-level location
- Approximate (region/city centroid): dashed ring
- Country-level only: outline, no dot
signal (one report cluster per point)
- Active situationsunknown
- Country involved in an active situation
situation (country outline)
Boundaries: Natural Earth 1:110m, neutral de-facto cartography; dashed outlines are provisional. No sovereignty claim.
Window & replay
unknownActive situations · Belize
unknownLoading situations…
Chronological evidence · Belize
0 itemsLoading signals…
Advanced: layer catalog (18 layers)
Layer catalog
Every layer states its source, how freshness is judged, what it covers, its unit, and what it shows when there is no data. No layer renders missing data as zero.
Country activity vs baseline
map layer · GET /api/v1/geo-summary?hours=N
- Source:
- Mosaic signals (Redis snapshot)
- Coverage:
- Countries with ≥1 non-backfill signal in the window; deviation vs trailing 30-day median. Absence is not proof of calm.
- Unit:
- signals per window (count) vs 30-day median
- Freshness:
- live ≤ 120 min (signal_freshness default ingest age); stale > 240 min (deviation FRESH_DOWN_MIN)
- No data:
- outline only — No signals recorded for this country in the window — drawn as an outline, not as a low value.
- Severe vs baseline (mature baseline only)
- Elevated vs baseline
- Within normal range
- Quiet / warming-up baseline / coverage gap
- No signals recorded in window
- Approximate: dashed ring at the capital where no 1:110m outline exists (SG, HK, BH…)
Strategic zones
map layer · GET /api/v1/geo/zones
- Source:
- Mosaic (lib/zones.js + anomalies + AIS/ADS-B)
- Coverage:
- Six watched chokepoints (Hormuz, Bab el-Mandeb, N. Red Sea/Suez, Black Sea, Taiwan Strait, Malacca). Sensor counts are a 60-minute window.
- Unit:
- active anomalies (count); vessels / aircraft seen in 60 min (count)
- Freshness:
- source carries no observation time: unknown when data exists, no_data when empty
- No data:
- hidden + notice — Zone rollup unavailable — zones are not drawn rather than drawn as clear.
- Zone with active anomaly
- Watched zone, no active anomaly
Active anomalies
map layer · GET /api/v1/anomalies
- Source:
- Mosaic anomalies worker (baseline deviations)
- Coverage:
- Active baseline deviations that pass the public eligibility gate; coverage-derived ones are suppressed while the baseline is invalid.
- Unit:
- severity 0–10 (deviation strength, not probability)
- Freshness:
- live ≤ 30 min (two 15-min detector cycles); stale > 240 min (FRESH_DOWN_MIN)
- No data:
- explicit message — No active anomalies passed eligibility — this is a statement about detectors, not a guarantee of calm.
- Severity ≥ 7
- Severity ≥ 5
- Severity < 5
Geolocated signals
map layer · GET /api/v1/geo/signals?hours=N
- Source:
- Mosaic signals (lib/geocode.js)
- Coverage:
- Non-backfill signals with a place or country; exact dots only for place-level geocodes.
- Unit:
- signal (one report cluster per point)
- Freshness:
- live ≤ 120 min (signal_freshness default ingest age); stale > 240 min (deviation FRESH_DOWN_MIN)
- No data:
- explicit message — No geolocated signals in this window and filter.
- Place-level location
- Approximate (region/city centroid): dashed ring
- Country-level only: outline, no dot
Active situations
map layer · GET /api/v1/geo/situations-geo
- Source:
- Mosaic situations (published story clusters)
- Coverage:
- Published, active story situations with at least one country AND public live evidence in the last 7 days (newest evidence time — never a hidden, backfill or historical member, never creation or update time; withdrawn situations excluded). Drawn as country outlines, never as the synthetic jittered point.
- Unit:
- situation (country outline)
- Freshness:
- live ≤ 120 min (signal_freshness default ingest age); stale > 240 min (deviation FRESH_DOWN_MIN)
- No data:
- explicit message — No published situation with a country received evidence in the last 7 days.
- Country involved in an active situation
Hazards & incidents
map layer · GET /api/v1/geo/live/events?hours=N
- Source:
- Mosaic signals (weather / quake / storm keywords)
- Coverage:
- Weather, quake, tsunami, cyclone and similar signals. Keyword-selected: not a complete hazard feed.
- Unit:
- incident report (country outline)
- Freshness:
- live ≤ 120 min (signal_freshness default ingest age); stale > 240 min (deviation FRESH_DOWN_MIN)
- No data:
- explicit message — No hazard reports in the window — not a statement that none occurred.
- Country with a reported hazard
Vessels (AIS)
map layer · GET /api/v1/geo/live/vessels?minutes=60
- Source:
- AIS (Mosaic sensor_observations)
- Coverage:
- Receiver-dependent AIS around watched chokepoints. A missing vessel is not proof it went dark.
- Unit:
- vessel (last position in 60 min)
- Freshness:
- live ≤ 30 min (/geo/live default window); stale > 60 min (zones sensor window)
- No data:
- hidden + notice — No AIS positions in the last 60 minutes for this area.
- Vessel last position
Aircraft of interest (ADS-B)
map layer · GET /api/v1/geo/live/aircraft?minutes=60
- Source:
- ADS-B (Mosaic sensor_observations)
- Coverage:
- Aircraft Mosaic tracks over areas of interest; not all air traffic.
- Unit:
- aircraft (last position in 60 min)
- Freshness:
- live ≤ 30 min (/geo/live default window); stale > 60 min (zones sensor window)
- No data:
- hidden + notice — No tracked aircraft in the last 60 minutes for this area.
- Aircraft last position
Cross-asset board
workflow panel · GET /api/v1/markets
- Source:
- market_data (Yahoo poll, 5 min)
- Coverage:
- ~28 tracked symbols: indices, sectors, commodities, FX, bonds, crypto. Snapshot time is poll time.
- Unit:
- price (instrument currency) and % change on session
- Freshness:
- live ≤ 15 min (three 5-min market polls); stale > 24 h. Poll time, not exchange quote time
- No data:
- explicit message — Market snapshot unavailable — no prices are shown rather than stale zeros.
- Up on session
- Down on session
Macro regime
workflow panel · GET /api/v1/regime
- Source:
- regime_snapshots (FRED + market_data, 15 min)
- Coverage:
- US-centred regime read: VIX band, DXY trend, 2s10s curve, fed funds, WTI.
- Unit:
- VIX index level; DXY index; curve bps; rates %; WTI USD/bbl
- Freshness:
- live ≤ 30 min (two 15-min regime snapshots); stale > 24 h
- No data:
- explicit message — No regime snapshot recorded.
- Regime label (descriptive)
Country indices & FX
workflow panel · GET /api/v1/country-markets/:code
- Source:
- Yahoo Finance chart API (cached)
- Coverage:
- Headline index and FX pair for ~30 mapped countries; other countries return none. Quote time is not carried.
- Unit:
- index level / FX rate and 1-day % change
- Freshness:
- source carries no observation time: unknown when data exists, no_data when empty
- No data:
- explicit message — No mapped market instruments for this country.
- Up vs previous close
- Down vs previous close
Sovereign & macro
workflow panel · GET /api/v1/country-economy/:code
- Source:
- World Bank (annual), FRED (policy rate: US, 11 euro-area members; 10y), OEC
- Coverage:
- Annual macro indicators; policy rate only for the US (effective fed funds) and 11 euro-area members (ECB MRO), no series elsewhere; 10-year yield for 28 FRED-covered economies.
- Unit:
- % of GDP, %, USD — per indicator, with its reference year/date
- Freshness:
- annual statistical release: never live; reference year within 2 years = recent, older = stale
- No data:
- explicit message — Indicator not published for this country — omitted, never estimated.
- Latest value with reference period
Economic calendar
workflow panel · GET /api/v1/events/upcoming · /events/recent
- Source:
- ForexFactory calendar (econ_events)
- Coverage:
- Medium/high-impact releases for US, EU, GB, JP, CN, CA, AU, NZ, CH only.
- Unit:
- scheduled release (forecast / previous / actual as published)
- Freshness:
- source carries no observation time: unknown when data exists, no_data when empty
- No data:
- explicit message — No scheduled releases in the window for the covered economies.
- High impact
- Medium impact
- open globe
OpenSky civil flights
classic globe · GET /api/v1/geo/live/flights
- Source:
- OpenSky Network (anonymous tier, cached 30 s)
- Coverage:
- Crowd-sourced ADS-B; densest over Europe/North America; capped at 1,800 aircraft.
- Unit:
- aircraft position
- Freshness:
- source carries no observation time: unknown when data exists, no_data when empty
- No data:
- hidden + notice — OpenSky unavailable or rate-limited — layer hidden, not shown as empty skies.
- Airborne civil aircraft
- open globe
Broad AIS shipping
classic globe · GET /api/v1/geo/live/vessels
- Source:
- AIS (Mosaic sensor_observations)
- Coverage:
- Wider live AIS traffic in monitored maritime zones; receiver gaps are common.
- Unit:
- vessel position
- Freshness:
- live ≤ 30 min (/geo/live default window); stale > 60 min (zones sensor window)
- No data:
- hidden + notice — No AIS positions — hidden, not drawn as empty sea.
- Vessel position
- open globe
Public webcams
classic globe · static curated list (GlobeFilter)
- Source:
- EarthCam / YouTube Live
- Coverage:
- A small curated set of public webcams; not an observation network.
- Unit:
- camera location
- Freshness:
- source carries no observation time: unknown when data exists, no_data when empty
- No data:
- hidden + notice — Curated list unavailable — hidden.
- Webcam
- open globe
ISS position
classic globe · public orbital telemetry (GlobeFilter)
- Source:
- wheretheiss.at
- Coverage:
- Sub-satellite point of the International Space Station.
- Unit:
- position
- Freshness:
- source carries no observation time: unknown when data exists, no_data when empty
- No data:
- hidden + notice — Telemetry unavailable — hidden.
- ISS sub-satellite point
- open globe
Zone sensor replay
classic globe · GET /api/v1/geo/replay?zone=KEY
- Source:
- AIS/ADS-B sensor_observations
- Coverage:
- Bucketed historical positions inside one strategic zone, up to 72 h.
- Unit:
- positions per time bucket
- Freshness:
- live ≤ 30 min (/geo/live default window); stale > 60 min (zones sensor window)
- No data:
- hidden + notice — No recorded positions for this zone and window.
- Replayed position