NTSB investigations
2,192 cases where the phase of flight was Uncontrolled descent.
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 = 650)
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 = 650)
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 FTW84FA035Accident · 2 fatalField investigationFinal reportCessna 310 · Fairview, OKThe acft was observed to take off at about 1830. Witnesses near the crash site reported seeing & hearing a low flying acft at about 2000 & stated the engs were running smoothly. There was fog in the low areas with visibility of less than 1/4 mi in those…NTSB ANC83FA161Accident · 3 fatalField investigationFinal reportBellanca 7GCBC · Kasilof, AKThe acft crashed in a vertical nose down attitude a short distance from the plt's private airstrip. According to relatives the plt was taking his girl friend's 2 children for a short flt. Investigation revealed the plt's last known medical certificate was…NTSB DEN83FTC02Accident · 1 fatalFinal reportPitts S-15 · Laramie, WYThe acft crashed during a ferry flt in VMC wx conditions. While in formation with two other acft N6CQ was observed to pull up to a near vertical climb, reverse course and disappear. Found near the maneuver location, the acft struck the ground in a nearly…NTSB CHI83FA148Accident · 1 fatalField investigationFinal reportPiper PA-32R-300 · Rochester, ILThe acft experienced an in-flt break-up during descent. The pilot had reported on the radio to Kansas city ARTCC that hewas having severe chest pains and shortness of breath. Radar contact with the plane was lost at 1425 CST. The pilot had reported he was…NTSB LAX82FXQ12Accident · 2 fatalFinal reportCessna 182R · Dayton, NVAt about 0130 the plt & 4 companions were evicted from the cocktail lounge at carson city arpt for being drunk & disorderly. After the lounge closed they continued their drinking on the acft ramp where the plt & one companion attempted to steal a twin-eng…NTSB SEA82FYA08Accident · 1 fatalFinal reportCessna T210M · Shoshone, IDThe aircraft crashed in a near level attitude and at a high rate of speed. Neither the seat belt nor shoulder harness was fastened. The pilot's blood alcohol level was 236 mg%.NTSB MIA82DA062Accident · 1 fatalFinal reportCessna 150 · Huma Cao, PRThe aircraft was reported to have departed at or near sunset on a 30 minute aerobatic flight and did not return. During that period, an aircraft matching its description was observed to crash near by in the ocean while the pilot was performing aerobatics. A…NTSB NYC82FA014Accident · 1 fatalClosedPiper PA-23 · Owego, NYNTSB LAX82FA032Accident · 3 fatalClosedBeech 58 · Elko, NVNTSB MIA82DKA04Accident · 1 fatalClosedBensen B-8M · Sandin, PRNTSB FTW82FRG19Accident · 1 fatalClosedCessna 152 · Christine, TXNTSB MKC82FA012Accident · 2 fatalClosedCessna 172N · Hillsboro, KSNTSB SEA82FA012Accident · 2 fatalClosedPiper PA-32 · Brogan, ORNTSB MIA82FA019Accident · 2 fatalClosedPiper PA-60 · Sebastian (Atlantic Ocean)NTSB SEA82FA010Accident · 1 fatalClosedPiper PA-28 · Mill City, ORNTSB SEA82FA007Accident · 4 fatalClosedPiper PA-28 · Longview, WANTSB FTW82FA025Accident · 1 fatalClosedPiper PA-28 · Ruidoso, NMNTSB MKC82FA009Accident · 5 fatalClosedCessna 177A · Ellinwood, KSNTSB MKC82FA006Accident · 1 fatalClosedCessna 172N · Prairie City, IANTSB DEN82FA010Accident · 1 fatalClosedMooney M-21 · La Veta, CONTSB LAX82FA019Accident · 3 fatalClosedCessna 210 · Susanville, CANTSB MIA82FA112Accident · 2 fatalClosedMitsubishi MU-2B · Jacksonville, FLNTSB ATL82AA019Accident · 3 fatalClosedPiper Advcd PAT-1 · Mathews, VANTSB CHI82FA013Accident · 1 fatalClosedCessna 170B · Onamia, MNNTSB NYC82FGT04Accident · 1 fatalClosedCarver HP-14B · Altoona, PANTSB MKC82FA003Accident · 2 fatalClosedCessna 182P · Essex, IANTSB FTW82FA017Accident · Serious injuriesClosedBell 206L-1 · Ingleside, TXNTSB CHI82FA009Accident · 3 fatalClosedPiper PA-24 · Kerrick, MNNTSB ATL82FKQ06Accident · 2 fatalClosedBeech 77 · Brandon, MSNTSB CHI82FA007Accident · 4 fatalClosedCessna 172 · Kokomo, INNTSB CHI82FA005Accident · 1 fatalClosedBLN Works FF-7 · Delaware, OHNTSB FTW82FA009Accident · 2 fatalClosedPiper PA-28R · Hale Center, TXNTSB FTW82FA001Accident · 3 fatalClosedCessna 210L · Clyde, TXNTSB ATL82FA004Accident · 2 fatalClosedPiper PA-32 · Winchester, VANTSB DCA82AA001Accident · 3 fatalClosedLearjet 24 · Felt, OKNTSB DEN81FA068Accident · 1 fatalClosedCessna T210L · Big Timber, MTNTSB SEA81FA057Accident · 3 fatalClosedCessna 210A · Woodland, WANTSB ATL81FA117Accident · 1 fatalClosedCessna 150 · Homestead, FLNTSB LAX81FA125Accident · 2 fatalClosedCessna T310P · San Bernardino, CANTSB DEN81AA064Accident · 5 fatalClosedMitsubishi MU-2B · Riverton, WYNTSB FTW81FA132Accident · 2 fatalClosedPiper PA-32R · Mount Hermon, LANTSB ATL81FA108Accident · 5 fatalClosedAero Comdr 685 · Wrens, GANTSB LAX81FA116Accident · 1 fatalClosedGrum Amer AA-5B · Vancouver, WANTSB ATL81FA106Accident · 4 fatalClosedPiper PA-28 · Camilla, GANTSB ANC81FA093Accident · Serious injuriesClosedDehavilland DHC-2 · Ketchikan, AKNTSB CHI81FA083Accident · 2 fatalClosedMooney M20C · Plymouth, OHNTSB CHI81FA085Accident · 2 fatalClosedPiper PA-28R · Chicago, ILNTSB CHI81FA082Accident · 2 fatalClosedBellanca 7ECA · Delevan, ILNTSB ANC81FAA22Accident · Minor injuriesClosedPiper PA-22 · Hess Creek, AKNTSB FTW81FA128Accident · 3 fatalClosedPiper PA-28 · Mcalester, OK