Fatal, Final NTSB investigations, ND
35 cases where the phase of flight was Enroute.
Cases per year
| 1965 | 1 |
|---|---|
| 1967 | 1 |
| 1970 | 1 |
| 1971 | 1 |
| 1972 | 1 |
| 1974 | 2 |
| 1975 | 2 |
| 1976 | 1 |
| 1978 | 3 |
| 1979 | 3 |
| 1980 | 1 |
| 1981 | 2 |
| 1982 | 2 |
| 1984 | 2 |
| 1986 | 1 |
| 1991 | 1 |
| 1992 | 1 |
| 1995 | 2 |
| 1996 | 1 |
| 1998 | 1 |
| 1999 | 1 |
| 2004 | 1 |
| 2006 | 1 |
| 2014 | 1 |
| 2021 | 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\" = 'ND' AND c.\"eventCountry\" = 'USA'
AND c.\"highestInjuryLevel\" = 'Fatal'
AND c.\"completionStatus\" = 'Completed'
AND c.\"mKey\" IN (SELECT case_mkey FROM case_phases WHERE main = 400)
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" = 'ND' AND c."eventCountry" = 'USA'
AND c."highestInjuryLevel" = 'Fatal'
AND c."completionStatus" = 'Completed'
AND c."mKey" IN (SELECT case_mkey FROM case_phases WHERE main = 400)
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 CEN22FA017Accident · 1 fatalClass 3 · FieldFinal reportPiper PA-28-181 · Buxton, NDThe pilot’s intentional flight into terrain as an act of suicide.NTSB CEN14FA400Accident · 1 fatalField investigationFinal reportLarry Ketterling FEW P-51 Mustang · Lisbon, NDThe partial loss of engine power for a reason that could not be determined because of extensive impact and postcrash fire damage, and the pilot's failure to maintain adequate airspeed, which resulted in the airplane's wing exceeding its critical…NTSB CHI06FA275Accident · 1 fatalField investigationFinal reportPiper PA-28-140 · Kulm, NDThe non-instrument rated pilot's continued flight into instrument meteorological conditions which resulted in his inadvertent encounter with a thunderstorm and his loss of aircraft control. A factor to the accident was the thunderstorm.NTSB CHI05LA012Accident · 1 fatalLimited investigationFinal reportCessna 150M · Ashley, NDThe non-instrument rated pilot's continued flight into known adverse weather conditions and his not maintaining aircraft control during cruise flight. Factors present were the night condition and low ceilings.NTSB CHI99FA196Accident · 1 fatalField investigationFinal reportBeech C-23 · Mandan, NDthe pilot failed to maintain aircraft control on approach to the airport after encountering high winds, gusts, rain, and thunderstorms in the area.NTSB CHI99LA020Accident · 1 fatalLimited investigationFinal reportBecker Wag Aero Super Sport · Hamilton, NDthe fatigue failure of the lower wing strut attachment bracket.NTSB CHI96LA220Accident · 1 fatalLimited investigationFinal reportGrumman AA5B · Fryburg, NDthe pilot's VFR flight into instrument meteorological conditions. Factors were the fog, low ceiling, and rising terrain.NTSB CHI95FA285Accident · 2 fatalField investigationFinal reportPiper PA-31-350 · Ardoch, NDthe pilot-in-command's continuing flight into adverse weather. Factors were the pilot-in-command's failure to obtain a weather observation and the adverse weather.NTSB CHI95FA124Accident · 1 fatalField investigationFinal reportBeech 65-B80 · Great Bend, NDthe pilot/mechanic's inadequate maintenance (inspection) of aircraft and the pilot's failure to maintain airspeed (VMC). Factors were icing conditions, deteriorated induction air ducting, and failure of a piston assembly.NTSB CHI93FA053Accident · 1 fatalField investigationFinal reportPiper PA-30 · Bowman, NDThe non instrument rated private pilot's failure to maintain adequate terrain clearance after inadvertent VFR flight into instrument meteorological conditions.NTSB CHI91FA291Accident · 2 fatalField investigationFinal reportBeech 95 · Killdeer, NDThe pilot's disregarding the weather forecast; his improper in-flight decision to continue a VFR flight into instrument meteorological conditions; and his failure to maintain adequate clearance from terrain. The mountainous hilly terrain and low ceiling were…NTSB DEN86FA142Accident · 3 fatalField investigationFinal reportCessna T210N · Elgin, NDPlt received wx briefing prior to departure. VFR flt not recommended by fss. Plt radioed that he was in thunderstorm activity, IFR conditions and was attempting to turn around. Witnesses stated that they observed acft descending at a high rate of speed of a…NTSB DEN85LTG02Accident · 1 fatalFinal reportPiper PA-38-112 · Berthold, NDThe student solo plt was on a cross-country flt and was appropriately endorsed. Impact occurred at aprx 80 degrees nose down. Wx in the vicinity of the accident was reported to be 300 ft ceilings with visibility of 1/4 mi in fog and rain.NTSB DEN84FA085Accident · 1 fatalField investigationFinal reportCessna TR182 · Tappen, NDThe private non-instrument rated plt received two weather briefings before the flight. During the last briefing at 1350 MST, he was informed that VFR flt was not recommended. At 1554 MST, the acft departed crystal arpt in a westerly direction. Several…NTSB DEN82FA148Accident · 1 fatalField investigationFinal reportEnstrom F-280 · Medora, NDDuring flt the plt noticed that eng RPM was about 500 over rotor RPM. The acft crashed during an unsuccessful autorotation. The overrunning clutch linkage & clutch was found in the disengaed position. A successful autorotation requires that the collective…NTSB DEN82FA062Accident · 2 fatalField investigationFinal reportBellanca 14-19-3A · Selfridge, NDOn the previous day the plt received a wx briefing for the flt. He was advised the wx would be marginal VFR in the bismarck area in the morning due to low ceilings & snow. There is no record that the plt received an updated wx briefingprior to departure. The…NTSB DEN81FA029Accident · 8 fatalClosedBell UH-1B · Williston, NDNTSB DEN81FA019Accident · 1 fatalClosedCessna 182RG · Grand Forks, NDNTSB DEN80FA061Accident · 1 fatalClosedBell 206B · Grassy Butte, NDNTSB MKC79FA050Accident · 1 fatalClosedCessna 150 · St Anthony, NDNTSB MKC79FA037Accident · 1 fatalClosedCessna 182Q · Dawson, NDNTSB MKC79FA028Accident · 1 fatalClosedMaule M-4 · Bowman, NDNTSB MKC78FA036Accident · 1 fatalClosedBeech UC45J · Spiritwood, NDNTSB MKC78FA022Accident · 1 fatalClosedBeech D95A · Amidon, NDNTSB MKC78FA021Accident · 2 fatalClosedChampion 7EC · Marmarth, NDNTSB MKC76AK039Accident · 1 fatalClosedMooney M20F · Lakota, NDNTSB MKC76FK035Accident · 2 fatalClosedAeronca 11CC · Elgin, NDNTSB MKC7KAK062Accident · 1 fatalClosedCessna 150L · Minot, NDNTSB MKC74FTG15Accident · 1 fatalClosedPiper PA-18 · Ryder, NDNTSB MKC74AK041Accident · 1 fatalClosedPiper PA-28 · Christine, NDNTSB MKC73AK001Accident · 2 fatalClosedAmer Avco AA-1A · Oakes, NDNTSB MKC71AK045Accident · 2 fatalClosedPiper J3-C · Mcleod, NDNTSB MKC70FDD21Accident · 1 fatalClosedPiper PA-18 · Maddock, NDNTSB MKC67A0079Accident · 1 fatalClosedCessna 337A · Medora, NDNTSB MKC65A0050Accident · 2 fatalClosedCessna 172D · Blaisdell, ND