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 MIA77FKQ42Accident · Minor injuriesClosedCessna A188B · Morton, MSNTSB IAD77FID29Accident · Minor injuriesClosedBoeing A75N1 · Fredericksburg, VANTSB FTW77FRG68Accident · Serious injuriesClosedPiper PA-25 · Charlotte, TXNTSB MIA77FKG72Accident · No injuriesClosedGrumman G-164A · Cuthbert, GANTSB FTW77DPG84Accident · Serious injuriesClosedPiper PA-25 · Gregory, ARNTSB CHI77FEK30Accident · Minor injuriesClosedHughes 269C · Urbana, OHNTSB OAK77FVA55Accident · Serious injuriesClosedBoeing A75 · Vernalis, CANTSB SEA77FA050Accident · 1 fatalClosedGrum Amer AA1C · Othello, WANTSB FTW77DRJ22Accident · No injuriesClosedGrumman G-164A · Transylvania, LANTSB DEN77DQG09Accident · No injuriesClosedAero Comdr 600S2R · Clovis, NMNTSB ANC77FA085Accident · 2 fatalClosedPiper PA-18 · Anchorage, AKNTSB CHI77FEX46Accident · No injuriesClosedTomcat MK5A · Monrovia, INNTSB SEA77DYK22Accident · No injuriesClosedCessna 150L · Tenmile, ORNTSB LAX77FUJ94Accident · No injuriesClosedGrumman G-164A · Buckeye, AZNTSB LAX77FUJ88Accident · Minor injuriesClosedGrumman G-164 · Chandler, AZNTSB IAD77DKW28Accident · No injuriesClosedCessna 188 · Charlotte, TNNTSB FTW77FRJ20Accident · No injuriesClosedGrumman G-164A · Gilliam, LANTSB FTW77FRG65Accident · 2 fatalClosedBoeing B75-N1 · Kingsville, TXNTSB MIA77FKT69Accident · Minor injuriesClosedBell 206B · Ft Myers, FLNTSB MIA77FKQ39Accident · 1 fatalClosedCessna A188B · Winona, MSNTSB MIA77DKJ79Accident · No injuriesClosedPiper PA-25 · Mccullough, ALNTSB MIA77DLA48Accident · No injuriesClosedGrumman G-164A · Colquitt, GANTSB MKC77FCD41Accident · Serious injuriesClosedBell 47G5 · Denison, IANTSB MIA77FKQ35Accident · Serious injuriesClosedBell MK5-B · Lambert, MSNTSB FTW77FRJ19Accident · Serious injuriesClosedCessna 188B · Mer Rouge, LANTSB FTW77DPG80Accident · No injuriesClosedAero Commdr S-2R · Reydell, ARNTSB IAD77DLQ20Accident · Minor injuriesClosedCallair A9 · Sturgis, KYNTSB CHI77FA068Accident · 1 fatalClosedCessna 172N · Salem, MINTSB SEA77FYM59Accident · 1 fatalClosedPitts MR1 · Vancouver, WANTSB MIA77FA082Accident · 2 fatalClosedChampion 7EC · Yazoo City, MSNTSB FTW77FRD24Accident · Serious injuriesClosedGrumman G-164A · Ville Platte, LANTSB FTW77FPM20Accident · Serious injuriesClosedJodette JD-9 · Wagoner, OKNTSB FTW77FPM18Accident · No injuriesClosedHughes 269A · Council Hill, OKNTSB MIA77FKG67Accident · No injuriesClosedHughes 269B · Montezuma, GANTSB MIA77FKG69Accident · No injuriesClosedHughes 269C · Montezuma, GANTSB MIA77DKQ34Accident · No injuriesClosedCessna 188B · Grace, MSNTSB CHI77FEE45Accident · Serious injuriesClosedCessna A188B · Kankakee, ILNTSB OAK77FJA14Accident · Serious injuriesClosedMurrayair MA-I · Lihue, HINTSB MIA77FKQ31Accident · No injuriesClosedGrumman G164A · Flora, MSNTSB CHI77FA067Accident · 4 fatalClosedFairchild F24 · Cedar, MINTSB ANC77DA076Accident · Minor injuriesClosedHughes 369HS · Kobuk, AKNTSB MIA77FKQ25Accident · Serious injuriesClosedCessna A188B · Canton, MSNTSB MIA77FKJ69Accident · 1 fatalClosedPiper PA-18 · Vincent, ALNTSB MIA77DKJ70Accident · Minor injuriesClosedBoeing E75 · Mexia, ALNTSB FTW77FPG77Accident · 1 fatalClosedWeatherly 201B · Cornerstone, ARNTSB FTW77DRJ18Accident · No injuriesClosedPiper PA-25 · Jonesville, LANTSB FTW77DPG75Accident · No injuriesClosedGrumman G-164A · De Valls, ARNTSB MKC77FCG46Accident · Minor injuriesClosedCessna 172 · Topeka, KSNTSB MKC77DCJ39Accident · No injuriesClosedCessna 140 · Kimball, NENTSB IAD77FA060Accident · 1 fatalClosedAero Comdr A-9 · Petersburg, VA