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 MIA78FKG60Accident · 1 fatalClosedPiper PA-25 · Cordele, GANTSB FTW78FRD45Accident · No injuriesClosedCessna 188 · La Place, LANTSB CHI78FET26Accident · Serious injuriesClosedPiper PA-25 · Logansport, INNTSB NYC78FHJ16Accident · No injuriesClosedBell 47G · Cutchogue, NYNTSB IAD78FID11Accident · Serious injuriesClosedCessna 150 · Farmville, VANTSB FTW78FA058Accident · 1 fatalClosedBell 206B · Cameron, LANTSB CHI78FA046Accident · 1 fatalClosedCessna 170B · Ann Arbor, MINTSB MKC78FTG13Accident · No injuriesClosedPiper PA-25C · Minot, NDNTSB MKC78DCD38Accident · No injuriesClosedPiper PA-36 · Steamboat Rock, IANTSB IAD78FA076Accident · 2 fatalClosedAeronca 7AC · Vanceboro, NCNTSB MKC78FCA37Accident · Serious injuriesClosedPiper PA-25 · Ptg Des Sioux, MONTSB FTW78FA056Accident · 3 fatalClosedCessna 182P · Hollis, OKNTSB CHI78DEI28Accident · Serious injuriesClosedHughes 269C · Chesterland, OHNTSB LAX78FA059Accident · 3 fatalClosedMooney M20E · Ajo, AZNTSB FTW78FA055Accident · 2 fatalClosedBellanca 7GCBC · San Jose Isl, TXNTSB LAX78FUJ74Accident · 1 fatalClosedPitts S-1T · Taylor, AZNTSB IAD78FLJ18Accident · Minor injuriesClosedPiper PA-25 · Vanceboro, NCNTSB FTW78FQG38Accident · Serious injuriesClosedPiper PA-28 · Christoval, TXNTSB FTW78FPJ29Accident · 1 fatalClosedBellanca 8GCBC · Hinton, OKNTSB OAK78DVA52Accident · No injuriesClosedCessna 188B · Modesto, CANTSB MKC78FER66Accident · Serious injuriesClosedPiper PA-25 · Corvuso, MNNTSB MKC78FCG42Accident · Serious injuriesClosedBoeing E75-N1 · Olathe, KSNTSB MIA78FKQ17Accident · No injuriesClosedPiper PA-25 · Schlater, MSNTSB LAX78DUM29Accident · Serious injuriesClosedNaval Fcty N3N-3 · Brawley, CANTSB CHI78FEE61Accident · No injuriesClosedMurphy RV3 · Streator, ILNTSB SEA78DYM37Accident · No injuriesClosedCessna 188A · Enterprise, ORNTSB NYC78FGT10Accident · Serious injuriesClosedSikorsky S58DT · Harrisburg, PANTSB MKC78DER64Accident · No injuriesClosedBoeing A-75 · Felton, MNNTSB MKC78DCJ23Accident · Minor injuriesClosedPiper PA-25 · North Platte, NENTSB FTW78DPG54Accident · No injuriesClosedAero Comdr S-2R · Alicia, ARNTSB CHI78DEG13Accident · No injuriesClosedHughes 269B · Tipp City, OHNTSB MIA78FLD57Accident · Minor injuriesClosedCessna 180H · New Smyrna Bch, FLNTSB FTW78FPG51Accident · No injuriesClosedGrumman G-164A · Stuttgart, ARNTSB FTW78FQG37Accident · No injuriesClosedHughes 269C · Lazbuddie, TXNTSB SEA78DYP34Accident · No injuriesClosedPiper PA-28 · Methow, WANTSB NYC78DNC34Accident · No injuriesClosedBoeing A75 · Jay, MENTSB IAD78FIG10Accident · Serious injuriesClosedChampion 7KCAB · Oakland, MDNTSB MKC78FTG12Accident · Serious injuriesClosedBellanca 7GCBC · Voltaire, NDNTSB FTW78FPG50Accident · No injuriesClosedAero Comdr S-2R · Montrose, ARNTSB SEA78DYP35Accident · No injuriesClosedBell 47G · Anatone, WANTSB MIA78FA098Accident · 1 fatalClosedHughes 269C · Atlanta, GANTSB CHI78FEV40Accident · No injuriesClosedCessna A188B · Ramsey, ILNTSB OAK78FVA48Accident · Serious injuriesClosedRockwell S2R · Helm, CANTSB MIA78DLA40Accident · Serious injuriesClosedCessna A188B · Whigham, GANTSB SEA78FYM40Accident · Serious injuriesClosedPiper PA-36 · Carlton, ORNTSB SEA78DYA13Accident · Minor injuriesClosedAero Comdr A-9B · Rigby, IDNTSB OAK78DVG52Accident · No injuriesClosedBell 47G5 · Napa, CANTSB SEA78DYA12Accident · No injuriesClosedGrumman G-164A · Terreton, IDNTSB MIA78FKG52Accident · No injuriesClosedGrumman G-164B · Sylvester, GANTSB FTW78FRG51Accident · 1 fatalClosedBellanca 8KCAB · Brady, TX