NTSB investigations, AZ
55 cases where the phase of flight was Uncontrolled descent.
Cases per year
| 1964 | 4 |
|---|---|
| 1965 | 3 |
| 1967 | 2 |
| 1968 | 2 |
| 1969 | 3 |
| 1970 | 6 |
| 1971 | 4 |
| 1972 | 5 |
| 1973 | 4 |
| 1975 | 3 |
| 1976 | 3 |
| 1977 | 2 |
| 1978 | 3 |
| 1979 | 2 |
| 1980 | 1 |
| 1981 | 3 |
| 1986 | 1 |
| 1992 | 2 |
| 1998 | 1 |
| 2000 | 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\" = 'AZ' 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" = 'AZ' 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 LAX01FA036Accident · 2 fatalField investigationFinal reportPiper PA28-200 · Teec Nos Pos, AZIn-flight loss of control resulting in airframe structural failure. Contributing to the accident was the pilot's inadvertant visual flight into instrument meteorological conditions.NTSB LAX98LA298Accident · No injuriesLimited investigationFinal reportAero Vodochody Aero. Works L-39 · Mesa, AZThe pilot's improper flare and his failure to follow the proper procedures for the aircraft and to maintain control of the aircraft.NTSB LAX92LA255Accident · No injuriesLimited investigationFinal reportStinson 108-3 · Window Rock, AZThe failure of the pilot to calculate the aircraft's performance data and perform a weather evauluation. The existing high density altitude was a factor in the accident.NTSB LAX92LA153Accident · 2 fatalLimited investigationFinal reportBeech F33A · Payson, AZThe pilot's poor preflight planning/preparation by intentionally flying into known adverse weather and his poor in-flight decision by not flying to an alternate airport when the airplane began to encounter icing. Contributing to this accident was the icing…NTSB LAX87FA055Accident · 3 fatalField investigationFinal reportPiper PA-24-250 · Eloy, AZIn cavu weather conditions, the acft crashed into open, level desert terrain at a 30 deg, nose low and near wings level attitude. No pre-impact mechanical malfunctions were found with the aircraft. There were no witnesses to the accident.NTSB LAX81FA063Accident · 2 fatalClosedBeech B35 · Winkelman, AZNTSB LAX81FA037Accident · 4 fatalClosedBeech S35 · Casa Grande, AZNTSB LAX81FA034Accident · 6 fatalClosedBeech A36 · Peach Springs, AZNTSB LAX80FA059Accident · 4 fatalClosedCessna 182G · Grand Canyon, AZNTSB LAX79FA046Accident · 2 fatalClosedCessna 310R · Heber, AZNTSB LAX79FA025Accident · 4 fatalClosedCessna 175 · Wickenburg, AZNTSB LAX79FA022Accident · 4 fatalClosedPiper PA-24 · Springerville, AZNTSB LAX78FA034Accident · 3 fatalClosedCessna 182P · Benson, AZNTSB LAX78FA020Accident · 2 fatalClosedCessna 182F · Sells, AZNTSB LAX77FA031Accident · 4 fatalClosedCessna 172 · Payson, AZNTSB LAX77FA035Accident · 1 fatalClosedCessna 182H · Tuscon, AZNTSB LAX77FA005Accident · 1 fatalClosedCessna U206 · Joseph City, AZNTSB LAX76SL071Accident · 1 fatalClosedCessna 172H · Winslow, AZNTSB LAX76AL053Accident · 4 fatalClosedCessna 172 · Prescott, AZNTSB LAX76AL001Accident · 1 fatalClosedCessna 411 · Show Low, AZNTSB LAX75AL008Accident · 1 fatalClosedCessna 182P · Holbrook, AZNTSB LAX75AL052Accident · 1 fatalClosedPiper PA-28 · Sedona, AZNTSB LAX74AL038Accident · 1 fatalClosedBeech 95-C55 · Kayenta, AZNTSB LAX74DUJ16Accident · No injuriesClosedGrumman G-164A · Arlington, AZNTSB LAX73AL062Accident · 3 fatalClosedBellanca 14-19 · Parker, AZNTSB LAX73AL056Accident · 2 fatalClosedMooney M20C · Globe, AZNTSB LAX73AL023Accident · 3 fatalClosedPiper PA-28 · Dragoon, AZNTSB LAX73AL015Accident · 1 fatalClosedAero Comdr 200D · Wittmann, AZNTSB LAX73AL014Accident · 1 fatalClosedCessna 172F · Salome, AZNTSB LAX72AL061Accident · 2 fatalClosedAero Comdr 500-A · Safford, AZNTSB LAX72DUJ91Accident · No injuriesClosedPiper PA-28 · Cave Creek, AZNTSB LAX72AL030Accident · 1 fatalClosedCessna 172A · Bagdad, AZNTSB LAX71FUJ03Accident · No injuriesClosedCessna 150 · Yuma, AZNTSB LAX71AL069Accident · 3 fatalClosedPiper PA-24 · Roosevelt, AZNTSB LAX71AL059Accident · 2 fatalClosedCessna 182 · Jerome, AZNTSB LAX72AL021Accident · 2 fatalClosedPiper PA-28 · Mcnary, AZNTSB LAX71DUJ28Accident · Minor injuriesClosedHughes 269B · Willcox, AZNTSB LAX71AL011Accident · 3 fatalClosedPiper PA-22 · Alpine, AZNTSB LAX70AL069Accident · 3 fatalClosedCessna 182H · Young, AZNTSB LAX70AL061Accident · 6 fatalClosedPiper PA-32 · Colrado Cty, AZNTSB LAX70AL055Accident · 1 fatalClosedCessna 172 · Douglas, AZNTSB LAX70A0028Accident · 4 fatalClosedBeech M35 · Happy Jack, AZNTSB LAX70A0027Accident · 3 fatalClosedBeech S35 · Bouse, AZNTSB LAX69F0293Accident · Serious injuriesClosedBensen B-8M · Litchfld Pk, AZNTSB LAX69A0001Accident · 2 fatalClosedPiper PA-28 · Oracle, AZNTSB LAX68A0094Accident · 2 fatalClosedBellanca 17-30 · Kayenta, AZNTSB LAX68A0008Accident · 3 fatalClosedMooney M20C · Flagstaff, AZNTSB LAX67A0075Accident · Minor injuriesClosedBell 47G-3B · Peach Spring, AZNTSB DEN66A0042Accident · 2 fatalClosedPiper PA-22 · Quartzsite, AZNTSB DEN66A0039Accident · 2 fatalClosedCessna 210 · Payson, AZ