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 DEN77FTE74Accident · No injuriesClosedBell 214B-1 · Silverthorne, CONTSB MIA77DKG64Accident · No injuriesClosedAero Comdr A-9 · Sylvania, GANTSB SEA77FYP39Accident · Serious injuriesClosedNaval Fcty N3N-3 · Prescott, WANTSB FTW77DRA31Accident · No injuriesClosedCessna 188B · Clay, TXNTSB CHI77DEV41Accident · No injuriesClosedContinental 5A · Warrensburg, ILNTSB CHI77DCA05Accident · No injuriesClosedCessna 188C · Valmeyer, ILNTSB OAK77FVA49Accident · No injuriesClosedGrumman G-164B · Modesto, CANTSB LAX77FUM35Accident · No injuriesClosedPiper PA-36 · Niland, CANTSB IAD77FLJ30Accident · No injuriesClosedRockwell S2R · Elizabeth City, NCNTSB MKC77DCQ52Accident · No injuriesClosedCessna 188 · Meade, KSNTSB MKC77DCQ50Accident · No injuriesClosedCessna 172 · Oakley, KSNTSB MIA77FKG62Accident · No injuriesClosedBell 47G-2 · Brookfield, GANTSB FTW77FRJ16Accident · 1 fatalClosedGrumman G-164A · Waterproof, LANTSB OAK77FA047Accident · 2 fatalClosedCessna 120 · San Ramon, CANTSB MIA77FLG27Accident · Minor injuriesClosedPiper PA-36 · Darlington, SCNTSB LAX77FA063Accident · 2 fatalClosedCessna 172M · Big Bear City, CANTSB MIA77FLG26Accident · No injuriesClosedCessna A188B · Livingston, SCNTSB MIA77DKJ65Accident · No injuriesClosedBell 47D1 · New Brockton, ALNTSB IAD77FLJ29Accident · No injuriesClosedCessna 188C · Clayton, NCNTSB MIA77FKQ29Accident · No injuriesClosedGrumman G-164B · Houston, MSNTSB MIA77FKJ63Accident · No injuriesClosedAero Comdr A9 · Samson, ALNTSB NYC77FFJ40Accident · Serious injuriesClosedCallair A-9 · Canandaigua, NYNTSB MKC77FER73Accident · No injuriesClosedGrumman G-164A · Perham, MNNTSB MIA77DKG60Accident · Minor injuriesClosedPiper PA-25 · Rebecca, GANTSB FTW77DPG72Accident · No injuriesClosedGrumman G-164A · England, ARNTSB ANC77FA069Accident · 1 fatalClosedPiper PA-12 · Solo Creek, AKNTSB NYC77FNC43Accident · 1 fatalClosedBellanca 7GCBC · Ft Fairfield, MENTSB MIA77FKQ27Accident · Serious injuriesClosedCessna A188B · Tchula, MSNTSB MIA77FKQ26Accident · No injuriesClosedGrumman G-164B · Tchula, MSNTSB IAD77FA055Accident · 1 fatalClosedBoeing A75N-1 · Union City, TNNTSB IAD77DLJ27Accident · No injuriesClosedCessna 188B · Elizabeth City, NCNTSB FTW77FA065Accident · 1 fatalClosedPiper PA-28 · Wichita Falls, TXNTSB CHI77FEP49Accident · Serious injuriesClosedHughes 269B · Waupaca, WINTSB SEA77FYP34Accident · Serious injuriesClosedPiper PA-28 · Mattawa, WANTSB FTW77FRD43Accident · No injuriesClosedGrumman G-164 · Maringouin, LANTSB MKC77DCJ34Accident · No injuriesClosedCessna 188B · Clearwater, NENTSB LAX77FUJ83Accident · No injuriesClosedGrumman G-164B · Queen Creek, AZNTSB OAK77FVG54Accident · Serious injuriesClosedBell 214B1 · Sawyers Bar, CANTSB MKC77FER71Accident · No injuriesClosedPiper PA-25 · Springfield, MNNTSB NYC77FHA30Accident · 1 fatalClosedTaylorcraft BC12D · Sciota, PANTSB MKC77DCJ33Accident · Minor injuriesClosedPiper PA-25 · Callaway, NENTSB MIA77FKG58Accident · Minor injuriesClosedPiper PA-25 · Murray, GANTSB FTW77DQG42Accident · No injuriesClosedPiper PA-25 · Gruver, TXNTSB FTW77DQD22Accident · No injuriesClosedCessna 188 · Dell City, TXNTSB DEN77DQG07Accident · Minor injuriesClosedCessna 188 · Clovis, NMNTSB ANC77DAA63Accident · Serious injuriesClosedBellanca 7GCBC · Fort Yukon, AKNTSB SEA77FTA27Accident · No injuriesClosedCessna 180 · Biddle, MTNTSB MIA77FKT61Accident · Serious injuriesClosedAero Comdr S2R · Pahokee, FLNTSB DEN77FTE78Accident · Serious injuriesClosedPiper PA-18A · Byers, CONTSB CHI77FET28Accident · Serious injuriesClosedCallair A-9 · Winamac, IN