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 MKC74DER05Accident · No injuriesClosedAero Comdr A-9B · Winnebago, MNNTSB FTW74DPG10Accident · No injuriesClosedBell 47G · Black Rock, ARNTSB OAK74FVA12Accident · 1 fatalClosedConvair BT-15 · Madera, CANTSB LAX74AL012Accident · 1 fatalClosedMooney M-20C · Roosevlt Lk, AZNTSB DEN74FTE17Accident · 1 fatalClosedPiper PA-18 · Pritchett, CONTSB CHI74FEV12Accident · No injuriesClosedPiper PA-25 · Washington, ILNTSB OAK74DVA11Accident · No injuriesClosedBoeing A75 · Fresno, CANTSB FTW74DRD07Accident · No injuriesClosedGrumman G-164A · Bell City, LANTSB MIA74FKJ11Accident · 1 fatalClosedPiper PA-25 · Trinity, ALNTSB MKC74DCQ06Accident · No injuriesClosedCessna 188 · Lakin, KSNTSB MIA74FLA06Accident · No injuriesClosedBell 47G2 · High Springs, FLNTSB IAD74FIG06Accident · Minor injuriesClosedBell 47G-5 · Berlin, MDNTSB DEN74DTE10Accident · Minor injuriesClosedCessna 182H · Fraser, CONTSB CHI74FEV08Accident · No injuriesClosedBrantly B-2B · Eldred, ILNTSB MKC74FCQ11Accident · No injuriesClosedBoeing A75L · Ingalls, KSNTSB FTW74FQG03Accident · Serious injuriesClosedBoeing A75N1 · Perico, TXNTSB FTW74DPJ04Accident · No injuriesClosedBoeing A75N1 · Minco, OKNTSB SEA74FYA07Accident · Serious injuriesClosedPiper PA-25 · Goshen, IDNTSB OAK74DVA09Accident · No injuriesClosedBoeing A75N1 · Woodlake, CANTSB FTW74DRA07Accident · No injuriesClosedMooney M20F · Sugarland, TXNTSB MIA74DKJ08Accident · Minor injuriesClosedPiper PA-25 · Millers Ferry, ALNTSB MKC74DER04Accident · Serious injuriesClosedCallair A-9A · Grygla, MNNTSB MKC74AK004Accident · 2 fatalClosedCessna 150H · Hampton, IANTSB MIA74DLD11Accident · No injuriesClosedGrumman G-164A · Zolfo Springs, FLNTSB SEA74DYA05Accident · No injuriesClosedPiper PA-25 · Nampa, IDNTSB LAX74DUJ07Accident · Serious injuriesClosedCessna 188A · San Simon, AZNTSB IAD74DIJ04Accident · No injuriesClosedBell 47-G2A · Pulaski, VANTSB FTW74FRJ03Accident · Minor injuriesClosedBell 47G-5A · Shreveport, LANTSB CHI74FEK02Accident · Serious injuriesClosedCessna 150L · Gallion, OHNTSB DEN74FTC05Accident · Minor injuriesClosedAeronca 7BCM · Rock Springs, WYNTSB SEA74AS005Accident · 2 fatalClosedCessna 177 · Prospect, ORNTSB LAX74DUJ10Accident · No injuriesClosedTravel Air 4000 · Tollison, AZNTSB FTW74FRG05Accident · No injuriesClosedGrumman G-164 · Mcallen, TXNTSB OAK74DVD13Accident · No injuriesClosedPiper PA-25 · Stockton, CANTSB FTW74DPG09Accident · No injuriesClosedPiper J-3 · Arkadelphia, ARNTSB OAK74FVA07Accident · Minor injuriesClosedBoeing A75 · Tranquility, CANTSB FTW74FRG04Accident · Minor injuriesClosedSnow S2A · Harlingen, TXNTSB FTW74DRG06Accident · No injuriesClosedAero Comdr S2R · Mission, TXNTSB SEA74DYA04Accident · Serious injuriesClosedPiper PA-28 · Ironside, ORNTSB IAD74DLT02Accident · Serious injuriesClosedPiper PA-25 · Brownsville, TNNTSB FTW74FQG01Accident · Serious injuriesClosedPiper PA-18A · Plainview, TXNTSB MIA74AM006Accident · 3 fatalClosedCessna 150E · Andrews, SCNTSB LAX74DUJ04Accident · Minor injuriesClosedGrumman G-164A · Tonapah, AZNTSB FTW74FRD03Accident · No injuriesClosedGrumman G-164A · Lake Charles, LANTSB FTW74FPG05Accident · No injuriesClosedCallair A-5 · Arkadelphia, ARNTSB MIA74FKG05Accident · No injuriesClosedGrumman G-164 · Fitzgerald, GANTSB SEA74FYG01Accident · Minor injuriesClosedGrumman G164 · Sunnyside, WANTSB NYC74DHD03Accident · No injuriesClosedGrumman G-164 · Pittsgrove, NJNTSB IAD74FLJ03Accident · 1 fatalClosedPiper PA-18A · Kinston, NCNTSB SEA74FYE07Accident · Minor injuriesClosedKaman H-43A · Sultan, WA