← Human Stupidity Index

Methodology

Methodology v1.3

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. v1.0, v1.1, and v1.2 are archived.

Definition

Stupidity, here, is worse than malice. Malice requires intent. Stupidity requires none. That is why it spreads faster than malice, and answers to no one.

Much of it is not a flaw in any individual mind. It is a failure of coordination: a species that understands a risk clearly enough to name it, and still cannot act on that knowledge together.

This index measures that failure. Not intelligence. Not virtue. It makes no moral claim about any person. What it tracks is simpler, and harder to look away from: how much agency our species still holds over the risks it has created for itself, and whether that agency is growing or running out.

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.20)
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.15)
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 — Interpersonal harm (weight 0.15)

This pillar measures harm one person does to another outside of state conflict, which armed_conflict (UCDP, state-based only) does not cover. Added in v1.3.

IDIndicatorUnitanchor_min (0)anchor_max (100)SourceCadence
`modern_slavery`People in modern slavery, share of world population%01ILO, Walk Free & IOM, Global Estimates of Modern Slavery~5–6 years
`homicide_rate`Intentional homicide rate per 100,000 peoplerate0100UNODC, via UN SDG Indicator 16.1.1annual (full report ~4 years)
`violence_against_women`Women subjected to intimate partner violence, past 12 months%0100World Health Organization~4–5 years
`child_labour`Children aged 5–17 in child labour%025ILO & UNICEF, Global Estimates of Child Labour~4 years
P4 — 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
P5 — Resource misallocation (weight 0.10)
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
`wealth_concentration`Top 1%'s share of global wealth%170World Inequality Lab, World Inequality Report~3–4 years
P6 — 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
P7 — 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 the "Explore the weights" tool on the homepage lets any reader set their own and see the result, live.
  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.
  5. `wealth_concentration`'s anchor_max is a national extreme, not a global one. No reliable estimate of the global wealth distribution exists before roughly 1980, so 70%, the most extreme sustained top-1% wealth share documented in any major economy (the United Kingdom, 1914), is used as a proxy ceiling rather than an observed global maximum.
  6. Interpersonal harm's anchors lean on judgement more than most other pillars. modern_slavery and child_labour use round ceilings above the current or historical reading rather than a defensible physical or historical bound, and homicide_rate's anchor_max is the worst documented *national* rate, not a global one -- the same style of proxy already disclosed for wealth_concentration above, applied three more times in one pillar. violence_against_women is the exception, since its 100% ceiling is a genuine physical bound.

Historical reconstruction

The homepage chart shows the index across years, built from data/historical.json rather than the single live reading in data/hsi.json. It is a separate, lower-confidence artifact, kept apart from the live reading on purpose. Most of its indicators have no real data before the 2000s, several have none at all, and a few are sourced one step removed from the primary publisher, each disclosed in that file.

For a given year, only pillars with at least one real indicator value that year contribute. Their weights are renormalised proportionally among themselves: the same "drop what lacks a source" rule the live index already applies to press_freedom before 2002, generalised to every pillar and year. A year built from one pillar out of the total is a much weaker signal than one built from all of them; the chart marks this directly by drawing the line lighter and thinner, and with a coverage strip beneath it, wherever fewer pillars are present. This is implemented in lib/historical.ts, pure and unit tested like lib/index.ts, but is not part of the live index's own formula above. interpersonal_harm (added in v1.3) has no historical backfill yet -- none of its four indicators have a real time series behind the current reading -- so full coverage now tops out at six of seven pillars, not seven of seven, until that gap is closed.

Version history

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.

Who maintains this

The Human Stupidity Index is built and maintained by futurable.now. Thomas B. Doyle advises on AI oversight for the index: the model-assisted work planned for future versions, including any AI-assisted scoring or proposal evaluation.