NTSB investigations, 1968
59 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 | 217 |
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\") = 1968
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") = 1968
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 CHI69A0061Accident · 1 fatalClosedPiper PA-23 · Chicago, ILNTSB LAX69A0032Accident · 1 fatalClosedPiper PA-32 · Avenal, CANTSB OAK69A0035Accident · 2 fatalClosedBeech 23 · ZNTSB FTW69F0321Accident · Serious injuriesClosedCessna 150 · Bowie, TXNTSB ANC69A0029Accident · 1 fatalClosedCessna 185 · Anaktuvuk Ps, AKNTSB ANC69A0028Accident · 4 fatalClosedCessna 180H · Anchorage, AKNTSB OAK69A0026Accident · 2 fatalClosedCessna 150H · Las Vegas, NVNTSB CHI69A0044Accident · 3 fatalClosedBeech 65-80 · Houghton, MINTSB ANC69A0024Accident · 2 fatalClosedPiper J3C-85 · Anchorage, AKNTSB CHI69A0043Accident · 2 fatalClosedRepublic RC-3 · Lake Erie, OHNTSB SEA69A0022Accident · 2 fatalClosedN.American AT-6C · Veneta, ORNTSB MKC69F0297Accident · No injuriesClosedPiper PA-11 · Harvey, NDNTSB NYC69D0191Accident · No injuriesClosedCessna 172 · Oriskany, NYNTSB LAX69A0019Accident · 1 fatalClosedCessna 172 · Altadena, CANTSB OAK69D0146Accident · 6 fatalClosedPiper PA-32 · Lahaina, HINTSB MIA69A0016Accident · 2 fatalClosedPiper PA-28 · Eufaula, ALNTSB UNK68X0160Accident · 2 fatalClosedPiper PA-22 · Z (Atlantic Ocean)NTSB FTW69F0191Accident · 1 fatalClosedPiper PA-25 · Presidio, TXNTSB FTW69A0014Accident · 2 fatalClosedAeronca 11AC · Idabel, OKNTSB DIA69A0010Accident · 2 fatalClosedCessna 172C · Rock Hall, MDNTSB FTW69F0175Accident · No injuriesClosedPiper PA-30 · Lubbock, TXNTSB DIA69F0035Accident · 1 fatalClosedBensen Bowles · Leesburg, VANTSB DEN69F0074Accident · 1 fatalClosedPiper PA-18 · Paradise, UTNTSB LAX69A0008Accident · 2 fatalClosedChampion 7GCAA · Compton, CANTSB LAX69F0066Accident · 1 fatalClosedAlon A-2 · Carefree, AZNTSB SEA69F0106Accident · 1 fatalClosedPitts Spec · Arco, IDNTSB NYC69A0010Accident · 1 fatalClosedBeech 35-33 · Peterboro, NYNTSB OAK69A0004Accident · 1 fatalClosedCessna 150H · N Las Vegas, NVNTSB MKC69F0104Accident · Minor injuriesClosedPiper J3L-65 · Creve Coeur, MONTSB MIA69A0004Accident · 2 fatalClosedCessna 180 · No.Atlantic Ocean (Atlantic Ocean)NTSB MIA69A0003Accident · 4 fatalClosedPiper PA-23 · Ft Lauderdale, FLNTSB DIA68A0052Accident · 1 fatalClosedPiper PA-23 · New Bern, NCNTSB NYC68A0138Accident · 2 fatalClosedCessna 150F · ZNTSB NYC68A0137Accident · 2 fatalClosedCessna 411 · Groton, CTNTSB SEA68A0072Accident · 2 fatalClosedAeronca O-58B · ZNTSB LAX68A0105Accident · 2 fatalClosedNavion A · Yucaipa, CANTSB FTW68A0108Accident · 2 fatalClosedChampion 7KCAB · Georgetown, TXNTSB CHI68A0108Accident · 2 fatalClosedStinson 108-3 · Put-In-Bay, OHNTSB SEA69D0005Accident · No injuriesClosedCessna 195A · Omak, WANTSB FTW68A0103Accident · 1 fatalClosedBell 206A · Morgan City, LANTSB DIA68F0001Accident · Serious injuriesClosedLuscombe 8A · Broomes Island, VANTSB MIA68A0098Accident · 2 fatalClosedCessna 172 · Grand Turk Is, Burkina FasoNTSB OAK68A0068Accident · 1 fatalClosedChampion 7KCAB · Angels Camp, CANTSB CHI68A0098Accident · 1 fatalClosedPiper PA-28 · Shelby, OHNTSB CHI68A0102Accident · 1 fatalClosedCessna 120 · ZNTSB ANC68A0046Accident · 1 fatalClosedPiper PA-18 · Kenai, AKNTSB MIA68A0093Accident · 2 fatalClosedCessna 120 · Princeton, FLNTSB LAX68A0096Accident · 5 fatalClosedBell 206A · Carpenteria, CANTSB MIA68A0090Accident · 1 fatalClosedAero Comdr 680 · San Juan, PRNTSB MIA68A0087Accident · 2 fatalClosedRyan ST-3KR · Fort Myers, FL