Download the dataset
The complete Coup Atlas dataset — every coup d'état, attempted coup, and coup conspiracy on file from 1945 to the present — in four files, updated whenever the site is published.
Looking for the charts instead? Those are on the Statistics page.
Method files
Everything the build uses to check itself is published here too, so anyone can audit the dataset without asking us for anything.
License
The Coup Atlas compilation is released under Creative Commons Attribution 4.0 (CC BY 4.0): use it for anything, including commercially — just credit Coup Atlas. The baseline coding descends from the Cline Center Coup d'État Project Dataset, which is itself published under CC BY 4.0, so the lineage is licence-compatible end to end. Please also cite the Cline Center in academic work:
How to cite
Field reference
| Field | Meaning |
|---|---|
id | Stable record identifier (source-derived) |
country, country_iso3, region, subregion | Where the event took place |
date, year | Event date (ISO-8601) |
event_type | Kind of seizure (military coup, palace coup, auto-coup, …) |
coup_status | Successful · Attempted · Conspiracy |
outcome, target_leader, leader_fate | What happened, to whom |
actor_type | Coded actor categories (comma-separated) |
sources | Baseline source-document citation trail, exactly as it arrives from the source dataset — line-wrapped fragments and all. Kept verbatim as the archival record |
source_trail | The same trail grouped by outlet and rejoined into whole citations, with URLs repaired where that could be done safely. This is what the site displays. See citations-report.md |
lat, lng | Country centroid (not the exact event location) |
tactics | How the coup unfolded — controlled vocabulary (troop_movement, media_seizure, leader_detention, …); currently coded for the best-documented events, expanding over time |
lead_actor_type, duration_days | Primary acting group; days from first move to resolution |
leader_in_power, leader_in_power_military | Who held office going into the event, and whether they had a military career (Archigos lineage) — not necessarily the event's target |
regime_type | How the country was governed at the time (Geddes, Wright & Frantz) |
last_election, last_election_kind, last_election_timing, days_since_election | The most recent national vote in the ten years before the event. A recent election does not establish that it was free or fair |
cline_id, powell_thyne_id, cam_id, agreement_status | Cross-reference against academic datasets. agreement_status is agree (two or more outside datasets corroborate), partial (one does), disagree (an outside dataset gives a different date or status), or unique_to_us (no outside dataset has it). See the note below on which of these actually occur |
confidence | Documentation confidence (high · medium · low), computed from source count and cross-dataset agreement — the rule is printed in full below |
vdem_v2x_polyarchy | Electoral democracy index (v2x_polyarchy) for the country in the year before the event, 0–1 low to high. From V-Dem v16, on 1,147 records. Empty where V-Dem does not cover that country-year |
deaths, adverse_regime_change | Reported deaths, and whether an adverse regime change followed. From the Center for Systemic Peace coup list, on 498 records. Empty where that list records no figure. A zero in deaths means the list recorded none, not that none occurred |
added_on | The date the record entered the Coup Atlas — not the date of the event. The RSS feed is ordered by this, so an old coup researched and added today still reaches subscribers. Every record of the original load carries the same date; each later addition carries its own |
Only two agreement_status values appear in the data today: 460 records at agree and 701 at partial. There are no disagree rows, and unique_to_us cannot occur while every record descends from the Cline baseline — a record can never have zero outside matches, because Cline itself is one. The two unused values are kept in the schema because both become reachable the moment we add an event of our own.
Provenance & verification
The baseline coding descends from the Cline Center Coup d'État Project Dataset v2.2.2 (Illinois Data Bank, DOI 10.13012/B2IDB-9651987_V10, published February 17, 2026). On July 24, 2026 every record here was reconciled against that official release, matched on the source coup_id. All 1,162 of 1,162 records matched, with no differences in date, event status, or country. The Atlas is a faithful 1:1 of the release, extended with narratives, sources, images, and the additional fields described above.
Records are separately cross-referenced against independent codings — the Coup Agency and Mechanisms (CAM) dataset and, where available, Powell & Thyne — and the agreement_status field reports whether a given event is corroborated by one outside dataset (partial), more than one (agree), or none (unique_to_us). As of the CAM reconciliation on July 24, 2026, 460 records are corroborated by two independent datasets and 701 by one. CAM covers military coups from 1950 onward only, so a record sitting at partial usually falls outside another project's scope. That is a statement about coverage, not about doubt.
Three further fields — leader_in_power, regime_type and last_election — are companion values, derived automatically from named outside datasets and held separate from both the baseline coding and Coup Atlas's own research. They are filled by a documented rule (the incumbent whose tenure begins strictly before the event date; the regime spell covering it; the most recent national vote within ten years) and left empty wherever the source does not clearly answer, rather than guessed. Present coverage: leader on 1,110 records, regime type on 1,121, prior election on 976.
How confidence is scored
Every record's confidence is computed at build time. It is never hand-entered, so you can recompute it yourself from the open-data files alone:
outlets = number of distinct source outlets in sources
(entries beginning with "•"; falls back to ceil(entries ÷ 2)
for records whose citation trail has no outlet bullets)
score = min(outlets, 5)
+ 2 if agreement_status is "agree"
+ 1 if agreement_status is "partial"
high score 6 or more (well sourced and corroborated outside)
medium score 4 to 5
low score 3 or less
Counting outlets rather than raw lines matters because the baseline citation trails list each outlet once, followed by its headline lines — so counting lines would overstate how many independent places reported the event. Current mix: 324 high, 653 medium, 185 low. The full rationale is in confidence.md.
Notes
Coordinates are country centroids, suitable for country-level mapping — not precise event sites. Tactics coding is deliberately partial: 52 of 1,162 records carry it so far, because we only code it where the sourcing supports it. Corrections and leads are welcome — every event page carries a correction form, and it works without JavaScript.