NTSB investigations, Outside the U.S.
646 cases where the phase of flight was Takeoff.
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 = 300)
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 = 300)
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 DCA25WA292Incident · No injuriesClass 5 · ForeignBoeing 737-832 · Ciudad de México, MexicoNTSB ENG25WA047Accident · No injuriesClass 5 · ForeignViking DHC-2 MK. I (Beaver) · Lac du Poisson Blanc, CanadaNTSB GAA25WA208Accident · 4 fatalClass 5 · ForeignBeech B200 · Southend-on-Sea, United KingdomNTSB GAA25WA215Incident · No injuriesClass 5 · ForeignCessna 650 · Mallorca, SpainNTSB ENG25WA054IncidentClass 5 · ForeignPilatus PC12 · Kitakyushu, JapanNTSB GAA25WA207Accident · 1 fatalClass 5 · ForeignAir Tractor AT502 · Porto Dos GaúChos, BrazilNTSB GAA25WA262AccidentClass 5 · ForeignCessna P210 · Maklar, HungaryNTSB DCA25WA232AccidentClass 2 · ForeignBoeing 787 · Ahmedabad, IndiaNTSB ENG25LA038IncidentClass 3 · LimitedPreliminary reportBoeing 777 · Beijing, ChinaOn May 26, 2025, at approximately 0925 UTC, a Boeing 777-200, registration N793UA, operated as United Airlines flight 889, executed a rejected takeoff at Beijing Capital International Airport when the crew heard a loud bang and followed by a No. 2 (right)…NTSB GAA25WA169Accident · No injuriesClass 5 · ForeignCessna F182 · Šeduva, LithuaniaNTSB GAA25WA167Accident · Serious injuriesClass 5 · ForeignCessna 188 · Pasaje, EcuadorNTSB GAA25WA165AccidentClass 5 · ForeignPiper PA-22-108 · Norfolk, United KingdomNTSB GAA25WA170Accident · No injuriesClass 5 · ForeignPiper PA 46-350P · Kilkeel, United KingdomNTSB GAA25WA182Accident · 1 fatalClass 3 · ForeignTecnam P2008 · Amreli, IndiaNTSB ENG25WA030Incident · No injuriesClass 5 · ForeignBoeing 737 · Budapest, HungaryNTSB DCA25WA301IncidentClass 5 · ForeignBoeing 737 · Luton, United KingdomNTSB GAA25WA148AccidentClass 5 · ForeignCessna F150 · Gliwice, PolandNTSB GAA25WA140Accident · Minor injuriesClass 5 · ForeignCessna 150 · Campina Grande, BrazilNTSB GAA25WA130Accident · 2 fatalClass 5 · ForeignCessna 152 · Lingayen, PhilippinesNTSB GAA25WA124Accident · No injuriesClass 5 · ForeignCessna T188 · La Concordia, EcuadorNTSB DCA25WA124OccurrenceClass 5 · ForeignBoeing 737 · Rio de janiero, BrazilNTSB GAA25WA094Accident · 2 fatalClass 5 · ForeignBeecraft F90 · São Paulo city, BrazilNTSB GAA25WA077Accident · 1 fatalClass 5 · ForeignRobinson R44 · Pacific Ocean, EcuadorNTSB DCA25WA118Accident · 20 fatalClass 5 · ForeignBeech 1900 · Juba, SudanNTSB ENG25WA018Incident · No injuriesClass 3 · ForeignBoeing 737 · Cochabamba, BoliviaNTSB GAA25WA087Accident · No injuriesClass 5 · ForeignCessna 172 · Pará De Minas - Minas Gerais, BrazilNTSB DCA25WA111Incident · No injuriesClass 5 · ForeignBoeing 737-800 · Dubai, United Arab EmiratesNTSB ENG25WA019Incident · No injuriesClass 5 · ForeignAirbus A321-271N · Hermosillo, MexicoNTSB GAA25WA067Accident · No injuriesClass 5 · ForeignPiper PA31 · Canelillos, ChileNTSB DCA25WA098IncidentClass 5 · ForeignBoeing 757 · Brussels, BelgiumNTSB GAA25WA052Accident · 3 fatalClass 5 · ForeignCessna 208 · Rottnest Island, AustraliaNTSB ENG25WA029IncidentClass 5 · ForeignBoeing 737 · Oslo, NorwayNTSB GAA25WA048Accident · 10 fatalClass 3 · ForeignPiper PA42 · Gramado, BrazilNTSB GAA25WA041Accident · No injuriesClass 5 · ForeignCessna 188 · Barra Bonita, BrazilNTSB GAA25WA039Accident · Serious injuriesClass 5 · ForeignCessna Cessna FA 150L · Watorowo, PolandNTSB DCA25WA053IncidentClass 5 · ForeignBoeing 767 · Bogotá, ColombiaNTSB DCA25WA051Incident · No injuriesClass 5 · ForeignAirbus 320 · Pereira, ColombiaNTSB ENG25WA039AccidentClass 5 · ForeignDiamond DA42 · Ben Slimane, MoroccoNTSB GAA25WA022Accident · Serious injuriesClass 5 · ForeignBell 205 · Región del Maule, ChileNTSB DCA25WA121Incident · No injuriesClass 5 · ForeignBoeing 737 · Dublin, IrelandNTSB DCA25WA032IncidentClass 5 · ForeignBoeing 727 · Bogotá, ColombiaNTSB ENG25WA005IncidentClass 5 · ForeignBoeing 737 · Sydney, Australia, AustraliaNTSB ENG25WA003Incident · No injuriesClass 5 · ForeignAirbus A320 · Barcelona, SpainNTSB GAA25WA017Accident · No injuriesClass 5 · ForeignAir Tractor AT301 · Zona-Bananera-Magdalena, ColombiaNTSB ENG25WA002OccurrenceClass 5 · ForeignTextron Beech G58 · Okayama, JapanNTSB DCA25WA028Incident · No injuriesClass 5 · ForeignBoeing 767-332 · Ndiass, SenegalNTSB GAA25WA012Accident · 2 fatalClass 5 · ForeignNorth American SNJ-3 · Räyskälä, FinlandNTSB GAA25WA007Accident · 2 fatalClass 5 · ForeignCirrus Design SR22 · La Bretonnière la Claye, FranceNTSB GAA25WA005Accident · 3 fatalClass 5 · ForeignCessna 404 · Les Cayes, HaitiNTSB GAA24WA303Accident · Minor injuriesClass 4 · ForeignCessna T182 · Cuiabá - Mato Grosso, Brazil