NTSB investigations, IL
62 cases where the phase of flight was Uncontrolled descent.
Cases per year
| 1964 | 1 |
|---|---|
| 1965 | 2 |
| 1966 | 6 |
| 1967 | 2 |
| 1968 | 2 |
| 1969 | 4 |
| 1970 | 4 |
| 1971 | 4 |
| 1972 | 3 |
| 1973 | 3 |
| 1974 | 3 |
| 1975 | 4 |
| 1976 | 3 |
| 1977 | 3 |
| 1978 | 3 |
| 1979 | 5 |
| 1980 | 2 |
| 1981 | 4 |
| 1983 | 1 |
| 1984 | 1 |
| 1991 | 1 |
| 2025 | 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\" = 'IL' 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" = 'IL' 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 ERA25FA179Accident · 4 fatalClass 3 · FieldPreliminary reportCessna 180 · Trilla, ILOn April 19, 2025, at 1016 central daylight time, a Cessna 180G, N4679U, was destroyed when it was involved in an accident near Trilla, Illinois. The private pilot and three passengers were fatally injured. The airplane was operated under Title 14 Code of…NTSB CHI91LA136Accident · No injuriesLimited investigationFinal reportPiper PA-28-161 · Grayslake, ILThe instructor's inadequate compensation for wind conditions. Factors were the wind gusts and the instructor's failure to maintain airspeed.NTSB CHI84LA260Accident · Serious injuriesLimited investigationFinal reportBalloon Works Firefly 7 · Geneva, ILThe Balloon descended in an area of thunderstorms and turbulence and collided with trees. The plt said the Balloon 'caved in' and descended rapidly. The plts husband and a passenger revealed that the Balloon was 'vented' by the plt to land before reaching a…NTSB CHI83FA148Accident · 1 fatalField investigationFinal reportPiper PA-32R-300 · Rochester, ILThe acft experienced an in-flt break-up during descent. The pilot had reported on the radio to Kansas city ARTCC that hewas having severe chest pains and shortness of breath. Radar contact with the plane was lost at 1425 CST. The pilot had reported he was…NTSB CHI81FA085Accident · 2 fatalClosedPiper PA-28R · Chicago, ILNTSB CHI81FA082Accident · 2 fatalClosedBellanca 7ECA · Delevan, ILNTSB CHI81DEV17Accident · No injuriesClosedBalloon WKS 7B · Normal, ILNTSB CHI81FA022Accident · 1 fatalClosedCessna 150M · Timewell, ILNTSB CHI80FA069Accident · 1 fatalClosedCessna 150J · Akin, ILNTSB CHI80FA034Accident · 3 fatalClosedCessna 182 · Alhambra, ILNTSB CHI80FEV07Accident · 1 fatalClosedAmerican AA-1B · Charleston, ILNTSB CHI79FA061Accident · 1 fatalClosedMooney M20C · Brocton, ILNTSB CHI79FA057Accident · 3 fatalClosedPiper PA-22 · St Charles, ILNTSB CHI79FA052Accident · 2 fatalClosedCessna 172M · Chenoa, ILNTSB CHI79AA041Accident · 6 fatalClosedBeech 58TC · St.Anne, ILNTSB CHI79FA011Accident · 1 fatalClosedPiper PA-24 · Ashton, ILNTSB CHI79FA028Accident · 1 fatalClosedPiper PA-32R · Rock Falls, ILNTSB CHI78FA025Accident · 3 fatalClosedCessna T210M · Beecher, ILNTSB CHI77FA073Accident · 2 fatalClosedBeech C90 · Pontiac, ILNTSB CHI77FA064Accident · 4 fatalClosedPiper PA-28R · De Witt, ILNTSB CHI77FEV15Accident · No injuriesClosedCessna 177RG · Springfield, ILNTSB CHI77FA014Accident · 3 fatalClosedCessna 172M · Vandalia, ILNTSB CHI77FA002Accident · 1 fatalClosedCessna 177B · Manteno, ILNTSB CHI76AC093Accident · 3 fatalClosedCessna T210L · Peoria, ILNTSB CHI76AC013Accident · 6 fatalClosedPiper PA-32 · Chandlerville, ILNTSB CHI76FEE08Accident · Serious injuriesClosedCessna 182J · Kankakee, ILNTSB CHI75AC091Accident · 5 fatalClosedCessna 177B · Carpentersvile, ILNTSB CHI75AC078Accident · 2 fatalClosedPiper PA-28 · Trimble, ILNTSB CHI75AC015Accident · 1 fatalClosedCessna 172F · Mayview, ILNTSB CHI75FEE08Accident · No injuriesClosedPiper PA-30 · Chicago, ILNTSB CHI74AC062Accident · 1 fatalClosedPiper PA-32 · Chicago, ILNTSB CHI74AC054Accident · 4 fatalClosedBeech A23A · Cabery, ILNTSB CHI74AC029Accident · 1 fatalClosedAerostar 601 · Chicago, ILNTSB CHI74AC012Accident · 1 fatalClosedCessna 182J · Chicago, ILNTSB NYC73AN081Accident · 4 fatalClosedPiper PA-28 · Grand Tower, ILNTSB CHI72AC094Accident · 4 fatalClosedPiper PA-24 · Ramsey, ILNTSB CHI72AC071Accident · 3 fatalClosedCessna 172G · Orion, ILNTSB CHI72AC009Accident · 2 fatalClosedCessna 182K · Springfield, ILNTSB CHI72AC003Accident · 5 fatalClosedPiper PA-24 · Philo, ILNTSB CHI71FBD65Accident · 1 fatalClosedPiper PA-28 · Kewanee, ILNTSB CHI71AC064Accident · 5 fatalClosedPiper PA-32 · Geneva, ILNTSB CHI71AC042Accident · 3 fatalClosedPiper PA-28 · Effingham, ILNTSB CHI71AC016Accident · 4 fatalClosedPiper PA-28 · Manteno, ILNTSB CHI70FBD24Accident · No injuriesClosedRolladen LS-1B · Plainfield, ILNTSB CHI70AC074Accident · 2 fatalClosedCessna 336 · Chicago, ILNTSB CHI70A0032Accident · 1 fatalClosedPiper PA-32 · Northlake, ILNTSB MKC70A0027Accident · 2 fatalClosedCessna 150E · Esmond, ILNTSB CHI69A0096Accident · 1 fatalClosedCessna 150G · Ofallon, ILNTSB CHI69F0521Accident · Serious injuriesClosedBensen B-8M · Lacon, ILNTSB CHI68F0781Accident · No injuriesClosedTaylorcraft BC12-D · Hillsdale, IL