NTSB investigations, 1965
750 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 | 234 |
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\") = 1965
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") = 1965
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 LAX66A0052Accident · Minor injuriesClosedBell 47G-2 · Piru, CANTSB NYC66D0698Accident · Minor injuriesClosedCessna 172 · Charleston, WVNTSB LAX66A0051Accident · 4 fatalClosedPiper PA-22 · S.Luis Obispo, CANTSB FTW66A0060Accident · 3 fatalClosedBeech G35 · Redericksburg, TXNTSB DEN66F0199Accident · No injuriesClosedMooney M20C · Phoenix, AZNTSB DEN66A0052Accident · 3 fatalClosedBeech C35 · Coalville, UTNTSB NYC66F0421Accident · Minor injuriesClosedPiper PA-22 · Neptune, NJNTSB DEN66D0204Accident · Minor injuriesClosedPiper PA-22 · Payson, AZNTSB FTW66F0565Accident · Serious injuriesClosedAero CDR 520 · Abernathy, TXNTSB CHI66F0486Accident · No injuriesClosedCessna 210E · Reed City, MINTSB CHI66D0499Accident · No injuriesClosedCessna 150 · Farmington, ILNTSB SEA66D0203Accident · No injuriesClosedPiper PA-18 · Billings, MTNTSB CHI66F0511Accident · No injuriesClosedCessna 172G · Streator, ILNTSB OAK66A0029Accident · No injuriesClosedDouglas DC-8 · San Francisco, CANTSB NYC66A0069Accident · 2 fatalClosedBeech D35 · Louisa, VANTSB FTW66F0461Accident · Minor injuriesClosedCessna 150E · Florriessant, LANTSB MIA66F0372Accident · Minor injuriesClosedNavion A · Cumblnd City, TNNTSB ANC66A0026Accident · 2 fatalClosedPiper PA-24 · Umiat, AKNTSB SEA66A0038Accident · Minor injuriesClosedSikorsky S-55 · Seaside, ORNTSB LAX66A0049Accident · Serious injuriesClosedDouglas DC-8 · San Diego, CANTSB DEN66A0050Accident · 2 fatalClosedCessna 182 · Laveen, AZNTSB MIA66F0366Accident · Minor injuriesClosedBeech A35 · Lake Worth, FLNTSB MIA66A0070Accident · 2 fatalClosedCessna 172C · Castle Hayne, NCNTSB CHI66A0060Accident · 3 fatalClosedPiper PA-23 · Knox, INNTSB NYC66I0067Incident · Minor injuriesClosedBoeing B-727 · Atlantic Ocean (Atlantic Ocean)NTSB MIA66F0402Accident · 1 fatalClosedBeechcraft A-23 · Southern Pines, NCNTSB FTW66A0058Incident · No injuriesClosedBoeing 727 · Amarillo, TXNTSB CHI66F0528Accident · Minor injuriesClosedCessna 172 · Granite City, ILNTSB CHI66F0475Accident · No injuriesClosedErcoupe 415-C · Stevens Pt, WINTSB SEA66F0181Accident · No injuriesClosedCessna 150F · Redmond, WANTSB DEN66A0048Accident · 3 fatalClosedLockheed L-1049 · Alamosa, CONTSB UNK66X0115Accident · No injuriesClosedPiper PA-24 · Ciudad Anahac, MexicoNTSB NYC66A0066Accident · 1 fatalClosedPiper PA-28 · Reading, PANTSB DEN66A0045Accident · 3 fatalClosedBeech B95 · Aspen, CONTSB DEN66A0044Accident · 2 fatalClosedCessna 120 · Kingman, AZNTSB OAK66A0028Accident · 3 fatalClosedCessna 182E · El Portal, CANTSB DEN66A0047Accident · 2 fatalClosedPiper PA-24 · Cuba, NMNTSB DEN66A0046Accident · 1 fatalClosedCessna 172 · Kremmling, CONTSB MIA66F0378Accident · No injuriesClosedPiper PA-24 · Nashville, TNNTSB MIA66D0360Accident · No injuriesClosedPiper PA-28 · La Parguera, PRNTSB FTW66F0504Accident · Serious injuriesClosedPiper PA-23 · Dexter, TXNTSB FTW66F0480Accident · No injuriesClosedCessna 182 · Hot Springs, ARNTSB FTW66A0057Accident · 1 fatalClosedBeech 35-B33 · Goliad, TXNTSB NYC66D0409Accident · No injuriesClosedBeech J35 · New Paltz, NYNTSB MKC66D0436Accident · No injuriesClosedCessna 170 · Russell, KSNTSB FTW66A0056Accident · No injuriesClosedBell 47J-2 · Refugio, TXNTSB NYC66F0422Accident · Serious injuriesClosedPiper PA-32 · Frewsberg, NYNTSB FTW66F0458Accident · No injuriesClosedAero Cmdr 520 · Cleo Springs, OKNTSB DEN66A0041Accident · No injuriesClosedHiller UH12L4 · Albuquerque, NMNTSB CHI66A0056Accident · 6 fatalClosedAero CDR 680 · Kite, KY