NTSB investigations, 2002, UT
12 cases where the phase of flight was Landing.
Cases per year
| 1964 | 30 |
|---|---|
| 1965 | 16 |
| 1966 | 27 |
| 1967 | 22 |
| 1968 | 15 |
| 1969 | 16 |
| 1970 | 11 |
| 1971 | 4 |
| 1972 | 10 |
| 1973 | 11 |
| 1974 | 4 |
| 1975 | 8 |
| 1976 | 18 |
| 1977 | 12 |
| 1978 | 7 |
| 1979 | 11 |
| 1980 | 17 |
| 1981 | 14 |
| 1982 | 12 |
| 1983 | 6 |
| 1984 | 11 |
| 1985 | 7 |
| 1986 | 10 |
| 1987 | 9 |
| 1988 | 6 |
| 1989 | 9 |
| 1990 | 9 |
| 1991 | 10 |
| 1992 | 3 |
| 1993 | 10 |
| 1994 | 8 |
| 1995 | 6 |
| 1996 | 8 |
| 1997 | 11 |
| 1998 | 10 |
| 1999 | 8 |
| 2000 | 11 |
| 2001 | 13 |
| 2002 | 12 |
| 2003 | 10 |
| 2004 | 13 |
| 2005 | 8 |
| 2006 | 9 |
| 2007 | 13 |
| 2008 | 17 |
| 2009 | 14 |
| 2010 | 8 |
| 2011 | 10 |
| 2012 | 6 |
| 2013 | 7 |
| 2014 | 6 |
| 2015 | 7 |
| 2016 | 5 |
| 2017 | 9 |
| 2018 | 9 |
| 2019 | 12 |
| 2020 | 5 |
| 2021 | 6 |
| 2022 | 13 |
| 2023 | 13 |
| 2024 | 11 |
| 2025 | 8 |
| 2026 | 12 |
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 year(c.\"eventDate\") = 2002
AND c.\"eventStateOrRegion\" = 'UT' AND c.\"eventCountry\" = 'USA'
AND c.\"mKey\" IN (SELECT case_mkey FROM case_phases WHERE main = 550)
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 year(c."eventDate") = 2002
AND c."eventStateOrRegion" = 'UT' AND c."eventCountry" = 'USA'
AND c."mKey" IN (SELECT case_mkey FROM case_phases WHERE main = 550)
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 DEN03LA017Accident · No injuriesLimited investigationFinal reportPiper PA-28R-201 · Tooele, UTthe inadvertent retraction of the landing gear during landing roll by the dual student. Contributing factors included the dual student's lack of familiarity with the aircraft, inadequate supervision by the flight instructor, and improper rigging of the…NTSB DEN03LA015Accident · No injuriesLimited investigationFinal reportCessna 150F · Logan, UTThe pilot's premature flare and his failure to maintain airspeed, resulting in a stall. A contributing factor was the dusk light conditions.NTSB DEN03LA001Accident · Serious injuriesLimited investigationFinal reportLet Blanik L-13 · Morgan, UTthe pilot's inadequate inflight planning and decision which resulted in an unsuitable off-field landing site. A contributing factor was downdraft weather conditions.NTSB DEN02LA108Accident · No injuriesLimited investigationFinal reportStinson L-5E · Spanish Fork, UTthe pilot's inadequate use of rudder and failure to maintain direcctional control following a bounced landing. A contributing factor was the pilot's improper recovery from the bounced landing.NTSB DEN02LA094Accident · No injuriesLimited investigationFinal reportCollette RV6 · Nephi, UTThe pilot's failure to maintain aircraft control during landing roll, resulting in his attempt to go-around and an inadvertent stall/mush. A contributing factor was the lack of suitable terrain for a forced landing.NTSB DEN02LA087Accident · No injuriesLimited investigationFinal reportCessna R172K · Monticello, UTthe student pilot's failure to maintain aircraft control during landing flare, which resulted in a hard landing. Contributing factors include the porpoise and subsequent bounced landing and the student pilot's lack of total experience.NTSB DEN02LA095Accident · No injuriesLimited investigationFinal reportLet Blanik L-13 · Lehi, UTthe pilot's inadequate in-flight planning resulting in the glider impacting terrain short of the runway, and the pilot's subsequent abrupt handling of the glider when it became airborne again, which resulted in a hard second landing. A contributing factor was…NTSB DEN02LA077Accident · No injuriesLimited investigationFinal reportCessna 150L · Hurricane, UTpilot's failure to maintain directional control during landing roll, resulting in an inadvertent ground loop.NTSB DEN02LA045Accident · No injuriesLimited investigationFinal reportCessna 172K · Cedar City, UTthe pilot's inadvertent stall/mush during the landing flare/touchdown. A contributing factor was the gusty crosswind weather conditions.NTSB DEN02LA035Accident · No injuriesLimited investigationFinal reportCessna 310B · Provo, UTFailure of the nose landing gear retraction/extension assembly for an undetermined reason, which resulted in collapse of the nose landing gear on landing.NTSB DEN02LA038Accident · No injuriesLimited investigationFinal reportCessna T337D · St. George, UTthe pilot's misjudged landing flare, which resulted in an inadvertent stall/mush and a hard landing.NTSB DEN02LA021Accident · Minor injuriesLimited investigationFinal reportCessna 152 · Logan, UTthe pilot's failure to maintain aircraft control during landing roll. Contributing factors were the runway's patchy snow and ice conditions and a snow bank along the side of the runway.