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 MKC76FCD63Accident · Serious injuriesClosedPiper PA-25 · Rembranot, IANTSB FTW76FRJ40Accident · Serious injuriesClosedBoeing E75N1 · Tallulah, LANTSB FTW76FRJ39Accident · Minor injuriesClosedGrumman G-164A · Delhi, LANTSB DEN76DTC43Accident · Minor injuriesClosedGrumman G-164 · Hawk Springs, WYNTSB DEN76AD062Accident · 1 fatalClosedDouglas A-26B · Grand Junction, CONTSB ANC76DAH49Accident · No injuriesClosedPiper PA-18 · Mccarthy, AKNTSB MKC760CQ73Accident · No injuriesClosedHughes 269A · Alden, KSNTSB FTW76DQH01Accident · No injuriesClosedBellanca 8GCBC · Hale Center, TXNTSB NYC76AN120Accident · 2 fatalClosedBell 47D1 · Brewster, NYNTSB MIA76FLA60Accident · No injuriesClosedMurrayair MA-1 · Marianna, FLNTSB MIA76FKG93Accident · 1 fatalClosedCessna A188B · Waynesboro, GANTSB IAD76AI089Accident · 1 fatalClosedBellanca 7GCBC · Ocean City, MDNTSB FTW76DQG91Accident · No injuriesClosedPiper PA-25 · Olton, TXNTSB NYC76DHD36Accident · No injuriesClosedEnstrom F-28A · Barnegat Light, NJNTSB MKC76DCJ58Accident · 1 fatalClosedPiper PA-18 · Abie, NENTSB MIA76FKG94Accident · Minor injuriesClosedBoeing B-17G · Rochelle, GANTSB FTW76FQG89Accident · Serious injuriesClosedHughes 269B · Amarillo, TXNTSB IAD76FLT17Accident · Minor injuriesClosedPiper PA-25 · Henderson, TNNTSB FTW76DQG92Accident · No injuriesClosedGrumman G-164A · Silverton, TXNTSB FTW76DQG88Accident · No injuriesClosedPiper PA-25 · Hale Center, TXNTSB SEA76DYG68Accident · No injuriesClosedAero Comdr 600S2R · Othello, WANTSB MIA76AM098Accident · 1 fatalClosedCessna 421B · De Funiak Spgs, FLNTSB DEN76DTE86Accident · Serious injuriesClosedPiper PA-18 · Cheyenne Wells, CONTSB IAD76AI088Accident · 1 fatalClosedPiper J3C · Troy, NCNTSB FTW76DRJ36Accident · No injuriesClosedCallair A-9 · Plain Dealing, LANTSB FTW76DPJ43Accident · Minor injuriesClosedAeronca 7FC · Thomas, OKNTSB SEA76FYG70Accident · 1 fatalClosedCessna 188 · Lewiston, IDNTSB OAK76DVA81Accident · No injuriesClosedAero Comdr 600S2R · Firebaugh, CANTSB SEA76DYA45Accident · No injuriesClosedCallair B1A · Newdale, IDNTSB MKC76DCJ53Accident · Minor injuriesClosedGrumman G-164A · Farnam, NENTSB MIA76FKG91Accident · 1 fatalClosedPiper PA-36 · Blakely, GANTSB MIA76FKG90Accident · Minor injuriesClosedCessna 188 · Butler, GANTSB FTW76FQG86Accident · 1 fatalClosedCessna A188 · Dimmitt, TXNTSB ANC76AA115Accident · No injuriesClosedBell 206B · Colville River, AKNTSB FTW76FRG77Accident · 1 fatalClosedSnow S2A · Los Ebanos, TXNTSB FTW76DRG76Accident · No injuriesClosedCessna 188 · Knippa, TXNTSB OAK76FXQ61Accident · No injuriesClosedPiper PA-36 · Herlong, CANTSB MIA76FKT88Accident · 1 fatalClosedCessna A188 · Indiantown, FLNTSB LAX76DVA80Accident · No injuriesClosedBoeing IB75A · Shafter, CANTSB MKC76FCJ45Accident · Serious injuriesClosedCessna 140 · Elgin, NENTSB MIA76FLA59Accident · No injuriesClosedCessna A188B · Jay, FLNTSB FTW76DQG87Accident · No injuriesClosedPiper PA-25 · Smyer, TXNTSB FTW76DPG90Accident · No injuriesClosedGrumman G-164 · Gibson Switch, ARNTSB NYC76FNA45Accident · No injuriesClosedCessna 150L · Freetown, MANTSB IAD76DKM42Accident · Minor injuriesClosedCessna 150 · Bessemer City, NCNTSB FTW76FRG75Accident · 1 fatalClosedNewman Smit Mini · Troy, TXNTSB FTW76FPA28Accident · No injuriesClosedCessna 188 · Cooper, TXNTSB FTW76AF110Accident · No injuriesClosedBolkow BO-105 · Rockport, LANTSB DEN76AD060Accident · 4 fatalClosedAero Comdr 560F · Cody, WYNTSB CHI76FEV56Accident · No injuriesClosedPiper PA-25 · Berwick, IL