48.8

Reading dated 2026-08-12

Stupidity, here, means behaviour that is collectively self-defeating given available knowledge. Not ignorance — ignorance is not knowing. Stupidity is knowing and proceeding anyway. The index measures the species, not individuals; it makes no moral claim about any person.

Six pillars

Existential risk
w 0.2544.5
Armed conflict
w 0.2050.8
Climate and biosphere
w 0.2053.9
Resource misallocation
w 0.1562.2
Epistemic condition
w 0.1059.4
Cooperation
w 0.1015.0

Fourteen indicators

IndicatorValueScoreSourceDate
Doomsday Clock, seconds to midnight85 s71.7Bulletin of the Atomic Scientists2026
Global nuclear warhead inventory12187 count17.4Federation of American Scientists, Nuclear Notebook2026
State-based conflict deaths per 100,000 people1.15 rate5.7Uppsala Conflict Data Program (UCDP)2025
Active state-based armed conflicts65 count100.0UCDP/PRIO Armed Conflict Dataset2025
Forcibly displaced people, share of world population1.4 %46.7UNHCR Global Trends2025
Atmospheric CO₂, Mauna Loa monthly mean429.12 ppm53.3NOAA Global Monitoring Laboratory2026-07
Global surface temperature anomaly vs 1880–18991.42 °C35.5NASA GISTEMP v42025
Living Planet Index, 1970 = 10027 index73.0WWF Living Planet Report2020
World military expenditure as share of global GDP2.5 %41.7SIPRI Military Expenditure Database2025
Ratio of world military expenditure to official development assistance16.56 ratio82.8SIPRI Military Expenditure Database + OECD DAC2025
RSF World Press Freedom global score54.3 score45.7Reporters Without Borders (RSF)2026
V-Dem Liberal Democracy Index, population-weighted0.27 0–173.0V-Dem Institute2025
Global DTP3 immunisation coverage85 %15.0WHO/UNICEF WUENIC2024
World population in extreme poverty9 %15.0World Bank, $2.15/day 2017 PPP2022

Methodology

Methodology v1.0

This document defines the Human Stupidity Index. It is both the implementation spec and public content on the site. Changing anything here requires a version bump, and old versions stay published.

Definition

Stupidity, here, means behaviour that is collectively self-defeating given available knowledge. Not ignorance — ignorance is not knowing. Stupidity is knowing and proceeding anyway.

The index measures the species, not individuals. It has no moral claim about any person.

Scale

Every indicator and the final index run 0 to 100, where 0 is large-scale cooperation for shared benefit and 100 is self-annihilation.

Normalisation

Each indicator has two anchors fixed at v1.0 and never adjusted afterwards. Moving anchors would let the index be tuned to a desired answer.

s = clamp( 100 * (v - anchor_min) / (anchor_max - anchor_min), 0, 100 )

Where anchor_min is the value corresponding to score 0 and anchor_max the value corresponding to score 100. When a higher raw value means *less* stupidity, anchor_min is simply the larger number and the formula handles the inversion without a separate branch.

Anchors are chosen as plausible historical or physical bounds, not as observed minima and maxima, so the index does not rescale itself every reading.

Pillar and index computation

pillar_score = mean(indicator scores in that pillar)      // equal weight within
index        = Σ (pillar_weight × pillar_score)           // weights below

The index is reported to one decimal place. Pillar weights sum to 1.

Pillars, weights and indicators

P1 — Existential risk (weight 0.25)
IDIndicatorUnitanchor_min (0)anchor_max (100)SourceCadence
`doomsday`Doomsday Clock, seconds to midnights3000Bulletin of the Atomic Scientistsannual
`warheads`Global nuclear warhead inventorycount070000Federation of American Scientists, Nuclear Notebookannual
P2 — Armed conflict (weight 0.20)
IDIndicatorUnitanchor_min (0)anchor_max (100)SourceCadence
`conflict_deaths`State-based conflict deaths per 100,000 peoplerate020UCDP Georeferenced Event Datasetannual
`active_conflicts`Active state-based armed conflictscount060UCDP/PRIO Armed Conflict Datasetannual
`displaced`Forcibly displaced people, share of world population%03UNHCR Global Trendsannual
P3 — Climate and biosphere (weight 0.20)
IDIndicatorUnitanchor_min (0)anchor_max (100)SourceCadence
`co2`Atmospheric CO₂, Mauna Loa monthly meanppm280560NOAA Global Monitoring Laboratorymonthly
`temp_anomaly`Global surface temperature anomaly vs 1880–1899°C04.0NASA GISTEMP v4annual
`living_planet`Living Planet Index, 1970 = 100index1000WWF Living Planet Reportbiennial
P4 — Resource misallocation (weight 0.15)
IDIndicatorUnitanchor_min (0)anchor_max (100)SourceCadence
`mil_gdp`World military expenditure as share of global GDP%06SIPRI Military Expenditure Databaseannual
`mil_oda`Ratio of world military expenditure to official development assistanceratio020SIPRI + OECD DACannual
P5 — Epistemic condition (weight 0.10)
IDIndicatorUnitanchor_min (0)anchor_max (100)SourceCadence
`press_freedom`RSF World Press Freedom global scorescore1000Reporters Without Bordersannual
`democracy`V-Dem Liberal Democracy Index, population-weighted0–110V-Dem Instituteannual
P6 — Cooperation (weight 0.10)

This pillar is the counterweight. High cooperation pushes the whole index down.

IDIndicatorUnitanchor_min (0)anchor_max (100)SourceCadence
`immunisation`Global DTP3 immunisation coverage%1000WHO/UNICEF WUENICannual
`extreme_poverty`World population in extreme poverty%060World Bank, $2.15/day 2017 PPPannual

Known limitations, stated publicly

  1. Pillar weights are a judgement. They are not derived. They are published so the judgement can be argued with, and a recomputation tool in a later version will let readers set their own.
  2. Indicators update at different cadences. Most are annual. The index therefore moves slowly and should not be read as a live feed.
  3. The cooperation pillar is under-measured. Cooperation leaves fewer statistical traces than violence. This is a real bias toward a higher index and is not corrected for.
  4. Anchors are defensible, not objective. They are fixed so that at least the bias is constant across readings.

Data file

The computed reading is published at /data/hsi.json under a stable URL and is free to reuse with attribution. Each indicator entry carries its raw value, its normalised score, its source name, source URL, and the date the value refers to.