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 NYC72AN108Accident · No injuriesClosedFairchild FH-227 · Islip, NYNTSB NYC72FHD30Accident · No injuriesClosedPiper PA-22 · Medford, NJNTSB NYC72DHM38Accident · Serious injuriesClosedPiper PA-28R · Yulan, NYNTSB OAK72AP032Accident · Serious injuriesClosedDouglas DC8-61 · Hilo, HINTSB CHI72FEE58Accident · No injuriesClosedCessna 150 · Northbrook, ILNTSB MIA72FKG75Accident · Serious injuriesClosedMooney M20E · Augusta, GANTSB NYC72AN098Accident · Serious injuriesClosedBoeing 727 · Washington, DCNTSB FTW72AF051Accident · No injuriesClosedS.N.I.A.S SA318C · Dulac, LANTSB FTW72FRA38Accident · 1 fatalClosedCessna 172K · Sugar Land, TXNTSB NYC72FHJ15Accident · Serious injuriesClosedCessna 182 · Mahopac, NYNTSB MKC72AK045Accident · No injuriesClosedBell 206A · Walker, MNNTSB MKC72DCA21Accident · No injuriesClosedCessna 172 · Cahokia, ILNTSB CHI73DEC12Accident · No injuriesClosedPiper PA-22 · Troy, MINTSB NYC72FNC21Incident · 1 fatalClosedStinson 108-3 · Princeton, MENTSB LAX72FUA30Accident · Serious injuriesClosedCessna 150 · Torrance, CANTSB MIA72AM064Accident · No injuriesClosedAero Comdr 560 · Tampa, FLNTSB CHI72IC055Incident · 1 fatalClosedLockheed Ga 382 · Chicago, ILNTSB MIA72DKT35Accident · No injuriesClosedCessna 172G · Miami, FLNTSB MKC72FCD49Accident · Serious injuriesClosedMitsubishi MU-2B · Lemars, IANTSB NYC72FHM20Accident · No injuriesClosedMooney M20C · Newburgh, NYNTSB LAX72FUA26Accident · No injuriesClosedCessna 150H · Santa Ana, CANTSB MIA72IM049Incident · Minor injuriesClosedDouglas DC-10 · Miami, FLNTSB LAX72FUQ44Accident · Minor injuriesClosedBell 47G5 · Glendale, CANTSB FTW72FRJ14Accident · 1 fatalClosedCessna 150 · Monroe, LANTSB MIA72DLD25Accident · No injuriesClosedEnstrom F-28A · Orlando, FLNTSB OAK72DVM09Accident · No injuriesClosedErco 415-C · Morgan Hill, CANTSB MKC72DCG29Accident · Serious injuriesClosedCessna 150 · Leawood, KSNTSB MIA72AM034Accident · 1 fatalClosedCessna 172H · Fitzgerald, GANTSB CHI72AC034Accident · No injuriesClosedDouglas DC-9 · Chicago, ILNTSB NYC72FLJ12Accident · Serious injuriesClosedCessna 182 · Rocky Mount, NCNTSB NYC72FHM13Accident · No injuriesClosedFleet 16B · Rhinebeck, NYNTSB LAX72FUG18Accident · No injuriesClosedHughes 269A · Irwindale, CANTSB LAX72DVM05Accident · No injuriesClosedBellanca 14-19 · S.L.Obispo, CANTSB MIA72IM023Incident · Minor injuriesClosedDouglas DC-8F · San Juan, PRNTSB DEN72FTC05Accident · No injuriesClosedPiper PA-23 · Cody, WYNTSB DEN72AD006Accident · 1 fatalClosedCessna T210G · Grand Junctn, CONTSB LAX72FUA07Accident · Serious injuriesClosedSprotaire 002 · Torrance, CANTSB MKC72IK008Incident · Serious injuriesClosedBell 47G · St Louis, MONTSB OAK72DJA01Accident · Serious injuriesClosedPiper PA-28 · Kaanapali, HINTSB LAX72FUQ09Accident · Serious injuriesClosedErco 415-D · Van Nuys, CANTSB ANC72DAA06Accident · Minor injuriesClosedHiller FH1100 · Bettles, AKNTSB MKC72FCD10Accident · No injuriesClosedBrantly B-2 · Whiting, IANTSB MKC72AKO02Accident · 1 fatalClosedHiller FH1100 · Mound City, MONTSB MIA72DKG02Accident · No injuriesClosedCessna 150F · Fort Benning, GANTSB NYC71AN128Accident · Serious injuriesClosedBoeing 747 · Paris, FranceNTSB MKC71FCQ46Accident · Minor injuriesClosedHughes 269-A · Wichita, KSNTSB MIA71DLA53Accident · Serious injuriesClosedBellanca 14-13 · Jacksonville, FLNTSB FTW71DPJ49Accident · No injuriesClosedPiper PA-28 · Oklahoma Cty, OKNTSB CHI71FEM93Accident · 1 fatalClosedPiper PA-23 · Grand Rapids, MINTSB LAX71FUQ89Accident · No injuriesClosedBell 47G3B1 · Pacoima, CA