NTSB investigations, CO
62 cases where the phase of flight was Uncontrolled descent.
Cases per year
| 1964 | 1 |
|---|---|
| 1965 | 2 |
| 1966 | 6 |
| 1967 | 4 |
| 1968 | 4 |
| 1969 | 5 |
| 1970 | 2 |
| 1971 | 3 |
| 1972 | 3 |
| 1973 | 2 |
| 1974 | 4 |
| 1975 | 5 |
| 1976 | 5 |
| 1977 | 1 |
| 1978 | 1 |
| 1979 | 4 |
| 1980 | 2 |
| 1981 | 3 |
| 1985 | 1 |
| 1987 | 1 |
| 2001 | 1 |
| 2015 | 2 |
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\" = 'CO' 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" = 'CO' 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 GAA15CA053Accident · Minor injuriesData collectionFinal reportAero SP Z O O AT 4 LSA · Colorado Springs, COThe pilot's decision to perform aerobatic maneuvers in an airplane not certified for aerobatic flight, which resulted in a loss of control and collision with terrain.NTSB CEN15FA141Accident · 2 fatalField investigationFinal reportRichard Lacourse Wheeler Express · Kersey, COThe pilot's failure to maintain airplane control during an off-airport forced landing following a total loss of engine power for reasons that could not be determined during postaccident examination of the engine. Contributing to the accident was the pilots'…NTSB DCA01MA017Accident · 10 fatalClass 1 · MajorFinal reportBeech 200 · Strasburg, COThe pilot’s spatial disorientation resulting from his failure to maintain positive manual control of the airplane with the available flight instrumentation. Contributing to the cause of the accident was the loss of a.c. electrical power during instrument…NTSB DEN87LA172Accident · No injuriesLimited investigationFinal reportPiper PA-38-112 · Pagosa Springs, COThe commercial plt and a friend departed aztec, new Mexico, with the intention of flying over wolf creek pass en route to Colorado Springs, Colorado. He said the acft would not climb over the pass and the acft collided with trees in mountainous terrain. The…NTSB DEN86FTE02Accident · 1 fatalFinal reportBeech 58 · Elbert, COThe acft crashed in a open field & was not found for 4 days. The home built acft, maintained largely by the plt, had the engine destroyed so completely that no determination could be made as to power being developed at impact. The plt reportedly had been…NTSB DEN82FA010Accident · 1 fatalClosedMooney M-21 · La Veta, CONTSB DEN81FA035Accident · 4 fatalClosedCessna T210N · Castle Rock, CONTSB CHI81FA032Accident · 2 fatalClosedBeech P35 · Monarch Pass, CONTSB DEN81FA011Accident · 2 fatalClosedCessna 310K · Boulder, CONTSB DEN81DTE05Accident · 1 fatalClosedCessna 182Q · Grand Junction, CONTSB DEN80FA014Accident · 1 fatalClosedPiper PA-23 · Grand Lake, CONTSB DEN80FA003Accident · 8 fatalClosedCessna T210N · Gunnison, CONTSB DEN79FA031Accident · 2 fatalClosedCessna 310 · Castle Rock, CONTSB DEN79FA027Accident · 2 fatalClosedCessna 210 · Limon, CONTSB DEN78FAO32Accident · 5 fatalClosedCessna T210L · Woodland Park, CONTSB DEN77FA032Accident · 4 fatalClosedAvions Mrcl DA-10 · Denver, CONTSB DEN77FA015Accident · 3 fatalClosedGrum Amer AA-1 · Alder, CONTSB DEN77FA019Accident · Serious injuriesClosedSikorsky S-64E · Cowdrey, CONTSB DEN77FA004Accident · 1 fatalClosedPiper PA-32R · Matheson, CONTSB DEN76AD047Accident · 2 fatalClosedBeech A36 · Aspen, CONTSB LAX76AL044Accident · 1 fatalClosedCessna 172M · Olney Springs, CONTSB DEN7LAD018Accident · 2 fatalClosedCessna T210L · Trinidad, CONTSB DEN7LAD004Accident · 1 fatalClosedCessna 310C · Springfield, CONTSB DEN75AD041Accident · 1 fatalClosedBellanca 8GCBC · Akron, CONTSB DEN75AD038Accident · 2 fatalClosedCessna 182 · Kiowa, CONTSB DEN75AD036Accident · 1 fatalClosedBell 206B · Parshall, CONTSB DEN75AD024Accident · 2 fatalClosedCessna 182A · Springfield, CONTSB DEN75AD018Accident · 1 fatalClosedBellanca 14-19 · Vail, CONTSB DEN75AD017Accident · 5 fatalClosedCessna 182J · Springfield, CONTSB DEN75AD007Accident · 4 fatalClosedGates Lear 25B · Briggsdale, CONTSB DEN73AD043Accident · 2 fatalClosedCessna 182C · Garfield, CONTSB DEN73AD033Accident · 1 fatalClosedNavion B · La Veta, CONTSB DEN73AD021Accident · 1 fatalClosedBeech F35 · Lindon, CONTSB DEN73AD002Accident · 1 fatalClosedCessna T210L · Monument, CONTSB DEN72AD038Accident · 1 fatalClosedMooney M20C · Parshall, CONTSB DEN72AD021Accident · 4 fatalClosedBeech D50C · Brandon, CONTSB DEN72AD020Accident · 1 fatalClosedErco 415-CD · Kit Carson, CONTSB DEN72AD013Accident · 3 fatalClosedBeech 70 · Fowler, CONTSB DEN71AD019Accident · 2 fatalClosedMooney M20A · Roggen, CONTSB DEN70AD043Accident · 2 fatalClosedCessna 172 · Rollinsville, CONTSB DEN70A0028Accident · 1 fatalClosedNavion G · Hudson, CONTSB DEN70F0150Accident · Serious injuriesClosedBensen B-8M · Aurora, CONTSB DEN70A0019Accident · 1 fatalClosedPiper PA-28 · Eads, CONTSB DEN69A0051Accident · 1 fatalClosedCessna 172G · Karval, CONTSB DEN69A0046Accident · 1 fatalClosedCessna 150G · Franktown, CONTSB DEN69A0024Accident · 2 fatalClosedPiper PA-24 · Platteville, CONTSB DEN68A0054Accident · 1 fatalClosedBeech 35-A33 · Brush, CONTSB DEN68A0044Accident · 4 fatalClosedMooney M20C · Briggsdale, CONTSB DEN68A0036Accident · 4 fatalClosedCessna 172G · Aspen, CONTSB DEN68A0024Accident · 2 fatalClosedCessna 172 · Pueblo, CO