NTSB investigations, GA
56 cases where the phase of flight was Uncontrolled descent.
Cases per year
| 1964 | 4 |
|---|---|
| 1965 | 1 |
| 1967 | 4 |
| 1968 | 2 |
| 1969 | 6 |
| 1970 | 3 |
| 1971 | 4 |
| 1972 | 5 |
| 1973 | 1 |
| 1974 | 2 |
| 1975 | 2 |
| 1976 | 1 |
| 1977 | 3 |
| 1978 | 4 |
| 1979 | 3 |
| 1980 | 6 |
| 1981 | 2 |
| 1991 | 1 |
| 2003 | 1 |
| 2004 | 1 |
Where
Latest cases
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.\"eventStateOrRegion\" = 'GA' AND c.\"eventCountry\" = 'USA'
AND 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."eventStateOrRegion" = 'GA' AND c."eventCountry" = 'USA'
AND 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 ATL04CA170Accident · Minor injuriesData collectionFinal reportCessna 172R · Atlanta, GAThe intentional interuption of the flight controls in flight that resulted in a uncontrolled descent and collision with a fence.NTSB ATL04LA050Accident · Minor injuriesLimited investigationFinal reportBaker KR-2 · St. Marys, GAThe pilot's failure to maintain airspeed during climb out which resulted in a stall and inflight collision with trees.NTSB ATL91FA042Accident · 1 fatalField investigationFinal reportCessna 310 · Brunswick, GAThe incapacitation of the pilot.NTSB ATL81FA108Accident · 5 fatalClosedAero Comdr 685 · Wrens, GANTSB ATL81FA106Accident · 4 fatalClosedPiper PA-28 · Camilla, GANTSB ATL81FA010Accident · 1 fatalClosedBellanca 8KCAB · Woodland, GANTSB ATL81FA008Accident · 4 fatalClosedCessna 310 · Milledgeville, GANTSB ATL81FA001Accident · 1 fatalClosedCessna 210 · Cartersville, GANTSB ATL80FA088Accident · 1 fatalClosedAerostar 601P · Summerville, GANTSB ATL80FA066Accident · 2 fatalClosedBeech C18S · Wassaw Is, GANTSB ATL81FA055Accident · 1 fatalClosedGrumman F8F-2 · Commerce, GANTSB MIA80FA021Accident · 5 fatalClosedPiper PA-32 · Woodbine, GANTSB MIA79FA122Accident · 2 fatalClosedPiper PA-28 · Alma, GANTSB MIA79FKG30Accident · Serious injuriesClosedDehavilland DHC-1 · Fayetteville, GANTSB MIA78FA078Accident · 3 fatalClosedPiper PA-28 · Jekyll Island, GANTSB MIA78FA072Accident · 2 fatalClosedBeech N35 · Kennesaw, GANTSB MIA78FA044Accident · 1 fatalClosedBeech A45 · Moultrie, GANTSB MIA78FA042Accident · 1 fatalClosedBeech C23 · Eatonton, GANTSB MIA77FA071Accident · 5 fatalClosedCessna 172L · Vienna, GANTSB MIA77FA050Accident · 2 fatalClosedBeech C24R · Monroe, GANTSB MIA77FA042Accident · 2 fatalClosedBeech M35 · Fargo, GANTSB MIA76AM086Accident · 2 fatalClosedCessna 172M · Lavonia, GANTSB MIA76AM010Accident · 5 fatalClosedCessna 320B · Darien, GANTSB MIA75AM085Accident · 1 fatalClosedTemco GC-1B · Clayton, GANTSB MIA74AM093Accident · 2 fatalClosedPiper PA-28 · Folkston, GANTSB MIA74AM076Accident · 1 fatalClosedCessna 175 · Fairburn, GANTSB MIA73AM085Accident · 4 fatalClosedCessna 210H · Rome, GANTSB MIA73AMO64Accident · 2 fatalClosedCessna 310 · Shellman, GANTSB MIA73AMO52Accident · 2 fatalClosedCessna 182P · Porterdale, GANTSB MIA73AM011Accident · 3 fatalClosedMooney M-20C · Texas, GANTSB NYC72AN162Accident · 2 fatalClosedMooney M20C · Milan, GANTSB MIA72AM094Accident · 1 fatalClosedCessna T210F · Jasper, GANTSB MIA72AM056Accident · 2 fatalClosedCessna 150F · Dalton, GANTSB MIA72AM036Accident · 2 fatalClosedBeech A35 · Homerville, GANTSB MIA72AM011Accident · 1 fatalClosedCessna 172K · Atlanta, GANTSB MIA72AM002Accident · No injuriesClosedBoeing E75N1 · Cumming, GANTSB MIA71AM032Accident · 2 fatalClosedBeech J35 · Mussella, GANTSB MIA70FKG07Accident · No injuriesClosedBensen B-8M · Richmond Hill, GANTSB MIA70AM063Accident · 2 fatalClosedCessna 172 · Dahlonega, GANTSB MIA70A0028Accident · 1 fatalClosedPiper PA-28 · Jessup, GANTSB MIA70A0022Accident · 1 fatalClosedNavion A · Williamson, GANTSB MIA70D0247Accident · No injuriesClosedPiper PA-18A · Warwick, GANTSB DCA70A0001Accident · 14 fatalClosedBeech B99 · Monroe, GANTSB MIA69A0076Accident · 2 fatalClosedBeech V35 · Waycross, GANTSB MIA69A0046Accident · 2 fatalClosedBeech 95 · St.George, GANTSB MIA69A0019Accident · 2 fatalClosedPiper PA-22 · Mableton, GANTSB MIA69A0011Accident · 2 fatalClosedCessna 175 · Eastman, GANTSB MIA68A0035Accident · 3 fatalClosedCessna 172 · Villa Rica, GANTSB MIA68A0028Accident · 4 fatalClosedCessna 172H · Robertstown, GANTSB MIA67F0545Accident · Minor injuriesClosedMooney M20C · Roopville, GA