CoolFace
Datasetpublic

himaxym/aviation-safety-occurrences

Aviation Safety Occurrences (1902–2026) 223,623 aircraft accident and incident records, consolidated from 124 official accident-investigation authorities into one table with a shared schema. Every row links back to the investigating authority's own report through report_url. Nothing here is a summary of a summary: the point of the dataset is that the records national bodies publish in 124 different formats, with 124 different field names and 124 different search forms, become… See the full description on the dataset page: https://huggingface.co/datasets/himaxym/aviation-safety-occurrences.

sourceHugging Facecc-by-4.0updated 1mo agoView on Hugging Face
1likes156downloads
Dataset Card

Aviation Safety Occurrences (1902–2026)

223,623 aircraft accident and incident records, consolidated from 124 official accident-investigation authorities into one table with a shared schema.

Every row links back to the investigating authority's own report through report_url. Nothing here is a summary of a summary: the point of the dataset is that the records national bodies publish in 124 different formats, with 124 different field names and 124 different search forms, become one file you can GROUP BY.

Quick start

python
from datasets import load_dataset
ds = load_dataset("himaxym/aviation-safety-occurrences", split="train")
sql
-- duckdb, straight off the hub
SELECT year, count(*) FROM 'train-*.parquet'
WHERE severity = 'fatal' GROUP BY 1 ORDER BY 1;

What is in it

Rows223,623
Sources124 investigation authorities
Period1902 – 2026
Columns29
FormatParquet (zstd), 3 shards, 14 MB total

Largest contributors (sources.csv has all 124 with per-source year ranges):

sourcerecordsyears
ntsb196286,9951962–1981
ntsbpre60,3981948–2007
ntsb29,1512008–2026
aaib (UK)6,6641958–2026
adru4,5811923–2026
cenipa (BR)3,6351949–2026
sust (CH)2,9861959–2026
bea (FR)2,8781973–2025
sacaa (ZA)2,6911953–2026

The long tail is the interesting part: TSB, CIAIAC, BFU, ATSB, JTSB, MAK, KNKT, TAIC, OTKES, SHK, GPIAAF, PKBWL, ANSV, KBSZ and ~100 more, most of which have never been machine-readable outside their own site.

Columns

id, occurrence_type, event_date, year, severity, is_hull_loss, country_iso, lat, lon, type_icao, type_full, aircraft_category, family, family_slug, registration, operator, airline_icao, airline_name_canonical, flight_nature, occupants, fatalities_onboard, ground_fatalities, fatalities_total, phase, category, cause_summary, report_url, primary_source, llm_enriched

Read this before you use it

Coverage is uneven by field, and a column being 100% non-null does not mean it is 100% informative. These are the numbers, not an estimate:

fieldpopulated
report_url, event_date, occurrence_type, severity100%
country_iso85.8%
cause_summary83.6%
registration82.5%
phase72.1%
category68.4%
fatalities_total41.6%
operator27.0%
occupants25.4%
type_icao18.2%
lat / lon13.2%
flight_nature2.9%

Three traps in particular:

1. `severity` is 100% populated and 74% of it is the literal string `unknown`. The distribution is unknown 74.4%, fatal 21.7%, hull_loss 3.5%, minor 0.2%, incident 0.1%, serious_incident 0.03%. Treating unknown as "not fatal" will silently invent a safety trend. Filter it, don't fold it.

2. 41.5% of rows carry `llm_enriched = 1`, meaning at least one field on that row was extracted from narrative prose by a language model rather than read from a structured field. This matters most for casualty counts: a large share of non-null fatalities_total values sit on llm_enriched rows. If you are computing death tolls, filter to `llm_enriched = 0` and accept the smaller sample. We publish the flag precisely so that this is your decision and not a hidden one.

3. Coordinates exist for 13.2% of rows, and the ones that exist are not uniformly distributed — they skew heavily toward recent, well-documented, Western occurrences. Any map built from this is a map of reporting practice as much as of aviation. Records that sat at exactly (0, 0) in the source — the "Null Island" artefact of failed geocoding — have been set to NULL rather than shipped as a coordinate off the coast of Ghana.

flight_nature at 2.9% is included for completeness but is too sparse for any comparative claim. family and airline_icao are likewise thin.

What is deliberately not here

  • No aggregate airline or aircraft-type safety scores. Producing one requires exposure denominators (departures, flight hours) that this dataset does not contain, and naive per-airline counts double-count occurrences that several authorities each filed. We publish the records; the denominators are your problem, and they should be.
  • No fatality totals presented as authoritative. See trap 2.
  • No personal data. Names of crew, passengers and investigators are not carried, even where the source report contains them.

Provenance and licence

This cut contains only records published by government accident-investigation authorities and equivalent public bodies, whose outputs are public records in their respective jurisdictions. Two large commercially-curated sources present in the upstream database (the Aviation Safety Network and the Bureau of Aircraft Accidents Archives) are excluded from this release because their terms govern redistribution; if you need them, go to them directly.

The compilation — the schema, the cross-source normalisation, the deduplication and the enrichment flags — is released under CC BY 4.0. The underlying records remain the works of their issuing authorities; for reuse of an individual record, report_url takes you to the authority that published it and to whatever terms it applies.

Provenance of the compilation

Built and maintained by FlightFinder, an aviation-safety data platform. The same corpus backs the accident histories shown on aircraft, airline, airport and route pages there.

Citation

Cite the DOI, not this page. The concept DOI below always resolves to the latest version, so a citation written today survives version 1.1.

bibtex
@dataset{flightfinder_aviation_safety_occurrences,
  title     = {Aviation Safety Occurrences (1902--2026)},
  author    = {Kolomiiets, Denys},
  year      = {2026},
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.22057962},
  url       = {https://doi.org/10.5281/zenodo.22057962},
  note      = {Compiled from 124 official accident-investigation authorities}
}

To pin this exact release instead of the latest, use the version DOI 10.5281/zenodo.22057963 (v1.0.0).

Changelog

  • 2026-08-21 — initial release. 223,623 rows, 124 sources, snapshot of the production database.