NTSB investigations, OH
49 cases where the phase of flight was Uncontrolled descent.
Cases per year
| 1964 | 1 |
|---|---|
| 1965 | 1 |
| 1966 | 5 |
| 1967 | 4 |
| 1968 | 4 |
| 1969 | 6 |
| 1970 | 1 |
| 1971 | 4 |
| 1972 | 2 |
| 1973 | 4 |
| 1974 | 1 |
| 1977 | 2 |
| 1978 | 3 |
| 1980 | 3 |
| 1981 | 3 |
| 1989 | 1 |
| 1994 | 1 |
| 2007 | 1 |
| 2012 | 1 |
| 2022 | 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\" = 'OH' 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" = 'OH' 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 ERA22FA262Accident · 2 fatalClass 3 · FieldFinal reportEnstrom F28 · Greenville, OHAn impact with terrain for undetermined reasons.NTSB CEN12FA251Accident · 1 fatalField investigationFinal reportCirrus Design SR22 · Newcomerstown, OHThe pilot’s loss of airplane control in instrument meteorological conditions due to his distraction by electrical system anomalies, which resulted in an uncontrolled descent. The reason for the electrical system anomalies could not be determined.NTSB CHI07LA086Accident · 1 fatalLimited investigationFinal reportCamair 480 · East Liberty, OHThe uncontrolled descent for undetermined reasons.NTSB BFO94LA097Accident · 1 fatalLimited investigationFinal reportFalen Commander 503 · Georgetown, OHThe gyroplane's uncontrolled descent into terrain due to undetermined reasons.NTSB ATL89DEK02Accident · 2 fatalFinal reportAlexander RV-4 · Delaware, OHPilot inadvertently lost control of the aircraft which resulted in a stall spin and collision with the ground.NTSB CHI82FA005Accident · 1 fatalClosedBLN Works FF-7 · Delaware, OHNTSB CHI81FA083Accident · 2 fatalClosedMooney M20C · Plymouth, OHNTSB CHI81FA079Accident · 3 fatalClosedAero Comdr 100 · Columbia Stat, OHNTSB CHI81FEK08Accident · No injuriesClosedRaven RX-7 · Dublin, OHNTSB CHI80IA036Incident · No injuriesClosedLear Jet 35A · Columbus, OHNTSB CHI80FA033Accident · 3 fatalClosedPiper PA-28 · Medina, OHNTSB CHI78FA053Accident · 2 fatalClosedCessna 177RG · Jefferson, OHNTSB CHI78FEI32Accident · 2 fatalClosedLockheed P38L · Whitehouse, OHNTSB CHI78FA029Accident · 1 fatalClosedGrum Amer AA5-B · Sandusky, OHNTSB CHI78FA006Accident · 2 fatalClosedCessna 150G · Columbus, OHNTSB CHI77FEI42Accident · 1 fatalClosedFalck Spec · Cleveland, OHNTSB CHI75AC025Accident · 3 fatalClosedBellanca 14-19 · Blue Ash, OHNTSB CHI74AC038Accident · 2 fatalClosedAerostar 601 · Raymond, OHNTSB CHI74AC035Accident · 1 fatalClosedMooney M20A · Summitville, OHNTSB CHI74AC032Accident · 1 fatalClosedCessna 150F · Columbiana, OHNTSB CHI73AC082Accident · 1 fatalClosedAero Comdr 112 · Milford Ctr, OHNTSB CHI72AC088Accident · 1 fatalClosedPiper PA-28 · Richfield, OHNTSB CHI72FEI40Accident · 1 fatalClosedBensen B8 · Middlefield, OHNTSB CHI72AC049Accident · 2 fatalClosedCessna 175A · New Lebanon, OHNTSB CHI72AC035Accident · 5 fatalClosedPiper PA-28 · Pemberton, OHNTSB CHI71AC083Accident · 1 fatalClosedPiper PA-28 · Beverly, OHNTSB CHI71AC074Accident · 4 fatalClosedMooney M20E · Willoughby, OHNTSB CHI70AC065Accident · 1 fatalClosedPiper PA-28R · Vienna, OHNTSB CHI70F0379Accident · No injuriesClosedScheutzow B · Columbia Sta, OHNTSB CHI70F0128Accident · Minor injuriesClosedCessna 140 · Findlay, OHNTSB CHI69A0100Accident · 4 fatalClosedPiper PA-28 · Archbold, OHNTSB CHI69F0586Accident · 1 fatalClosedBensen B-8M · Middletown, OHNTSB CHI69F0529Accident · Serious injuriesClosedBell 206A · Springfield, OHNTSB CHI69F0562Accident · Serious injuriesClosedPiper PA-28 · Richfield, OHNTSB CHI69A0021Accident · 3 fatalClosedCessna 172 · Shade, OHNTSB CHI69A0007Accident · 1 fatalClosedBeech G35 · Fort Loramie, OHNTSB CHI68A0083Accident · 1 fatalClosedCessna 210F · Bellville, OHNTSB CHI68A0078Accident · 2 fatalClosedCessna 182A · Medina, OHNTSB CHI68A0057Accident · 1 fatalClosedCessna 172 · Millersburg, OHNTSB CHI68A0048Accident · 2 fatalClosedPiper PA-28 · South Solon, OHNTSB CHI68A0014Accident · 2 fatalClosedErco 415-C · Madison, OHNTSB CHI67A0113Accident · 1 fatalClosedBeech C35 · Twinsburg, OHNTSB CHI67A0072Accident · 1 fatalClosedPiper PA-22 · Pataskala, OHNTSB CHI67A0014Accident · 1 fatalClosedPiper PA-28 · Whitehall, OHNTSB CHI67A0026Accident · 2 fatalClosedPiper PA-24 · New Lexingtn, OHNTSB CHI66A0088Accident · 2 fatalClosedCessna 182H · Robins, OHNTSB CHI66A0065Accident · 2 fatalClosedBeech A23 · Findlay, OHNTSB CHI65F0143Accident · Serious injuriesClosedNavion NAV-4 · Athens, OHNTSB UNK64X1437Accident · 1 fatalClosedPiper PA-23 · Lilly Chapel, OH