KilotonWatch
Loading…

News-derived relative indicator. Not a probability or prediction of nuclear war.

Escalation Index

An hourly, news-derived reading of how escalatory nuclear-weapons coverage looks against its own recent history.

  •  
  •  
  •  

Current index

scale 0–10
Index gauge
–
Loading

index alert baseline (-day median)

Relative news indicator, not a probability of nuclear war.

-day alert baseline
–
vs baseline
–
vs previous run
–
24 h change
–

Alert state

 

  • Thresholdindex above baseline + and at least
  • Persistence consecutive hourly runs
  • Cooldown h between alerts; same story h
Baseline observations–

Index history

Hourly index with the -day median baseline of the alert index. Breaks in the line mark missing or non-indexed runs.

  • Index
  • Alert baseline (-day median)
  • Gap in runs
  • Run without index
  • Alert issued

What moved the index

Story clusters contributing to the latest computed index, strongest first.

    Story clusters

    Related articles grouped into stories, with the language model's latest assessment. Select a story for its articles and assessment history.

    Story Category Escalation Relevance Confidence Concrete Domains First seen Last seen Assessed

    All collected news

    Every headline collected from the configured sources. "Relevant" items matched the nuclear/escalation keyword filter and are clustered and assessed.

      Recent runs

      One row per hourly collection run. Expand a row for per-source errors, model errors and the full statistics.

      Details Started Status Index Alert baseline Alert state Sources ok Fetched / new / relevant Clusters LLM clusters Tokens Runtime Peak RSS

      Source health

      State of each configured feed after the most recent runs, and how many items it supplied.

      Source Kind Category Weight Enabled Last OK Failures Last error Backoff until Items 24 h Items 7 d

      Alert history

      Notifications sent when the index stayed well above its baseline.

        About this index

        What it is

        The KilotonWatch Escalation Index is a number from 0 to 10, recomputed about every hour from public news headlines about nuclear weapons and escalation. Related articles are grouped into story clusters, a language model rates each cluster, and the strongest credible, corroborated and recent signals are combined into one value. It is best read relative to its own recent history (the baseline), not as an absolute measure.

        What it is not

        • It is not a probability, forecast or prediction of nuclear war or of any event.
        • It uses no classified, verified or official data; only what public outlets publish.
        • It reflects coverage volume, wording and the model's judgement. A quiet reading does not mean the world is safe, and a high reading can be driven by coverage rather than events.

        Pipeline (every run)

        1. Collect headlines from the enabled RSS feeds and the GDELT news index (article metadata from The GDELT Project).
        2. Normalize URLs and titles, and de-duplicate syndicated copies.
        3. Filter: a keyword filter with a broad nuclear/escalation vocabulary; search feeds skip it; the AI does the precision step.
        4. Cluster matching items into stories (articles seen within h).
        5. Classify new or grown clusters with a language model: relevance and escalation (0–10), confidence (0–1), category, whether the signal is concrete, and a short reason. At most clusters per run.
        6. Aggregate the scored clusters into the index, compare it with the baseline, and decide whether to alert.

        How a story is scored

        Each assessed cluster seen in the last h with relevance of at least yields a signal:

        signal = credited escalation × confidence factor × corroboration × source weight × recency

        • Caps on escalation: at most when the model finds no concrete signal; at most when only one independent outlet reports it; above only with at least independent outlets.
        • Confidence factor: , so low confidence reduces a signal but never removes it.
        • Corroboration: saturating with the number of independent domains ().
        • Recency: the signal halves every h since the story was last seen.
        • Combination: a rank-weighted soft-OR, so the strongest story dominates and others add with diminishing weight: index = 10 × (1 − ∏ (1 − wᵢ · sᵢ / 10)), with rank weights .

        Baseline and alerts

        • Baseline: the median of the last days of hourly index values. It needs observations before alerts can fire (warm-up).
        • Alert rule: the index is more than above the baseline and at least , for consecutive hourly runs (runs more than h apart break the chain).
        • Alert index (): with "core", alerts and the baseline use the index without AI-search items; the gauge always shows the full index.
        • Cooldown: no new alert within h of the previous one. The same leading story is not re-alerted within h unless the index rose by at least .
        • Runs without the language model record no index. Runs where too few clusters could be assessed are marked degraded; their value is kept but excluded from the baseline and alerts.

        Crawling policy

        • robots.txt is respected for every host (currently: ).
        • Requests to the same host are spaced at least s apart; Retry-After is honoured (up to s within a run) and requests are retried at most once.
        • An honest User-Agent is always sent:
        • Blocks, paywalls and CAPTCHAs are never bypassed. A source that blocks the bot is disabled, not worked around.

        Retention

        Raw items are kept days, clusters days and assessments days. Index values, contributions and alerts are kept for the long-term history.

        Data sources

          Current AI search terms

          The AI writes search terms from the current top stories and runs them as news searches. The query text is kept internal; each term is listed with its market, its story and what it found.

            System status

            latest hourly run

            Story cluster

            Loading…