NTSB investigations, Outside the U.S.
545 cases where the phase of flight was Maneuvering.
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 = 450)
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 = 450)
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 GAA25WA072Accident · No injuriesClass 5 · ForeignAir Tractor AT402 · Itumbiara, BrazilNTSB GAA25WA054Accident · Minor injuriesClass 3 · ForeignCessna 188 · Colon, EcuadorNTSB GAA25WA042Accident · 1 fatalClass 5 · ForeignChampion 8KCAB · Vélez-Málaga, SpainNTSB GAA25WA045Accident · 2 fatalClass 5 · ForeignChristen Eagle II · Santiago, ChileNTSB GAA25WA038Accident · Serious injuriesClass 5 · ForeignThrush S2R · Teyman, IsraelNTSB GAA25WA037Accident · 1 fatalClass 5 · ForeignRobinson R44 · Maimuru, AustraliaNTSB GAA25WA031Accident · 1 fatalClass 5 · ForeignAerospatiale AS332L · Broken Hill, AustraliaNTSB GAA25WA028Accident · No injuriesClass 5 · ForeignMD Helicopter 369 · Langtora, SwedenNTSB GAA25WA029Accident · 1 fatalClass 5 · ForeignAir Tractor AT602 · SãO Paulo, BrazilNTSB GAA25WA281Accident · Serious injuriesClass 4 · ForeignAir Tractor AT-504 · Gizan, Saudi ArabiaNTSB GAA24WA291Accident · Minor injuriesClass 5 · ForeignGrumman G164 · Rivera, UruguayNTSB ENG24WA037AccidentClass 5 · ForeignTecnam P2008 · Abia de las Torres, SpainNTSB GAA24WA276Accident · 1 fatalClass 5 · ForeignBoeing E75 · Frohngau, GermanyNTSB GAA24WA275Accident · No injuriesClass 5 · ForeignCessna 152 · Daszewice, PolandNTSB GAA24WA268Accident · 1 fatalClass 5 · ForeignAir Tractor AT802 · La Riola, ArgentinaNTSB GAA24WA234Accident · No injuriesClass 5 · ForeignEurocopter AS 350 B2 Ecureuil · Laredo/Border, MexicoNTSB GAA24WA227Accident · 2 fatalClass 5 · ForeignRobinson R22 · Curtin, AustraliaNTSB GAA24WA232Accident · 1 fatalClass 5 · ForeignEarthstar E Gull 2000 · New Brunswick, CanadaNTSB GAA24WA218AccidentClass 5 · ForeignCessna 188 · Payo, EcuadorNTSB GAA24WA207Accident · No injuriesClass 5 · ForeignSchweizer 269C · BeléM - Pará - Brasil, BrazilNTSB GAA24WA220Accident · 1 fatalClass 5 · ForeignRobinson R22 · Brasil Novo, BrazilNTSB GAA24WA205Accident · 1 fatalClass 5 · ForeignCessna 172 · Mulgathing, AustraliaNTSB GAA24WA248Accident · Minor injuriesClass 5 · ForeignEurocopter AS350 · Wawa, CanadaNTSB GAA24WA311Accident · 1 fatalClass 5 · ForeignAir Tractor AT-502 · West Wyalong, AustraliaNTSB GAA24WA174Accident · Minor injuriesClass 5 · ForeignPiper PA25 · Lorenzo de Garaicoa, EcuadorNTSB ENG24WA038Incident · No injuriesClass 3 · ForeignDornier 328 · Zurich, SwitzerlandNTSB GAA24WA149Accident · Minor injuriesClass 5 · ForeignBell 206 · State of Mato Grosso do Sul, MS, BrazilNTSB GAA24WA173AccidentClass 5 · ForeignPiper PA-25 · Trissa Charkaoua, MoroccoNTSB GAA24WA143Accident · 2 fatalClass 5 · ForeignExtra 300 · Tokol, Hungary, HungaryNTSB GAA24WA132Accident · 1 fatalClass 5 · ForeignCessna A188 · Lucas Do Rio Verde, BrazilNTSB GAA24WA108AccidentClass 5 · ForeignCessna 172M · Wilson Airport, KenyaNTSB GAA24WA142AccidentClass 5 · ForeignRockwell Commander · Dortmond, GermanyNTSB GAA24WA119Incident · No injuriesClass 5 · ForeignAgusta AW139 · Kawajima, JapanNTSB GAA24WA100AccidentClass 5 · ForeignBell 407 · Midrand, South AfricaNTSB GAA24WA093AccidentClass 5 · ForeignAir Tractor AT-502 · Bourke, AustraliaNTSB GAA24WA081Accident · Minor injuriesClass 5 · ForeignHughes 369 · Erharting, GermanyNTSB GAA24WA070AccidentClass 5 · ForeignThrush S2R · Región del Maule, ChileNTSB GAA24WA061Accident · 3 fatalClass 5 · ForeignAir Tractor AT502 · Carletonville, South AfricaNTSB GAA24WA053AccidentClass 5 · ForeignAir Tractor AT301 · Orihueca, ColombiaNTSB GAA24WA052Accident · 5 fatalClass 3 · ForeignBell 412 · Arau, GuyanaNTSB GAA24WA047Accident · Serious injuriesClass 5 · ForeignBell Helicopter Textron 206L-1 · El Mirador, GuatemalaNTSB GAA24WA045Accident · Minor injuriesClass 5 · ForeignCessna 172 · Vera Cruz, BrazilNTSB GAA24WA044Accident · 1 fatalClass 4 · ForeignRobinson R66 · Ramallo, ArgentinaNTSB GAA24WA043Accident · 4 fatalClass 5 · ForeignRockwell 112 · Kasberg, Grünau im Almtal, AustriaNTSB GAA24WA024Accident · 4 fatalClass 3 · ForeignRobinson R44 · Cirque de Salazie, RéunionNTSB GAA24WA013Accident · 1 fatalClass 5 · ForeignCessna 208 · Monêtier-Allemont, FranceNTSB GAA23WA279Accident · No injuriesClass 5 · ForeignHughes 369 · Middlesmoor, United KingdomNTSB GAA23WA269Accident · No injuriesClass 5 · ForeignBell 204B · Aratula, AustraliaNTSB GAA23WA264Accident · No injuriesClass 5 · ForeignCessna 170 · Doutor Ulysses, BrazilNTSB GAA23WA253Accident · 2 fatalClass 5 · ForeignNorth American T28 · Székesfehérvár, Hungary