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 FTW80DA084Accident · 1 fatalClosedBell 212 · Intracstl City, LANTSB FTW80DRD40Accident · No injuriesClosedCessna 172 · Delacroix, LANTSB NYC80FHA21Accident · Minor injuriesClosedShort Bros SD3-30 · Allentown, PANTSB DEN80FA033Accident · No injuriesClosedBeech 58 · Casper, WYNTSB LAX80DUM19Accident · Serious injuriesClosedAero Comdr 680 · Carlsbad, CANTSB MIA80DA059Accident · 1 fatalClosedBell 206B · Malabar, FLNTSB LAX80DA081Accident · 1 fatalClosedCessna A185E · Santa Paula, CANTSB FTW80FPM09Accident · No injuriesClosedBeech 95-C55 · Tulsa, OKNTSB CHI80FEG10Accident · No injuriesClosedMitsubishi MU2B60 · Cincinati, OHNTSB NYC80FGT08Accident · Serious injuriesClosedBeech P35 · York, PANTSB FTW80FA045Accident · 6 fatalClosedSikorsky S-62A · Leeville, LANTSB CHI80FEX04Accident · 1 fatalClosedCessna 182F · Greenwood, INNTSB MIA80DLD31Accident · No injuriesClosedPiper PA-28 · Fort Pierce, FLNTSB MIA80DLD28Accident · Serious injuriesClosedCessna 150 · Venice, FLNTSB FTW80DA029Accident · Serious injuriesClosedNa Rockwell 690A · Uvalde, TXNTSB NYC80FNE06Accident · No injuriesClosedPiper PA-28 · Westfield, MANTSB LAX80FUG11Accident · Serious injuriesClosedCessna 172N · La Verne, CANTSB LAX80DUM07Accident · Serious injuriesClosedAero Comdr 100 · Santee, CANTSB FTW80DA015Accident · 1 fatalClosedCessna 210 · El Paso, TXNTSB CHI80DEE05Accident · Minor injuriesClosedCessna 150L · Freeport, ILNTSB LAX80DVA04Accident · Serious injuriesClosedLuscombe 8A · Patterson, CANTSB NYC80FHJ01Accident · Serious injuriesClosedCessna 185 · Westhampton, NYNTSB SEA80FYP01Accident · No injuriesClosedCessna 182C · Lewiston, IDNTSB CHI80FEC56|CHI79FEC56Accident · No injuriesClosedCessna 182 · Pontiac, MINTSB MIA79DLA52Accident · Serious injuriesClosedCessna 150 · Brunswick, GANTSB FTW79DPD44Accident · Serious injuriesClosedCessna 152 · Fort Worth, TXNTSB MIA79FLD85Accident · No injuriesClosedHughes 269B · Winter Park, FLNTSB FTW79FQG54Accident · No injuriesClosedErco 415-C · Odessa, TXNTSB FTW79FPM12Accident · Serious injuriesClosedErco 415-CD · Grove, OKNTSB NYC79IA066Incident · No injuriesClosedShorts SH-7 · Jamaica, NYNTSB NYC79FA053Accident · No injuriesClosedPiper PA-23 · Flushing, NYNTSB LAX79DUJ93Accident · Serious injuriesClosedCessna 177 · Bullhead City, AZNTSB MKC79DCD27Accident · No injuriesClosedGR Lakes 2T-1A2 · Algona, IANTSB OAK79DVG56Accident · No injuriesClosedBeech F-35 · Napa, CANTSB MIA79DA098Accident · Serious injuriesClosedLockheed L-1011 · Atlanta, GANTSB NYC79FFA24Accident · No injuriesClosedPiper PA-11 · Alplaus, NYNTSB DEN79DTE49Accident · No injuriesClosedCessna 150 · Greeley, CONTSB FTW79DA088Accident · 1 fatalClosedMitsubishi MU-2B · New Orleans, LANTSB DEN79DA043Accident · No injuriesClosedHiller UH-12L · Montrose, CONTSB MIA79FKJ47Accident · No injuriesClosedNavion A · Theodore, ALNTSB OAK79DVG49Accident · Serious injuriesClosedCessna 177RG · David, CANTSB ANC79DAG58Accident · No injuriesClosedTaylorcraft F-19 · Anchorage, AKNTSB MKC79FA033Accident · No injuriesClosedConvair 640 · St Louis, MONTSB FTW79FPJ23Accident · No injuriesClosedBalloon WKS FRFLY7 · Norman, OKNTSB FTW790A083Accident · Serious injuriesClosedDouglas DC-8 · Bogot, ColombiaNTSB MKC79FA032Accident · Serious injuriesClosedHughes 269A · Kansas City, MONTSB FTW79DRA26Accident · No injuriesClosedBolkow B0105C · Galveston, TXNTSB IAD79DLQ16Accident · Serious injuriesClosedMaule M-5 · Greenville, KYNTSB MIA79FKG33Accident · 1 fatalClosedCessna 150 · Hawkinsville, GANTSB MIA79FLD42Accident · 1 fatalClosedCessna 172B · Orlando, FL