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 ANC77DAA53Accident · Serious injuriesClosedCessna 185 · Fairbanks, AKNTSB FTW77DRG70Accident · No injuriesClosedCessna 172 · Manor, TXNTSB ANC77DA057Accident · Serious injuriesClosedDehavilland DHC-2 · Mulchatna Riv, AKNTSB MKC77FCQ41Accident · No injuriesClosedPiper PA-23 · Minneapolis, KSNTSB NYC77FGT15Accident · Serious injuriesClosedCessna 177 · Mt Joy, PANTSB SEA77DYM33Accident · 1 fatalClosedPiper PA-22S · Madras, ORNTSB FTW77DRD29Accident · Serious injuriesClosedCessna 180F · Morgan City, LANTSB DCA77AA006Accident · 4 fatalClosedSikorsky S-61L · New York, NYNTSB FTW77DRD12Accident · No injuriesClosedBell 206B · Leeville, LANTSB NYC77FHM14Accident · Serious injuriesClosedCessna 150D · Poughkeepsie, NYNTSB DEN77DTC09Accident · Minor injuriesClosedBell 206B · Laramie, WYNTSB CHI77DEP25Accident · No injuriesClosedCessna 172 · Janesville, WINTSB LAX77IA030Incident · No injuriesClosedHughes 369B · Mesa, AZNTSB MKC77DA012Accident · Serious injuriesClosedSwearingen SA-226 · Parsons, KSNTSB ANC77DAA14Accident · No injuriesClosedAerospatle SA341G · Valdez, AKNTSB LAX77FUM14Accident · No injuriesClosedAero Comdr 560F · San Diego, CANTSB FTW77DPM04Accident · Serious injuriesClosedMooney M20A · Tulsa, OKNTSB CHI77FCA01Accident · Minor injuriesClosedAmerican AA1 · Cahokia, ILNTSB NYC77FA023Accident · Serious injuriesClosedConvair 580 · Bradford, PANTSB FTW77DA021Accident · No injuriesClosedBell 206B · Morgan City, LANTSB ANC77DA011Accident · 1 fatalClosedCessna 206 · Kotzebue, AKNTSB MIA77FA003Accident · No injuriesClosedBoeing 727 · Miami, FLNTSB SEA77FYG04Accident · Serious injuriesClosedCessna 172 · Grangeville, IDNTSB ANC76AA133Accident · 1 fatalClosedPiper PA-18 · Aniak, AKNTSB NYC76IN125Incident · Minor injuriesClosedDehavilland DHC-6 · Franklin, PANTSB DEN76FQA62Accident · No injuriesClosedCessna 310I · Farmington, NMNTSB NYC76FGM45Accident · No injuriesClosedTed Smith 600 · West Mifflin, PANTSB SEA76AS067Accident · No injuriesClosedDehavilland DHC-6 · Havre, MTNTSB LAX76FUA29Accident · No injuriesClosedTaylorcraft BC12-D · Torrance, CANTSB FTW76DPD50Accident · No injuriesClosedCessna 182 · Ft.Worth, TXNTSB MKC76FCG86Accident · Serious injuriesClosedBarnes AX6 · Liberty, MONTSB MIA76FLG38Accident · Minor injuriesClosedHughes 269A · Fair Play, SCNTSB MIA76FLG37Accident · No injuriesClosedCessna 150 · Rock Hill, SCNTSB ANC76AA101Accident · Serious injuriesClosedCessna 177RG · Aniak, AKNTSB SEA76AS053Accident · 1 fatalClosedCessna 182P · Klamath Falls, ORNTSB FTW76DPM25Accident · Serious injuriesClosedCessna 150 · Chelsea, OKNTSB MIA76DLD58Accident · Serious injuriesClosedCessna 180 · Lake Placid, FLNTSB LAX76AL076Accident · 1 fatalClosedPiper PA-28 · Tucson, AZNTSB FTW76DRG53Accident · No injuriesClosedHughes 269A · Castroville, TXNTSB MIA76DKG56Accident · Serious injuriesClosedRaven RX-6 · Albany, GANTSB OAK76DYD31Accident · Serious injuriesClosedCessna 150 · Novato, CANTSB CHI76FEC36Accident · Minor injuriesClosedHughes 269A · Richmond, MINTSB FTW76AF073Accident · No injuriesClosedDouglas DC-3A · Dallas, TXNTSB FTW76DRD30Accident · No injuriesClosedAir & Space 18A · Baton Rouge, LANTSB NYC76AN068Accident · 1 fatalClosedPiper PA-28R · Auburn, MENTSB IAD76II051Incident · Minor injuriesClosedBoeing 727 · Charlotte, NCNTSB LAX76AL045Accident · Serious injuriesClosedBoeing 727 · Los Angeles, CANTSB CHI76FEE37Accident · Serious injuriesClosedBellanca 17-30 · Chicago, ILNTSB IAD76FKM24Accident · Serious injuriesClosedPiper PA-32 · Charlotte, NCNTSB ANC76DAG76Accident · Serious injuriesClosedPiper PA-11 · Dillingham, AK