NTSB investigations, Outside the U.S.
1,774 cases where the phase of flight was Enroute.
Cases, newest first
Query with SQL
duckdb -csv -c "WITH phase_names(main, name) AS (VALUES (100, 'Prior to flight'), (150, 'Standing'), (200, 'Pushback/towing'), (250, 'Taxi'), (300, 'Takeoff'), (350, 'Initial climb'), (400, 'Enroute'), (450, 'Maneuvering'), (500, 'Approach'), (550, 'Landing'), (600, 'Emergency descent'), (650, 'Uncontrolled descent'), (700, 'Post-impact'), (750, 'After landing'), (800, 'Other'), (990, 'Unknown')),
crosswalk(code, main, name) AS (VALUES (500, 150, 'Standing'), (501, 150, 'Standing - pre-flight'), (502, 150, 'Standing - starting engine(s)'), (503, 150, 'Standing - engine(s) operating'), (504, 150, 'Standing - engine(s) not operating'), (505, 150, 'Standing - idling rotors'), (510, 250, 'Taxi'), (511, 200, 'Taxi - pushback/tow'), (512, 250, 'Taxi - to takeoff'), (513, 250, 'Taxi - from landing'), (514, 250, 'Taxi - aerial'), (520, 300, 'Takeoff'), (521, 300, 'Takeoff - roll/run'), (522, 350, 'Takeoff - initial climb'), (523, 300, 'Takeoff - aborted'), (530, 400, 'Climb'), (531, 400, 'Climb - to cruise'), (540, 400, 'Cruise'), (541, 400, 'Cruise - normal'), (542, 400, 'Maneuvering - holding (IFR)'), (550, 400, 'Descent'), (551, 400, 'Descent - normal'), (552, 600, 'Descent - emergency'), (553, 650, 'Descent - uncontrolled'), (560, 500, 'Approach'), (561, 500, 'Approach - VFR pattern - downwind'), (562, 500, 'Approach - VFR pattern - base turn'), (563, 500, 'Approach - VFR pattern - base leg/base to final'), (564, 500, 'Approach - VFR pattern - final approach'), (565, 500, 'Go-around (VFR)'), (566, 500, 'Approach - IAF to FAF/outer marker (IFR)'), (567, 500, 'Approach - FAF/outer marker to threshold (IFR)'), (568, 500, 'Circling (IFR)'), (569, 500, 'Missed approach (IFR)'), (570, 550, 'Landing'), (571, 550, 'Landing - flare/touchdown'), (572, 550, 'Landing - roll'), (573, 550, 'Landing - aborted'), (574, 550, 'Emergency landing'), (575, 550, 'Emergency landing after takeoff'), (576, 600, 'Emergency descent/landing'), (580, 450, 'Maneuvering'), (581, 450, 'Maneuvering - aerial application'), (582, 450, 'Maneuvering - turn to reverse direction'), (583, 450, 'Maneuvering - turn to landing area (emergency)'), (590, 450, 'Hover'), (591, 450, 'Hover - in ground effect'), (592, 450, 'Hover - out of ground effect'), (600, 800, 'Other'), (610, 990, 'Unknown')),
current_codes AS (
SELECT e.case_mkey, TRY_CAST(e.\"tier1Number\" AS INTEGER) AS code,
row_number() OVER (PARTITION BY e.case_mkey ORDER BY coalesce(e.\"isDefiningEvent\", false) DESC, e.position) AS n
FROM 'https://openairdocs.org/data/latest/ntsb_events.parquet' e
WHERE e.aircrafts_position = 1 AND e.\"tier1Number\" GLOB '[1-9][0-9]*'
AND (e.\"isDefiningEvent\" OR e.case_mkey IN (SELECT \"mKey\" FROM 'https://openairdocs.org/data/latest/ntsb_case_detail.parquet' WHERE \"isPre1982\"))
),
phases AS (
SELECT case_mkey, 'current' AS scheme, code, CASE WHEN code >= 990 THEN 990 ELSE code // 50 * 50 END AS main
FROM current_codes WHERE n = 1
UNION ALL
SELECT o.case_mkey, 'older', o.\"phaseOfFlightCode\", w.main
FROM 'https://openairdocs.org/data/latest/ntsb_occurrences.parquet' o JOIN crosswalk w ON w.code = o.\"phaseOfFlightCode\"
WHERE o.aircrafts_position = 1 AND o.\"occurrenceNumber\" = 1 AND o.case_mkey NOT IN (SELECT case_mkey FROM current_codes)
),
case_phases AS (
SELECT p.*, c.\"eventDate\", c.\"highestInjuryLevel\" = 'Fatal' AS fatal, a.aircraft_model_code
FROM phases p JOIN 'https://openairdocs.org/data/latest/ntsb_case_detail.parquet' c ON c.\"mKey\" = p.case_mkey
LEFT JOIN 'https://openairdocs.org/data/latest/ntsb_aircrafts.parquet' a ON a.case_mkey = p.case_mkey AND a.position = 1
WHERE c.\"eventDate\" >= DATE '1962-01-01' AND p.main IN (SELECT main FROM phase_names)
)
SELECT c.\"ntsbNumber\", c.\"eventDate\", c.\"eventType\", c.\"eventCity\", c.\"eventStateOrRegion\", a.n_number, a.\"aircraftMake\", a.\"aircraftModel\", c.\"highestInjuryLevel\", c.\"totalFatal\", c.\"completionStatus\", c.report_url
FROM 'https://openairdocs.org/data/latest/ntsb_case_detail.parquet' c LEFT JOIN 'https://openairdocs.org/data/latest/ntsb_aircrafts.parquet' a ON a.case_mkey = c.\"mKey\" AND a.position = 1
WHERE c.\"eventCountry\" <> 'USA'
AND c.\"mKey\" IN (SELECT case_mkey FROM case_phases WHERE main = 400)
ORDER BY c.\"eventDate\" DESC, c.\"ntsbNumber\" DESC"Prints the whole list as CSV. It reads the release’s Parquet files over HTTPS, so there’s nothing to download first. Install DuckDB to run it.
WITH phase_names(main, name) AS (VALUES (100, 'Prior to flight'), (150, 'Standing'), (200, 'Pushback/towing'), (250, 'Taxi'), (300, 'Takeoff'), (350, 'Initial climb'), (400, 'Enroute'), (450, 'Maneuvering'), (500, 'Approach'), (550, 'Landing'), (600, 'Emergency descent'), (650, 'Uncontrolled descent'), (700, 'Post-impact'), (750, 'After landing'), (800, 'Other'), (990, 'Unknown')),
crosswalk(code, main, name) AS (VALUES (500, 150, 'Standing'), (501, 150, 'Standing - pre-flight'), (502, 150, 'Standing - starting engine(s)'), (503, 150, 'Standing - engine(s) operating'), (504, 150, 'Standing - engine(s) not operating'), (505, 150, 'Standing - idling rotors'), (510, 250, 'Taxi'), (511, 200, 'Taxi - pushback/tow'), (512, 250, 'Taxi - to takeoff'), (513, 250, 'Taxi - from landing'), (514, 250, 'Taxi - aerial'), (520, 300, 'Takeoff'), (521, 300, 'Takeoff - roll/run'), (522, 350, 'Takeoff - initial climb'), (523, 300, 'Takeoff - aborted'), (530, 400, 'Climb'), (531, 400, 'Climb - to cruise'), (540, 400, 'Cruise'), (541, 400, 'Cruise - normal'), (542, 400, 'Maneuvering - holding (IFR)'), (550, 400, 'Descent'), (551, 400, 'Descent - normal'), (552, 600, 'Descent - emergency'), (553, 650, 'Descent - uncontrolled'), (560, 500, 'Approach'), (561, 500, 'Approach - VFR pattern - downwind'), (562, 500, 'Approach - VFR pattern - base turn'), (563, 500, 'Approach - VFR pattern - base leg/base to final'), (564, 500, 'Approach - VFR pattern - final approach'), (565, 500, 'Go-around (VFR)'), (566, 500, 'Approach - IAF to FAF/outer marker (IFR)'), (567, 500, 'Approach - FAF/outer marker to threshold (IFR)'), (568, 500, 'Circling (IFR)'), (569, 500, 'Missed approach (IFR)'), (570, 550, 'Landing'), (571, 550, 'Landing - flare/touchdown'), (572, 550, 'Landing - roll'), (573, 550, 'Landing - aborted'), (574, 550, 'Emergency landing'), (575, 550, 'Emergency landing after takeoff'), (576, 600, 'Emergency descent/landing'), (580, 450, 'Maneuvering'), (581, 450, 'Maneuvering - aerial application'), (582, 450, 'Maneuvering - turn to reverse direction'), (583, 450, 'Maneuvering - turn to landing area (emergency)'), (590, 450, 'Hover'), (591, 450, 'Hover - in ground effect'), (592, 450, 'Hover - out of ground effect'), (600, 800, 'Other'), (610, 990, 'Unknown')),
current_codes AS (
SELECT e.case_mkey, TRY_CAST(e."tier1Number" AS INTEGER) AS code,
row_number() OVER (PARTITION BY e.case_mkey ORDER BY coalesce(e."isDefiningEvent", false) DESC, e.position) AS n
FROM 'https://openairdocs.org/data/latest/ntsb_events.parquet' e
WHERE e.aircrafts_position = 1 AND e."tier1Number" GLOB '[1-9][0-9]*'
AND (e."isDefiningEvent" OR e.case_mkey IN (SELECT "mKey" FROM 'https://openairdocs.org/data/latest/ntsb_case_detail.parquet' WHERE "isPre1982"))
),
phases AS (
SELECT case_mkey, 'current' AS scheme, code, CASE WHEN code >= 990 THEN 990 ELSE code // 50 * 50 END AS main
FROM current_codes WHERE n = 1
UNION ALL
SELECT o.case_mkey, 'older', o."phaseOfFlightCode", w.main
FROM 'https://openairdocs.org/data/latest/ntsb_occurrences.parquet' o JOIN crosswalk w ON w.code = o."phaseOfFlightCode"
WHERE o.aircrafts_position = 1 AND o."occurrenceNumber" = 1 AND o.case_mkey NOT IN (SELECT case_mkey FROM current_codes)
),
case_phases AS (
SELECT p.*, c."eventDate", c."highestInjuryLevel" = 'Fatal' AS fatal, a.aircraft_model_code
FROM phases p JOIN 'https://openairdocs.org/data/latest/ntsb_case_detail.parquet' c ON c."mKey" = p.case_mkey
LEFT JOIN 'https://openairdocs.org/data/latest/ntsb_aircrafts.parquet' a ON a.case_mkey = p.case_mkey AND a.position = 1
WHERE c."eventDate" >= DATE '1962-01-01' AND p.main IN (SELECT main FROM phase_names)
)
SELECT c."ntsbNumber", c."eventDate", c."eventType", c."eventCity", c."eventStateOrRegion", a.n_number, a."aircraftMake", a."aircraftModel", c."highestInjuryLevel", c."totalFatal", c."completionStatus", c.report_url
FROM 'https://openairdocs.org/data/latest/ntsb_case_detail.parquet' c LEFT JOIN 'https://openairdocs.org/data/latest/ntsb_aircrafts.parquet' a ON a.case_mkey = c."mKey" AND a.position = 1
WHERE c."eventCountry" <> 'USA'
AND c."mKey" IN (SELECT case_mkey FROM case_phases WHERE main = 400)
ORDER BY c."eventDate" DESC, c."ntsbNumber" DESCRun it at the DuckDB prompt, or in any tool that reads Parquet over HTTPS. More ways to query the release are on Use the data.
NTSB DCA26WA171Accident · Minor injuriesClass 5 · ForeignBoeing 737 · Reus, SpainNTSB DCA26WA170Accident · Serious injuriesClass 5 · ForeignBoeing 737 · Balneario de Panticosa, SpainNTSB DCA26WA166Accident · Serious injuriesClass 5 · ForeignBoeing 737 · Bari, ItalyNTSB GAA26WA155Incident · No injuriesClass 5 · ForeignDassault Falcon 20E-5 · Kecskemét, HungaryNTSB GAA26WA130Accident · 1 fatalClass 5 · ForeignRobinson R44 · Drake, AustraliaNTSB DCA26WA154Incident · No injuriesClass 5 · ForeignBoeing 747 · Almaty, KazakhstanNTSB DCA26WA152Incident · No injuriesClass 5 · ForeignAirbus A321 · Málaga, SpainNTSB DCA26WA117Incident · No injuriesClass 5 · ForeignBoeing 777 · Atlantic Ocean, United KingdomNTSB DCA26WA116Incident · No injuriesClass 3 · ForeignBoeing 737 · Benin City, NigeriaNTSB GAA26WA108Accident · Minor injuriesClass 5 · ForeignCessna 172M · Mangalur, IndiaNTSB GAA26WA102Accident · 1 fatalClass 5 · ForeignBeech 200 · Normanton, AustraliaNTSB DCA26WA122Incident · No injuriesClass 5 · ForeignBoeing 737 · Jasionka, PolandNTSB DCA26WA113Accident · 2 fatalClass 5 · ForeignEmbraer EMB-110P1 · Les Cayes, HaitiNTSB GAA26WA092Accident · No injuriesClass 5 · ForeignPiper PA31 · Las Cayes, HaitiNTSB DCA26WA105Accident · 15 fatalClass 5 · ForeignBeech 1900 · Santander, ColombiaNTSB GAA26WA086Accident · 2 fatalClass 5 · ForeignVans RV-8A · Norwell, AustraliaNTSB GAA26WA114AccidentClass 5 · ForeignRobinson R44 · Hamilton Island, AustraliaNTSB GAA26WA099Occurrence · No injuriesClass 5 · ForeignCirrus SR22 · Tarrengower, AustraliaNTSB DCA26WA092Incident · No injuriesClass 5 · ForeignSaab SF340 · Auckland, New ZealandNTSB GAA26WA070Accident · Serious injuriesClass 5 · ForeignCessna 208 · Kansar, IndiaNTSB DCA26WA094IncidentClass 5 · ForeignBoeing 737 · Shymkent, KazakhstanNTSB GAA26WA076Accident · No injuriesClass 5 · ForeignBell 206 · Queensland, AustraliaNTSB GAA26WA055Accident · No injuriesClass 5 · ForeignCessna A188 · Chuy, UruguayNTSB DCA26WA078Accident · Serious injuriesClass 5 · ForeignBoeing 787 · Chiba, JapanNTSB GAA26WA058Accident · No injuriesClass 5 · ForeignBeech B200 · Porto Vehlo, BrazilNTSB GAA26WA057Accident · 1 fatalClass 5 · ForeignLancair 360 · Mazarambroz, SpainNTSB GAA26WA062IncidentClass 5 · ForeignLockheed Martin C-130H · Katanning, AustraliaNTSB GAA26WA051Accident · 2 fatalClass 5 · ForeignBell 206 · Ranana, New ZealandNTSB GAA26WA048Accident · Minor injuriesClass 5 · ForeignCessna 172N · Serakseevo township, RussiaNTSB GAA26WA047Accident · Minor injuriesClass 5 · ForeignCessna 172 · Trinidad, BoliviaNTSB DCA26WA138Incident · No injuriesClass 5 · ForeignATR ATR42 · Hakodate, JapanNTSB DCA26WA075IncidentClass 5 · ForeignBoeing 737 · Balice, PolandNTSB GAA26WA042Accident · No injuriesClass 5 · ForeignPiper PA32RT · Maracaibo, VenezuelaNTSB DCA26WA057Incident · No injuriesClass 5 · ForeignBoeing 767 · Nan Ning Shi, ChinaNTSB GAA26WA035Accident · No injuriesClass 5 · ForeignRobinson R22 · Chillagoe, AustraliaNTSB GAA26WA031Accident · No injuriesClass 5 · ForeignBell 206 · Uruyen, VenezuelaNTSB DCA26WA043AccidentClass 5 · ForeignBoeing 737 · Tomakomai, JapanNTSB ENG26WA008IncidentClass 5 · ForeignAirbus A340 · Sakaka, Saudi ArabiaNTSB DCA26WA038OccurrenceClass 5 · ForeignEmbraer ERJ170 · Toronto, CanadaNTSB ENG26WA010OccurrenceClass 5 · ForeignDe Havilland DHC3 · Lake Rotorua, New ZealandNTSB ENG26WA007OccurrenceClass 5 · ForeignAirbus A321 · Mexico City, MexicoNTSB GAA26WA020Accident · No injuriesClass 5 · ForeignCessna 172 · Trinidad, BoliviaNTSB DCA26WA029Incident · No injuriesClass 5 · ForeignMcdonnell Douglas MD88 · Mashhad, IranNTSB GAA26WA019Accident · 1 fatalClass 4 · ForeignRans S9 · San Felipe, ChileNTSB GAA26WA046Incident · No injuriesClass 5 · ForeignCirrus SF50 · Oberweningen, SwitzerlandNTSB GAA26WA013Incident · No injuriesClass 5 · ForeignCessna 210 · Ilopango, El SalvadorNTSB GAA26WA200Accident · 1 fatalClass 5 · ForeignBRM Aero Bristell NG5 · Bacani, Vaslui, RomaniaNTSB DCA26WA020Incident · No injuriesClass 5 · ForeignBoeing 737 · Bintulu, MalaysiaNTSB ENG26WA003Incident · No injuriesClass 4 · ForeignSikorsky S92 · Rio De Janeiro, BrazilNTSB DCA26WA056Incident · No injuriesClass 3 · ForeignBoeing 737 · Buenos Aires, Argentina