NTSB investigations
18,851 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.\"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."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 DEN74FTE18Accident · No injuriesClosedHughes 269A · Ft Collins, CONTSB MIA74FK608Accident · Serious injuriesClosedAeronca 7AC · Belzoni, MSNTSB FTW74DPD09Accident · No injuriesClosedPiper PA-25 · Munday, TXNTSB SEA74DYE12Accident · No injuriesClosedHughes 269A · Eatonville, WANTSB MIA74FLT02Accident · No injuriesClosedCallair A-9 · Coldwater, MSNTSB ANC74DAG35Accident · Minor injuriesClosedPiper PA-28 · Rainy Pass, AKNTSB FTW74FRA14Accident · Serious injuriesClosedZlin Z526 · San Leon, TXNTSB MIA74FLG12Accident · Serious injuriesClosedPiper PA-18A · Fairfax, SCNTSB CHI73FEC09Accident · No injuriesClosedBensen Hydro · Bellevile Lk, MINTSB IAD74AI014Accident · 1 fatalClosedCessna 150 · Eddyville, KYNTSB MIA74DLG09Accident · Minor injuriesClosedPiper PA-18A · Bishopville, SCNTSB FTW74FPG19Accident · Serious injuriesClosedCessna 188 · Marvell, ARNTSB MKC74DCD13Accident · No injuriesClosedAero Comdr A-9 · Jefferson, IANTSB LAX74FVA17Accident · 1 fatalClosedBoeing E75 · Bakersfield, CANTSB MIA74DKJ20Accident · No injuriesClosedAero Comdr A-9B · Hazel Green, ALNTSB LAX74DUJ14Accident · No injuriesClosedPiper PA-25 · Picacho, AZNTSB IAD74DIJ01Accident · Serious injuriesClosedBell 47-G4 · Nora, VANTSB IAD74DID10Accident · No injuriesClosedPiper PA-25 · Parksley, VANTSB FTW74DRD08Accident · Minor injuriesClosedGrumman G-164A · Welsh, LANTSB FTW74DPG17Accident · No injuriesClosedPiper J-3 · Stuttgart, ARNTSB FTW74DPG16Accident · No injuriesClosedGrumman G-164 · Clarkedale, ARNTSB SEA74FYG13Accident · Serious injuriesClosedHughes 369HS · Packwood, WANTSB ANC74AA029Accident · 2 fatalClosedBeech 35 · Talkeetna, AKNTSB MIA74FLG08Accident · No injuriesClosedPiper J3C-65 · Ulmers, SCNTSB MIA74FKG19Accident · 1 fatalClosedBoeing A75 · Cordele, GANTSB MIA74FKG18Accident · Serious injuriesClosedAero Comdr S2R · Pineview, GANTSB MIA74DLG07Accident · No injuriesClosedCessna 188 · Bennettsville, SCNTSB FTW74FRJ12Accident · Minor injuriesClosedPiper PA-25 · Rayville, LANTSB NYC74DFJ06Accident · 1 fatalClosedJeanies Teenie · Homer, NYNTSB FTW74DRG16Accident · No injuriesClosedBell 47G-2 · Harlingen, TXNTSB MKC74FCJ06Accident · No injuriesClosedPiper PA-25 · Thurston, NENTSB MKC74DER06Accident · Minor injuriesClosedCallair A-9 · Stephen, MNNTSB MIA74FKQ06Accident · 1 fatalClosedCessna A188B · Vaiden, MSNTSB MIA74FKG16Accident · No injuriesClosedAero Comdr A-9B · Statesboro, GANTSB MIA74FKQ07Accident · No injuriesClosedAero Comdr A-9B · Yazoo City, MSNTSB FTW74FQG07Accident · No injuriesClosedWaco UPF-7 · Dimmitt, TXNTSB CHI74AC015Accident · 1 fatalClosedStinson L-5E · Demotte, INNTSB NYC74FHA06Accident · No injuriesClosedBell 47D1 · Stockertown, PANTSB MIA74FLA09Accident · 1 fatalClosedPiper PA-18 · Paxton, FLNTSB MIA74DKQ05Accident · No injuriesClosedAero Comdr A9-B · Edwards, MSNTSB IAD74FLJ10Accident · 1 fatalClosedPiper PA-18A · Grantham, NCNTSB FTW74DRJ08Accident · No injuriesClosedTaylorcraft BC12-D · Collingston, LANTSB FTW74FPJ06Accident · 1 fatalClosedEL Tomcat MK5 · Springer, OKNTSB ANC74FAA05Accident · No injuriesClosedPiper PA-22 · Iowa Ridge, AKNTSB MKC74FCD07Accident · 1 fatalClosedPiper PA-18A · Dougherty, IANTSB FTW74FQG09Accident · No injuriesClosedAero Comdr 600S2R · Dimmitt, TXNTSB SEA74DYA08Accident · No injuriesClosedPiper PA-18A · Mud Lake, IDNTSB CHI74FEV11Accident · Serious injuriesClosedGrumman G-164A · Towanda, ILNTSB CHI74FEP09Accident · Minor injuriesClosedCessna 120 · Okauchee, WINTSB MIA74FLA07Accident · No injuriesClosedGrumman G-164A · Graceville, FL