NTSB investigations, MO
43 cases where the phase of flight was Uncontrolled descent.
Cases per year
| 1964 | 1 |
|---|---|
| 1965 | 3 |
| 1966 | 1 |
| 1967 | 3 |
| 1968 | 4 |
| 1969 | 3 |
| 1970 | 6 |
| 1971 | 2 |
| 1972 | 3 |
| 1973 | 2 |
| 1974 | 2 |
| 1975 | 1 |
| 1977 | 3 |
| 1978 | 4 |
| 1979 | 1 |
| 1981 | 1 |
| 1984 | 1 |
| 1990 | 1 |
| 2024 | 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\" = 'MO' 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" = 'MO' 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 CEN24LA197Accident · Serious injuriesClass 4 · LimitedFinal reportCessna U206 · Butler, MOThe jumper’s unintentional deployment of his emergency parachute and subsequent impact with the airplane’s horizontal stabilizer.NTSB MKC90LA148Accident · Minor injuriesLimited investigationFinal reportPiper PA28-151 · Columbia, MOAircraft control not maintained resulting in a stall/mush by the PIC.NTSB MKC84FA202Accident · 1 fatalField investigationFinal reportCulver LFA · Plattsburg, MOWitnesses viewed the acft in a nose high attitude at a low alt near the south end of rwy 18. The acft climbed a short distance, rolled to the left and descended nearly vertically to the ground.NTSB MKC81FA026Accident · 2 fatalClosedCessna 310R · Eldon, MONTSB MKC80FA007Accident · 1 fatalClosedCessna 210 · Mountain View, MONTSB MKC79FA006Accident · 4 fatalClosedCessna 182C · Eureka, MONTSB MKC78FA062Accident · 4 fatalClosedPiper PA-28 · Brighton, MONTSB MKC78FA052Accident · 3 fatalClosedBeech E35 · Potosi, MONTSB MKC78FA026Accident · 2 fatalClosedCessna 172 · Memphis, MONTSB MKC78FA012Accident · 2 fatalClosedPiper PA-28R · Fordland, MONTSB MKC78FA005Accident · 1 fatalClosedPiper PA-28 · Lamar, MONTSB MKC78FA003Accident · 1 fatalClosedAmer Avco AA-1B · St Louis, MONTSB MKC75AK036Accident · 2 fatalClosedCessna 182E · Thayer, MONTSB MKC75AK031Accident · 2 fatalClosedPiper PA-23 · Perryville, MONTSB MKC74FCG38Accident · 1 fatalClosedGlendenning G-1 · Long Lane, MONTSB MKC74AK030Accident · 1 fatalClosedBeech A45 · Cabool, MONTSB MKC74AK025Accident · 2 fatalClosedPiper PA-28R · Columbia, MONTSB MKC73AK045Accident · 4 fatalClosedPiper PA-28R · St.Charles, MONTSB MKC73AK032Accident · 1 fatalClosedCessna 172L · Thayer, MONTSB MKC73AK007Accident · 1 fatalClosedCessna 177 · Branson, MONTSB MKC72AK025Accident · 1 fatalClosedCessna 150L · Stover, MONTSB MKC72AK024Accident · 2 fatalClosedNavion A · Macon, MONTSB MKC71AK036Accident · 3 fatalClosedCessna 182 · Mexico, MONTSB MKC71AK028Accident · 2 fatalClosedCessna 182M · Kingsville, MONTSB MKC71AK014Accident · 3 fatalClosedBeech V35A · Aldrich, MONTSB MKC71AK007Accident · 5 fatalClosedCessna 177 · Stover, MONTSB MKC70FCG18Accident · Serious injuriesClosedCessna 150D · Drexel, MONTSB MKC70AK047Accident · 4 fatalClosedCessna 182H · Mountain Grove, MONTSB MKC70A0019Accident · 2 fatalClosedCessna 172C · Washington, MONTSB MKC69A0049Accident · 1 fatalClosedCessna 310C · High Hill, MONTSB MKC69A0043Accident · 1 fatalClosedHughes 269B · Kansas City, MONTSB MKC69A0039Accident · 5 fatalClosedMitsubishi MU-2B · Springfield, MONTSB MKC69F0287Accident · Serious injuriesClosedAeronca 7DC · Sikeston, MONTSB MKC69A0012Accident · 1 fatalClosedPiper PA-22 · Gravois Mills, MONTSB MKC69F0150Accident · Serious injuriesClosedErcoupe 415-C · New London, MONTSB MKC68A0034Accident · 2 fatalClosedPiper PA-24 · Aurora, MONTSB MKC68A0030Accident · 3 fatalClosedBeech A23 · Stoutland, MONTSB MKC68A0021Accident · 2 fatalClosedPiper PA-28 · Kennett, MONTSB MKC67A0011Accident · 2 fatalClosedCessna 150E · Smithville, MONTSB MKC65A0074Accident · 4 fatalClosedBeechcraft 35-33 · 10s Maryville, MONTSB MKC66A0011Accident · 1 fatalClosedCessna 140A · Ava, MONTSB MKC65A0064Accident · 1 fatalClosedPiper PA-28 · 4sw Holden, MONTSB UNK65X0457Accident · 4 fatalClosedPiper PA-24 · West Alton, MO