NTSB investigations, MI
49 cases where the phase of flight was Uncontrolled descent.
Cases per year
| 1964 | 1 |
|---|---|
| 1965 | 4 |
| 1966 | 4 |
| 1967 | 1 |
| 1968 | 3 |
| 1969 | 3 |
| 1970 | 2 |
| 1971 | 6 |
| 1972 | 4 |
| 1973 | 3 |
| 1974 | 2 |
| 1975 | 1 |
| 1976 | 5 |
| 1977 | 1 |
| 1978 | 1 |
| 1979 | 2 |
| 1980 | 1 |
| 1991 | 1 |
| 2002 | 2 |
| 2005 | 1 |
| 2010 | 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\" = 'MI' 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" = 'MI' 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 CEN11CA003Accident · Minor injuriesData collectionFinal reportCessna 310J · St. Johns, MIThe failure by the pilot to attain/maintain a climb rate for undetermined reasons during a go-around.NTSB CHI05CA120Accident · No injuriesData collectionFinal reportBrantly Helicopter B-2B · Lakeview, MIThe dual student failed to maintain adequate rotor rpm during the practice autorotation and the instructor's delay in attempting remedial action. A factor associated with the accident was the soft terrain that was encountered.NTSB CHI02FA172Accident · 1 fatalField investigationFinal reportCessna 182A · Foster City, MIThe incapacitation of the pilot. A contributing factor was the pilot and medical examiner providing false information on the pilot's medical applications.NTSB CHI02LA121Accident · 2 fatalLimited investigationFinal reportYoder GP-4 · Mount Pleasant, MIThe inadvertent stall/spin by the pilot-in-command.NTSB CHI91FA266Accident · 1 fatalField investigationFinal reportBellanca 17-30A · Boyne City, MIThe pilot in command's failure to maintain proper altitude. A factor contributing to the accident was the pilot in command's diverted attention..NTSB CHI81FA012Accident · 2 fatalClosedPiper PA-28R · Kalkaska, MINTSB CHI80FAMS1Accident · 1 fatalClosedPiper PA-24 · Ganges, MINTSB DCA79AA016Accident · Minor injuriesClosedBoeing 727-31 · Saginaw, MINTSB CHI79FA019Accident · 1 fatalClosedCessna 150M · Big Bay Denoc, MINTSB CHI77FEC48Accident · 1 fatalClosedPiper PA-28 · Romeo, MINTSB CHI77FA016Accident · 1 fatalClosedErco 415-C · Palo, MINTSB CHI77AC095Accident · 2 fatalClosedBeech 95 · L'Anse, MINTSB CHI76FEM53Accident · 2 fatalClosedThorp T-18 · Menominee, MINTSB CHI76AC081Accident · 2 fatalClosedPiper PA-22 · Gadwin, MINTSB CHI76AC047Accident · 1 fatalClosedCessna 172L · Bay City, MINTSB CHI76FEM05Accident · 1 fatalClosedPiper PA-36 · Munger, MINTSB CHI75AC020Accident · 2 fatalClosedMooney M20F · Manistique, MINTSB CHI74AC065Accident · 3 fatalClosedBeech A35 · Traverse Cty, MINTSB CHI73AC093Accident · 3 fatalClosedStinson 108-3 · Freeland, MINTSB CHI73AC079Accident · 2 fatalClosedBeech E35 · Hanover, MINTSB CHI73AC063Accident · 2 fatalClosedCessna 150G · Berrien Spgs, MINTSB CHI73AC058Accident · 2 fatalClosedLear 23 · Romulus, MINTSB CHI73DEC04Accident · No injuriesClosedHughes 269A · Troy, MINTSB CHI72AC078Accident · 1 fatalClosedPiper PA-28 · Stockbridge, MINTSB CHI72AC067Accident · 2 fatalClosedBeech 35 · Saginaw, MINTSB CHI72AC032Accident · 1 fatalClosedPiper PA-28 · Concord, MINTSB CHI72AC018Accident · 4 fatalClosedPiper PA-28 · Marshall, MINTSB CHI72AC017Accident · 2 fatalClosedPiper PA-22 · Cadillac, MINTSB CHI71AC079Accident · 2 fatalClosedCessna 182L · Ionia, MINTSB CHI71AC071Accident · 1 fatalClosedBeech 35-B33 · Bellaire, MINTSB CHI71FBJ56Accident · Minor injuriesClosedCessna 150H · Gladstone, MINTSB CHI70FDW23Accident · No injuriesClosedBell 47-J2 · Union Lake, MINTSB CHI70AC072Accident · 4 fatalClosedPiper PA-28 · Fowler, MINTSB CHI70A0029Accident · 1 fatalClosedPiper PA-23 · Charlotte, MINTSB CHI70F0290Accident · No injuriesClosedBeech F35 · Freeland, MINTSB CHI69A0098Accident · 3 fatalClosedBeech 23 · Mackinaw Cty, MINTSB CHI69A0052Accident · 1 fatalClosedGlobe GC-1B · Reed City, MINTSB CHI69F0008Accident · Serious injuriesClosedCessna 172D · Tecumseh, MINTSB CHI68A0059Accident · 2 fatalClosedLuscombe 8E · Jeddo, MINTSB CHI67A0090Accident · 1 fatalClosedCessna 337A · Sault St Mar, MINTSB CHI67A0070Accident · 2 fatalClosedAero Comdr 680F · Bangor, MINTSB CHI67A0050Accident · 6 fatalClosedPiper PA-32 · Dowagiac, MINTSB CHI66A0082Accident · 1 fatalClosedPiper PA-23 · Jackson, MINTSB CHI66A0080Accident · 2 fatalClosedMooney MK 20C · Freeland, MINTSB CHI66A0041Accident · 2 fatalClosedLear Jet 23 · Jackson, MINTSB CHI66F0377Accident · 1 fatalClosedPiper J3C-65 · Saline, MINTSB CHI66A0031Accident · 3 fatalClosedCessna 172 · White Cloud, MINTSB CHI65A0073Accident · 2 fatalClosedPiper PA-22 · Pontiac, MINTSB UNK65X1189Accident · 4 fatalClosedCurtis-Writ C-46A · Detroit, MI