NTSB investigations, 1966
856 cases where the phase of flight was Enroute.
Cases per year
| 1962 | 18 |
|---|---|
| 1963 | 28 |
| 1964 | 703 |
| 1965 | 750 |
| 1966 | 856 |
| 1967 | 893 |
| 1968 | 881 |
| 1969 | 995 |
| 1970 | 996 |
| 1971 | 941 |
| 1972 | 894 |
| 1973 | 935 |
| 1974 | 968 |
| 1975 | 977 |
| 1976 | 927 |
| 1977 | 936 |
| 1978 | 1,018 |
| 1979 | 968 |
| 1980 | 873 |
| 1981 | 881 |
| 1982 | 786 |
| 1983 | 734 |
| 1984 | 747 |
| 1985 | 704 |
| 1986 | 693 |
| 1987 | 616 |
| 1988 | 656 |
| 1989 | 590 |
| 1990 | 548 |
| 1991 | 574 |
| 1992 | 542 |
| 1993 | 533 |
| 1994 | 498 |
| 1995 | 506 |
| 1996 | 511 |
| 1997 | 466 |
| 1998 | 467 |
| 1999 | 452 |
| 2000 | 451 |
| 2001 | 396 |
| 2002 | 407 |
| 2003 | 415 |
| 2004 | 380 |
| 2005 | 390 |
| 2006 | 325 |
| 2007 | 353 |
| 2008 | 256 |
| 2009 | 309 |
| 2010 | 269 |
| 2011 | 287 |
| 2012 | 309 |
| 2013 | 280 |
| 2014 | 258 |
| 2015 | 295 |
| 2016 | 324 |
| 2017 | 275 |
| 2018 | 340 |
| 2019 | 348 |
| 2020 | 248 |
| 2021 | 323 |
| 2022 | 312 |
| 2023 | 322 |
| 2024 | 368 |
| 2025 | 348 |
| 2026 | 232 |
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\") = 1966
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 year(c."eventDate") = 1966
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 OAK67F0239Accident · No injuriesClosedPiper PA-28 · Carmel Valley, CANTSB MIA67F0339Accident · No injuriesClosedPiper PA-22 · Ellenton, FLNTSB MIA67A0069Accident · 2 fatalClosedBeech 35 · St.Marys, GANTSB SEA67F0245Accident · Serious injuriesClosedCessna 170A · Kalama, WANTSB NYC67D0675Accident · No injuriesClosedCessna 172C · Greenville, PANTSB MKC67F0402Accident · No injuriesClosedCessna 140 · Palmer, NENTSB MIA67F0340Accident · Serious injuriesClosedCessna 180 · Vicksburg, MSNTSB MIA67F0335Accident · No injuriesClosedPiper PA-28 · Pikeville, NCNTSB FTW67F0399Accident · Minor injuriesClosedCessna 150 · Palo Pinto, TXNTSB OAK67A0054Accident · No injuriesClosedHughes 269A · Hayward, CANTSB FTW67A0067Accident · No injuriesClosedCessna P206 · Chickasha, OKNTSB FTW67A0066Accident · 1 fatalClosedCessna 150F · Anthony, NMNTSB DEN67D0184Accident · No injuriesClosedCessna 210 · Seibert, CONTSB ANC67A0050Accident · Minor injuriesClosedBell 47G-2A · Kenai, AKNTSB SEA67A0044Accident · 2 fatalClosedMooney M20E · Wolf Creek, MTNTSB MKC67F0376Accident · Serious injuriesClosedChampion 7AC · Moose Lake, MNNTSB FTW67D0470Accident · No injuriesClosedPiper PA-24 · Lyford, TXNTSB MKC67D0349Accident · Minor injuriesClosedCessna 210F · Fort Dodge, IANTSB MIA67F0343Accident · No injuriesClosedCessna 172 · Miami, FLNTSB CHI67F0520Accident · Minor injuriesClosedCessna 140 · Rosedale, INNTSB MIA67D0463Accident · No injuriesClosedCessna 182 · Huntsville, ALNTSB MIA67D0368Accident · Minor injuriesClosedCessna 172 · Jacksonville, FLNTSB LAX67A0061Accident · 1 fatalClosedBeech 23 · Chatsworth, CANTSB CHI67F0431Accident · No injuriesClosedCessna 150D · Deerfield, ILNTSB SEA67F0233Accident · Minor injuriesClosedNavion B · Hillsboro, ORNTSB CHI67D0421Accident · No injuriesClosedBeech B95 · Napoleon, OHNTSB ANC67A0049Accident · No injuriesClosedCessna 180 · Bethel, AKNTSB MKC67F0365Accident · Serious injuriesClosedChampion 7AC · Jamestown, NDNTSB MIA67F0325Accident · No injuriesClosedBeech D18S · San Juan, PRNTSB LAX67F0258Accident · Minor injuriesClosedFairchild 24H · Burbank, CANTSB OAK67A0053Accident · Minor injuriesClosedPiper PA-32 · Cloverdale, CANTSB MIA67A0067Accident · 2 fatalClosedCessna 337A · Nbowling Green, SCNTSB CHI67I0078Incident · Serious injuriesClosedBoeing 720 · Cleveland, OHNTSB CHI67A0081Accident · 4 fatalClosedCessna 172 · Ashtabula, OHNTSB LAX67A0060Accident · 1 fatalClosedGlobe GC-1B · Moorpark, CANTSB FTW67A0065Accident · No injuriesClosedBell 204-B · Morgan City, LANTSB DIA67F0011Accident · No injuriesClosedBeech D18S · Ampthill, VANTSB LAX67D0245Accident · No injuriesClosedCessna 182 · Hesperia, CANTSB OAK67D0179Accident · Minor injuriesClosedAeronca 11AC · Hilt, CANTSB SEA67A0045Accident · No injuriesClosedBell 47G3B1 · Yachats, ORNTSB MIA67D0369Accident · Minor injuriesClosedCessna 310 · Egg Isl., Burkina FasoNTSB CHI67F0425Accident · No injuriesClosedPiper PA-23 · Muskegon, MINTSB SEA67F0231Accident · No injuriesClosedCessna 182H · Harrisburg, ORNTSB DIA67F0018Accident · Minor injuriesClosedCessna 182E · Stony Point, VANTSB DEN67F0180Accident · No injuriesClosedCessna 310C · Albuquerque, NMNTSB CHI67A0074Accident · 1 fatalClosedBensen B8-M · Dowagiac, MINTSB NYC67F0433Accident · No injuriesClosedMooney M20A · Port Jefferson, NYNTSB NYC67A0092Accident · 2 fatalClosedPiper PA-18 · North Canaan, CTNTSB LAX67F0233Accident · No injuriesClosedPiper PA-20 · Yuma, AZNTSB NYC67A0093Accident · 1 fatalClosedPiper PA-22 · Frederick, MD