NTSB investigations, 1996
19 cases where the phase of flight was Unknown.
Cases per year
| 1962 | 1 |
|---|---|
| 1963 | 1 |
| 1964 | 29 |
| 1965 | 26 |
| 1966 | 36 |
| 1967 | 48 |
| 1968 | 59 |
| 1969 | 31 |
| 1970 | 33 |
| 1971 | 22 |
| 1972 | 30 |
| 1973 | 28 |
| 1974 | 27 |
| 1975 | 40 |
| 1976 | 15 |
| 1977 | 30 |
| 1978 | 38 |
| 1979 | 41 |
| 1980 | 30 |
| 1981 | 27 |
| 1982 | 51 |
| 1983 | 46 |
| 1984 | 47 |
| 1985 | 41 |
| 1986 | 18 |
| 1987 | 23 |
| 1988 | 24 |
| 1989 | 20 |
| 1990 | 25 |
| 1991 | 15 |
| 1992 | 22 |
| 1993 | 22 |
| 1994 | 12 |
| 1995 | 13 |
| 1996 | 19 |
| 1997 | 16 |
| 1998 | 20 |
| 1999 | 23 |
| 2000 | 13 |
| 2001 | 18 |
| 2002 | 9 |
| 2003 | 12 |
| 2004 | 6 |
| 2005 | 11 |
| 2006 | 7 |
| 2007 | 10 |
| 2008 | 7 |
| 2009 | 10 |
| 2010 | 20 |
| 2011 | 16 |
| 2012 | 19 |
| 2013 | 14 |
| 2014 | 25 |
| 2015 | 27 |
| 2016 | 35 |
| 2017 | 37 |
| 2018 | 45 |
| 2019 | 26 |
| 2020 | 39 |
| 2021 | 60 |
| 2022 | 71 |
| 2023 | 40 |
| 2024 | 60 |
| 2025 | 73 |
| 2026 | 219 |
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\") = 1996
AND c.\"mKey\" IN (SELECT case_mkey FROM case_phases WHERE main = 990)
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") = 1996
AND c."mKey" IN (SELECT case_mkey FROM case_phases WHERE main = 990)
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 MIA97FA043Accident · 1 fatalField investigationFinal reportForney F-1 · Middleburg, FLVFR flight by the noninstrument-rated pilot into instrument meteorological conditions (IMC), which resulted in spatial disorientation and an uncontrolled descent into a wooded area. Factors relating to the accident were: failure of the pilot to obtain a…NTSB FTW97LA047Accident · No injuriesLimited investigationFinal reportCessna 182E · Alamosa, COaircraft damage for undetermined rteasons.NTSB CHI97FA024Accident · 1 fatalField investigationFinal reportCessna 177B · Chancellor, SDthe pilot's attempted flight with known deficiencies in equipment, his initiating VFR flight into IMC conditions, his spatial disorientation and loss of control of the airplane. Factors were fog, dark night, and inoperative directional gyro.NTSB SEA97FA016Accident · 1 fatalField investigationFinal reportRobinson R22 Beta · Halsey, ORThe pilot-in-command's failure to maintain main rotor RPM, resulting in loss of control of the helicopter and collision with terrain. Factors included the pilot's lack of experience in helicopters, and interpersonal relationship problems between the pilot and…NTSB LAX97LA013Accident · Serious injuriesLimited investigationFinal reportPiper PA-28-181 · San Diego, CAthe student pilot's impairment of judgment and performance due to alcohol, his subsequent flight into adverse weather conditions, and his failure to maintain clearance from obstructions (power lines). Factors related to the accident were: darkness, low…NTSB CHI96LA352Accident · No injuriesLimited investigationFinal reportCessna 172RG · Aurora, ILundetermined.NTSB CHI96FA334Accident · 2 fatalField investigationFinal reportThocker RV-4 · Muncie, INwas the in-flight disconnection of the horizontal and vertical stabilizer forward attachments.NTSB NYC96FA182Accident · 1 fatalField investigationFinal reportPiper PA-28-140 · Frankford Twnsp, NJthe pilot's inadequate preflight planning/preparation by not obtaining a preflight weather briefing, his VFR flight into instrument meteorological conditions (IMC), and his failure to maintain control of the aircraft after becoming spatial disoriented.…NTSB CHI96FA301Accident · 2 fatalField investigationFinal reportBellanca 7GCAA · Hinckley, ILthe instructor pilot exceeded the design stress limits of the aircraft which resulted in the overload failure of the wing. A factor was that the weight and balance of the aircraft was exceeded by the instructor pilot.NTSB ANC96FAMS1Accident · 2 fatalMissing aircraftFinal reportGrumman G21-G · Dutch Harbor, AKUndetermined.NTSB SEA96FA170Accident · 3 fatalField investigationFinal reportPiper PA-28R-200 · Libby, MTcollision with rising mountainous terrain for unknown reason(s).NTSB MIA96FA186Accident · 1 fatalField investigationFinal reportCessna 152 · New Smyrna Bch, FLthe pilot's impairment of judgment and performance because of gastroenteritis and use of the prescription drug Phenergan (promethazine).NTSB SEA96LA164Accident · No injuriesLimited investigationFinal reportPiper PA-46-350P · Hillsboro, ORblockage of the vents to both wing fuel tanks, after unknown personnel failed to remove tape (protective covering) from the vents, which resulted in collapsed fuel tanks (and wing damage).NTSB LAX96LA247Accident · Serious injuriesLimited investigationFinal reportCessna R172K · Oroville, CAundetermined.NTSB ATL96FA094Accident · 1 fatalField investigationFinal reportCessna 172N · Arlington, TNThe pilot's failure to maintain clearance above the trees. A factor was the dark night.NTSB ANC96FA081Accident · 1 fatalField investigationFinal reportRobinson R-22 Mariner · Mekoryuk, AKA loss of engine power due to fuel contamination found in the fuel supply and helicopter fuel system. Factors in the accident were the pilot's inadequate filtration (servicing of the helicopter) of the fuel supply, and the pilot's inadequate performance of…NTSB ANC96FA079Accident · 2 fatalField investigationFinal reportRepublic RC-3 Seabee · Ketchikan, AKthe airplane crashed for undetermined reason(s).NTSB ATL96FAMS1Accident · 3 fatalMissing aircraftFinal reportAero Commander 500-B · MissingUndetermined.NTSB FTW96LA106Accident · No injuriesLimited investigationFinal reportBellanca 17-30A · Belen, NMprevious damage, looseness of the main landing gear, and inadequate maintenance.