Signal lenses

Each tracked region is queried against conflict language in the GDELT DOC 2.0 API. The Worker reads a 30-day timeline and a recent article list, then computes four lenses.

LensWeightMeaning
Coverage intensity50%How much conflict-related coverage appears in the rolling window.
Acceleration25%Whether the last seven days are rising against the prior seven days.
Source breadth15%How many distinct news domains appear in the article sample.
Recency10%Whether the most recent day is above the window average.

Formula

score = clamp(0, 100, intensity_lens * 0.50 + acceleration_lens * 0.25 + source_breadth_lens * 0.15 + recency_lens * 0.10 )

Intensity uses a log scale so one large coverage burst does not dominate the whole score. Acceleration is capped to keep a single noisy week from becoming a false crisis marker.

Benchmark context

Why these lenses

ACLED's Conflict Index emphasizes deadliness, danger to civilians, geographic diffusion, and armed-group fragmentation. CFR's tracker emphasizes violence, humanitarian impact, and escalation risk. War Risk Index cannot reproduce those curated datasets in real time, so it uses open-news volume, acceleration, and breadth as a separate early signal.

Limitations

What the index is not

The score can rise because of media attention, major diplomacy, repeated articles about the same event, or language shifts. It can miss local violence in low-coverage environments. It should be read beside primary reports and qualified analysis.

Score bands

ScoreBandInterpretation
0-20CalmLow open-news pressure for the tracked query.
21-40WatchConflict language is present but not broadly accelerating.
41-60WarningIntensity, recency, or source breadth is elevated.
61-80HighSeveral lenses are elevated at the same time.
81-100CriticalThe signal is unusually concentrated, broad, and fast-moving.