NTSB investigations, 1976
927 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\") = 1976
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") = 1976
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 SEA77FA011Accident · 1 fatalClosedBeech V35B · Auburn, WANTSB OAK77FVM05Accident · No injuriesClosedPiper PA-24 · San Carlos, CANTSB LAX77FUG17Accident · No injuriesClosedMooney M20C · Big Bear City, CANTSB FTW77FQG07Accident · Minor injuriesClosedNa Rockwell 112 · Wildorado, TXNTSB CHI77FEI08Accident · Minor injuriesClosedPiper PA-28 · Avon Lake, OHNTSB SEA77FYC12Accident · No injuriesClosedCessna TU206D · Farmington, ORNTSB MKC77FER12Accident · Minor injuriesClosedCessna 172 · Morris, MNNTSB MIA77FKG14Accident · Serious injuriesClosedPiper PA-28 · Cleveland, GANTSB IAD77DLJ03Accident · No injuriesClosedCessna 180 · Rougemont, NCNTSB FTW77FA026Accident · 2 fatalClosedPiccard AX-6 · Jersey Village, TXNTSB MKC77FCD06Accident · Minor injuriesClosedAero-Star 600 · Pella, IANTSB CHI77FA020Accident · 2 fatalClosedCessna 411 · Mccomb Twp, MINTSB MKC77FA010Accident · 1 fatalClosedCessna 210L · Fenton, MONTSB LAX77DUQ12Accident · No injuriesClosedCessna 150 · California Cty, CANTSB LAX77DUJ16Accident · No injuriesClosedCessna 150 · Bagdad, AZNTSB MKC77FCA07Accident · No injuriesClosedCessna 182H · Monticello, MONTSB LAX77FUG20Accident · No injuriesClosedKR 1 · Chino, CANTSB LAX77FA016Accident · 1 fatalClosedErco 415-C · Murrieta, CANTSB DEN77FQA08Accident · Minor injuriesClosedPiper PA-28 · Albuquerque, NMNTSB NYC77FGT05Accident · No injuriesClosedCessna 150 · Philipsburg, PANTSB IAD77DID10Accident · No injuriesClosedCessna 150 · Emporia, VANTSB IAD77DLQ04Accident · Minor injuriesClosedCessna 150 · Trenton, KYNTSB IAD77DKW10Accident · Minor injuriesClosedErco 415CD · Rockwood, TNNTSB FTW77FRG20Accident · No injuriesClosedLake LA-4 · San Antonio, TXNTSB FTW77FPD06Accident · Minor injuriesClosedCessna 172 · Henrietta, TXNTSB LAX77FUQ13Accident · Minor injuriesClosedCessna 177B · Burbank, CANTSB LAX77DUJ15Accident · No injuriesClosedCessna 120 · Salome, AZNTSB NYC77FHA09Accident · Minor injuriesClosedPiper PA-28 · Claussville, PANTSB OAK77FA008Accident · 2 fatalClosedCessna 150G · Escalon, CANTSB MIA77DKG13Accident · No injuriesClosedGrum Amer AA-5 · Fairmont, GANTSB MIA77FKQ04Accident · No injuriesClosedCessna 182 · Gluckstadt, MSNTSB LAX77FUA03Accident · No injuriesClosedBeech A35 · Avalon, CANTSB CHI77FEE08Accident · No injuriesClosedCessna 150 · Wayne, ILNTSB MIA77FLA11Accident · No injuriesClosedCessna 188B · St Augustine, FLNTSB FTW77FA023Accident · 2 fatalClosedPiper PA-28 · El Paso, TXNTSB DEN77DTC04Accident · No injuriesClosedPiper PA-12 · Rock Springs, WYNTSB ANC77FA017Accident · Serious injuriesClosedBell 206L · Anchorage, AKNTSB MKC77FTK04Accident · No injuriesClosedPiper PA-11 · Lake Preston, SDNTSB LAX77FA015Accident · 1 fatalClosedPiper PA-23 · Blythe, CANTSB CHI77FEX06Accident · 1 fatalClosedCessna 150G · Patriot, INNTSB NYC77IA021Incident · No injuriesClosedBoeing 747 · San Juan, PRNTSB NYC77FNA07Accident · Serious injuriesClosedTed Smith 601 · Framingham Ctr, MANTSB NYC77FFA10Accident · Serious injuriesClosedBell 47J-2A · Ellenville, NYNTSB OAK77FJA01Accident · 2 fatalClosedYankee AA1 · Wainiha, HINTSB OAK77DJA04Accident · Minor injuriesClosedSczeny-Roth BG12B · Mokuleia, HINTSB MIA77DKT10Accident · No injuriesClosedCessna 150 · Ft Lauderdale, FLNTSB IAD77DKM08Accident · Minor injuriesClosedStarduster T00 · Gastonia, NCNTSB NYC77FGM04Accident · Serious injuriesClosedPiper PA-24 · Smithfield, PANTSB NYC77FFA09Accident · Serious injuriesClosedCessna 180 · Lisbon, NYNTSB FTW77FA020Accident · 3 fatalClosedCessna 182E · Temple, TX