docs/panels/indicators-and-signals.mdx
WorldMonitor ships many tile-style indicator, correlation, and signal panels — compact surfaces that show one or two readings each and are designed to be composed alongside the deep-dive panels. This page is the collective reference so each tile is findable without writing a dedicated page per panel.
When a tile is empty, check Data Sources and the health endpoint for upstream status.
| Panel id | Title | What it shows |
|---|---|---|
fear-greed | Fear & Greed | CNN Fear & Greed Index gauge (0-100). |
positioning-247 | 24/7 Positioning | Always-on positioning flow signal. |
aaii-sentiment | AAII Sentiment | AAII bull/bear retail sentiment survey (weekly). |
| Panel id | Title |
|---|---|
macro-tiles | Macro Indicators (CPI, unemployment, GDP, policy rates; US + Euro Area) |
yield-curve | Yield Curve |
national-debt | Global Debt Clock |
liquidity-shifts | Liquidity Shifts |
macro-signals | Market Regime / Market Radar |
| Panel id | Title |
|---|---|
earnings-calendar | Earnings Calendar (EPS estimate vs actual, beat/miss) |
economic-calendar | Economic Calendar (CPI / NFP / GDP / PMI / central bank decisions) |
| Panel id | Title |
|---|---|
market-breadth | Market Breadth |
etf-flows | BTC ETF Tracker |
cot-positioning | COT Positioning |
| Panel id | Title |
|---|---|
energy-complex | Energy Complex |
oil-inventories | Oil Inventories |
base-metals | Base Metals |
gold-silver | Gold & Silver |
gold-intelligence | Gold Intelligence |
mining-companies | Mining Companies |
critical-minerals | Critical Minerals |
fao-food-price-index | FAO Food Price Index |
grocery-basket | Grocery Index |
bigmac | Big Mac Index |
fuel-prices | Fuel Prices |
| Panel id | Title |
|---|---|
crypto-heatmap | Crypto Sectors |
ai-tokens | AI Tokens |
defi-tokens | DeFi Tokens |
other-tokens | Alt Tokens |
stablecoins | Stablecoins |
| Panel id | Title |
|---|---|
gulf-economies | Gulf Economies / Gulf & OPEC Economies |
gcc-investments | GCC Investments / GCC Resource Investments |
gccNews | GCC Business News |
These panels visualise cross-domain correlation over a rolling window — useful for spotting regime shifts and unusual co-movement.
| Panel id | Title | Cross-domain pair |
|---|---|---|
military-correlation | Force Posture | Military × events |
escalation-correlation | Escalation Monitor | Conflict/protest events (45%) + conflict-linked outages (25%) + escalation news severity (30%) over 48h |
economic-correlation | Economic Warfare | Sanctions × markets |
disaster-correlation | Disaster Cascade | Natural × infra |
cross-source-signals | Cross-Source Signals | Multi-source signal agreement |
| Panel id | Title | What it shows |
|---|---|---|
geo-hubs | Geopolitical Hubs | Hotspot concentration map. |
social-velocity | Social Velocity | Reddit r/worldnews + r/geopolitics velocity; same feed as the MCP get_social_velocity tool. |
population-exposure | Population Exposure | Population within a buffer of active events. |
satellite-fires | Fires | FIRMS/VIIRS thermal detections on the map. See Thermal Escalation for the clustered + baseline-aware view. |
ucdp-events | UCDP Conflict Events | UCDP georeferenced conflict event dataset. |
internet-disruptions | Internet Disruptions | Cloudflare Radar outages + service status. |
service-status | Service Status | Internet-service status surface. |
positive-feed | Good News Feed | Curated constructive-news stream. |
live-webcams | Live Webcams | See Webcam layer for the map-layer equivalent. |
windy-webcams | Windy Live Webcam | Windy.com-backed webcam. |
The compact infrastructure tiles use the generated InfrastructureService client. internet-disruptions, DDoS summaries, traffic anomalies, service-status, and server-computed temporal anomalies read bootstrap data first when available, then call the REST RPC when bootstrap data is absent, filtered, or stale. Utility routes such as IP geolocation, reverse geocoding, bootstrap cache reads, and baseline writes are data-plane routes rather than standalone tiles.
| Method | Route | What it feeds |
|---|---|---|
GET | /api/infrastructure/v1/list-internet-outages | Internet Disruptions map/tile data from Cloudflare Radar; fetchInternetOutages() uses bootstrap outages first, then this RPC. |
GET | /api/infrastructure/v1/list-service-statuses | Service Status tile; fetchServiceStatuses() uses bootstrap serviceStatuses first, then this RPC with optional status filtering. |
GET | /api/infrastructure/v1/get-cable-health | Cable layer and infrastructure cascade context; see Infrastructure Cascade Analysis for the cable-specific workflow. |
GET | /api/infrastructure/v1/get-temporal-baseline | Client-side temporal anomaly checks for metrics such as military flights, vessels, protests, AIS gaps, and satellite fires. |
GET | /api/infrastructure/v1/list-temporal-anomalies | Server-computed temporal anomalies for news and satellite fires; bootstrap temporalAnomalies is consumed first, then fetchLiveAnomalies() can call this route. |
GET | /api/infrastructure/v1/list-internet-ddos-attacks | DDoS attack summaries from Cloudflare Radar; fetchDdosAttacks() uses bootstrap ddosAttacks first, then this RPC. |
GET | /api/infrastructure/v1/list-internet-traffic-anomalies | Traffic anomaly events from Cloudflare Radar; bootstrap trafficAnomalies is used for the unfiltered view, while country-filtered reads call this RPC. |
GET | /api/infrastructure/v1/get-ip-geo | Caller IP geolocation utility for infrastructure-aware experiences; no panel hydrates from it directly. |
GET | /api/infrastructure/v1/reverse-geocode | Coordinate-to-place lookup utility for API consumers and v1 callers; some UI paths still use the legacy thin /api/reverse-geocode helper. |
GET | /api/infrastructure/v1/get-bootstrap-data | Batch cache read RPC for selected bootstrap/cache keys; complements the top-level bootstrap hydration path. |
POST | /api/infrastructure/v1/record-baseline-snapshot | Background baseline update used by temporal anomaly tracking; it writes observations and does not render a visible tile by itself. |
premium: 'locked' in src/config/panels.ts.src/config/panels.ts directly when confirming availability.getHydratedData(...)) and fall back to a fresh RPC call so the initial paint is immediate.