GRIDINT RESEARCH · DATA HUB
Aviation safety.
Every aviation accident investigation the NTSB has opened since 2000 — 30,968 events, each carrying its year, injury class, state, aircraft make, fatality count, and the docket number that opens the investigation itself. Maintained by the National Transportation Safety Board; this catalog holds what the board publishes, updated by dated edition. Completeness here means as-held: what the record has, nothing it does not.
Eighteen years of investigations, classed.
Plot it on any two axes.
The shape of the records.
Records by highest injury
SOURCE · NTSB aviation accident database, avall.mdb (2008–present) · data cutoff 2026-08-26 · counted from the records
How this hub was made.
Records are the NTSB's own bulk corpus (avall.mdb, 2008–present), refreshed weekly from the official incremental files. Each event links to its NTSB report. This hub presents the record, not analysis — the aviation-review limit is stated deliberately. Downloads are verification extracts.
The aviation safety exhibit page → · The institute's method →
Every edition, dated.
- Edition 1 published 2026-08-27 · data cutoff 2026-08-26 · first edition
A hub changes only as a new dated edition, on the institute's word — never on a schedule. Collection continues underneath; publication is deliberate.
Verify this hub.
Verification extracts — the working records with their receipts, attribution first, pointing at the origin. We never provide data; the source is the authority, this hub is the lens.
Cite this hub
GRIDINT Research (2026). Aviation safety data hub, edition 1 (data cutoff 2026-08-26). https://gridint.ai/data/aircraft-investigation
@misc{gridint_aircraft_investigation_2026,
title = {Aviation safety data hub, edition 1},
author = {{GRIDINT Research}},
year = {2026},
note = {Data cutoff 2026-08-26; source: NTSB aviation accident database, avall.mdb (2008–present)},
url = {https://gridint.ai/data/aircraft-investigation}
}
In pandas
import pandas as pd
D = pd.read_json("https://gridint.ai/demo/aircraft-investigation/explorer-records.json")
records = pd.DataFrame(D["rows"].tolist(), columns=["year", "highest_injury", "state", "make", "fatalities", "ev_id"])
The first row of that extract, as it stands: [2008, "None", "—", "Eurocopter France", 0, "20080211X00175"] — the values are the receipt, whatever a column is called.