NTSB investigations
2,085 cases where the phase of flight was Standing.
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 = 150)
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 = 150)
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 LAX79FUQ18Accident · No injuriesClosedPiper PA-28 · Van Nuys, CANTSB OAK79FXQ12Accident · No injuriesClosedNavion H · S Lake Tahoe, CANTSB IAD79FIJ03Accident · No injuriesClosedCessna 337 · Huntington, WVNTSB MIA79FKJ23Accident · No injuriesClosedCessna 310K · Clanton, ALNTSB CHI79FEC10Accident · No injuriesClosedCessna 210 · Ypsilanti, MINTSB MIA79FKJ18Accident · No injuriesClosedCessna 182 · Decatur, ALNTSB FTW79FRJ05Accident · Serious injuriesClosedCessna 177 · Jena, LANTSB MKC79FCJ06Accident · Serious injuriesClosedCessna 177B · Creighton, NENTSB MIA79FKQ03Accident · No injuriesClosedCessna 182 · Bay St Louis, MSNTSB CHI79DEX10Accident · No injuriesClosedCessna 172 · Indianapolis, INNTSB NYC79FHJ05Accident · No injuriesClosedCessna 150 · Farmingdale, NYNTSB MKC79FA008Accident · No injuriesClosedLear Jet 35 · Muscatine, IANTSB OAK79DVM06Accident · No injuriesClosedAlouette 316B · King City, CANTSB NYC79DFA04|NYC79FFA04Accident · Minor injuriesClosedDehavilland DHC-6 · Watertown, NYNTSB UNK79X0103Accident · No injuriesClosedPiper PA-31 · Toronto, CanadaNTSB CHI79DA016Accident · No injuriesClosedConvair 600 · Wilmington, OHNTSB ANC79FA013Accident · No injuriesClosedHawker-Sdly DH-125 · Anchorage, AKNTSB SEA79DYM04Accident · No injuriesClosedSoloy UH12E · Molalla, ORNTSB CHI79FET03Accident · No injuriesClosedBeech 99 · South Bend, INNTSB CHI79FA004Accident · Serious injuriesClosedBoeing 727 · Chicago, ILNTSB MIA78DKT76Accident · No injuriesClosedCessna 210 · Nassau, Burkina FasoNTSB FTW78DA087Accident · No injuriesClosedBell 206B · Morgan City, LANTSB NYC78FNC51Accident · Serious injuriesClosedCessna 172M · Old Town, MENTSB IAD78FA096Accident · No injuriesClosedCessna 180 · Roanoke, VANTSB CHI78FA054Accident · Serious injuriesClosedDouglas DC-10 · Chicago, ILNTSB MIA78FKJ66Accident · No injuriesClosedPiper PA-28 · Tuscaloosa, ALNTSB OAK78FJA11Accident · No injuriesClosedDehavilland 114-24 · Kailua Kona, HINTSB IAD78FLQ23Accident · Serious injuriesClosedBell 206B · Salyersville, KYNTSB NYC78FHJ19Accident · No injuriesClosedCessna 150 · Islip, NYNTSB NYC78FNA32Accident · No injuriesClosedGrum Amer AA1-A · Lincoln, RINTSB NYC78FGT07Accident · Minor injuriesClosedBell 47G-2 · Warriors Mark, PANTSB SEA78FA030Accident · No injuriesClosedBeech B90 · Olympia, WANTSB CHI78FEV22Accident · 1 fatalClosedHughes 500D · Ellisville, ILNTSB MIA78DA057Accident · Serious injuriesClosedBoeing 727 · Greensboro, NCNTSB CHI78FEE27Accident · Serious injuriesClosedCessna 150 · Plainfield, ILNTSB MKC78DCJ10Accident · No injuriesClosedBell 206B · Columbus, NENTSB CHI78DEV15Accident · No injuriesClosedCessna 172M · Carbondale, ILNTSB CHI78DEV16Accident · Serious injuriesClosedBeech A23-19 · Pittsfield, ILNTSB SEA78FYK06Accident · 1 fatalClosedHiller UH-12E · Reedsport, ORNTSB LAX78FUQ11Accident · No injuriesClosedBeech B19 · Van Nuys, CANTSB LAX78FUQ10Accident · 1 fatalClosedCessna 150 · Pacoima, CANTSB UNK78X0103Accident · Serious injuriesClosedCessna 150G · A-511 OpsNTSB NYC77FGM48Accident · No injuriesClosedBell 206B · Clearfield, PANTSB LAX77FUK03Accident · No injuriesClosedPiper PA-25 · Maricopa, AZNTSB MIA77FA084Accident · 1 fatalClosedCessna 172 · Key West, FLNTSB CHI77FEM39Accident · 1 fatalClosedCessna 182Q · East Tawas, MINTSB IAD77FA063Accident · 1 fatalClosedCessna 172M · Manchester, KYNTSB IAD77FLJ36Accident · No injuriesClosedCessna 150 · Raleigh, NCNTSB CHI77DEE53Accident · No injuriesClosedAeronca 7AC · Elgin, ILNTSB MIA77FLA46Accident · No injuriesClosedPiper PA-32 · Jacksonville, FL