NTSB investigations
1,973 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 | 72 |
| 2023 | 40 |
| 2024 | 60 |
| 2025 | 73 |
| 2026 | 213 |
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.\"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 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 GAA27WA015Accident · 2 fatalClass 5 · ForeignVans RV7 · Sao Paulo, BrazilNTSB GAA27WA013Accident · 2 fatalClass 5 · ForeignPiper PA38 · Dryman, United KingdomNTSB GAA27WA014Accident · Serious injuriesClass 5 · ForeignChampion 7GCAA · Pattaya, ThailandNTSB GAA27WA011IncidentForeign investigationBeech 58 · San Bernardina, UruguayNTSB GAA27WA010Occurrence · No injuriesClass 5 · ForeignCessna T210 · Calafquen, ChileNTSB GAA27WA008Accident · Minor injuriesForeign investigationCessna 182 · Zabaykalsky Krai, RussiaNTSB GAA27WA016Accident · 3 fatalForeign investigationBeech 300 · Santana Do Paraiso, BrazilNTSB GAA27WA007AccidentClass 5 · ForeignSteen Skybolt · Ontario, CanadaNTSB GAA27WA012Incident · No injuriesForeign investigationPiper PA-25 · Villavicencio, ColombiaNTSB GAA27WA003Accident · 1 fatalClass 5 · ForeignRutan Varieze · Worplesdon, United KingdomNTSB ERA27FA004Accident · 1 fatalClass 3 · FieldInvestigation openHughes 269B · Lahmansville, WVNTSB GAA27WA002Accident · 2 fatalClass 5 · ForeignCessna 501 · Los Mezquites, MexicoNTSB GAA27WA001Accident · 6 fatalForeign investigationGulfstream Gulfstream G100 · International Waters, CanadaNTSB GAA27WA004Accident · No injuriesClass 5 · ForeignFairchild UC61 · Wilhelmshaven, GermanyNTSB GAA26WA336Accident · 5 fatalClass 5 · ForeignBell 430 · Mendamu, ZimbabweNTSB GAA26WA334Incident · No injuriesClass 5 · ForeignCessna 441 · Villavicencio, ColombiaNTSB GAA26WA329Accident · 4 fatalForeign investigationRobinson R44 · Farnham, CanadaNTSB ERA26FA350Accident · 1 fatalClass 3 · FieldPreliminary reportAero Commander 112 · Chatsworth, GAOn September 26, 2026, about 1120 eastern daylight time, an Aero Commander 112, N1102J, was substantially damaged when it was involved in an accident near Chatsworth, Georgia. The pilot was fatally injured. The airplane was operated as a Title 14 Code of…NTSB WPR26FA355Accident · 2 fatalClass 3 · FieldInvestigation openAeronca 7AC · Hesperia, CANTSB GAA26WA328Incident · Minor injuriesClass 5 · ForeignCessna 152 · João Pessoa, BrazilNTSB WPR26LA359Accident · Minor injuriesClass 4 · LimitedInvestigation openHawker Hawker Hunter MK.58 · Morro Bay, CANTSB GAA26WA326Accident · No injuriesClass 5 · ForeignLaviasa PA25 · Cajati, BrazilNTSB GAA26WA324Accident · 5 fatalForeign investigationBell 430 · Serra do Corvo Branco, BrazilNTSB GAA26WA330Accident · 2 fatalClass 5 · ForeignComp Air 7SL · Primavera do Leste, BrazilNTSB GAA26WA325Accident · 2 fatalForeign investigationCessna 172 · Kisbey, CanadaNTSB ERA26FA341Accident · 1 fatalClass 3 · FieldPreliminary reportWeatherly 620 · Lynchburg, SCOn September 17, 2026, about 0720 eastern daylight time, a Weatherly Aviation Company Inc. 602B, N20003, was substantially damaged when it was involved in an accident near Lynchburg, South Carolina. The pilot was fatally injured. The airplane was operated as…NTSB GAA26WA320Accident · 3 fatalClass 5 · ForeignCessna F172 · Fronderath, GermanyNTSB GAA26WA310Accident · No injuriesClass 5 · ForeignPiper PA17 · Viseu, PortugalNTSB GAA26WA313Accident · Serious injuriesClass 5 · ForeignCessna 550 · Parelhas, BrazilNTSB GAA26WA311Accident · 5 fatalForeign investigationCessna T206 · Tatama Massif, ColombiaNTSB GAA26WA322Accident · 3 fatalClass 4 · ForeignCessna 402 · Agua Boa, BrazilNTSB GAA26WA308Accident · No injuriesClass 5 · ForeignCessna 152 · Mapitac, PhilippinesNTSB GAA26WA305Accident · Serious injuriesClass 5 · ForeignCessna 172 · Midrand, South AfricaNTSB GAA26WA309Incident · No injuriesClass 5 · ForeignBell 412 · Ciudad del Carmen, MexicoNTSB GAA26WA306Accident · No injuriesClass 5 · ForeignPiper PA28 · Mossel Bay, South AfricaNTSB GAA26WA302Accident · 1 fatalClass 5 · ForeignCanadian Home Rotors Safari · Eyrewell, New ZealandNTSB GAA26WA300Accident · 5 fatalClass 5 · ForeignBolkow BO105 · Long Lellang, MalaysiaNTSB GAA26WA314Accident · Serious injuriesForeign investigationCessna 185 · Torbole, ItalyNTSB GAA26WA301Accident · 2 fatalClass 5 · ForeignBeech A36 · Archerfield, AustraliaNTSB GAA26WA297Occurrence · 4 fatalClass 3 · ForeignPiper PA-34-200T · Andros, BahamasNTSB CEN26FA311Accident · 2 fatalClass 3 · FieldPreliminary reportEXP Stol CH701 · Neosho, MOOn September 7, 2026, about 1337 central daylight time, an experimental STOL CH701 airplane, N101XV, sustained substantial damage when it was involved in an accident near Neosho, Missouri. The pilot and passenger sustained fatal injuries. The airplane was…NTSB GAA26WA317Accident · 2 fatalClass 5 · ForeignCirrus SR22 · Calgary, CanadaNTSB GAA26WA312Accident · 2 fatalClass 5 · ForeignTecnam P2006T · Kampur, IndiaNTSB GAA26WA303Accident · No injuriesClass 5 · ForeignBeech G58 · Parana, BrazilNTSB GAA26WA296Accident · No injuriesClass 5 · ForeignCessna 152 · Ratmalana, Sri LankaNTSB GAA26WA295Accident · 1 fatalClass 5 · ForeignBeech 58 · Groote Eylandt, AustraliaNTSB GAA26WA292Accident · 1 fatalClass 5 · ForeignBeech 200 · Prince George, CanadaNTSB GAA26WA288Accident · No injuriesForeign investigationCessna P206 · Playa Muerto, PanamaNTSB GAA26WA286Incident · No injuriesClass 5 · ForeignGuimbal Cabri · Oxford, United KingdomNTSB GAA26WA283Accident · 3 fatalClass 5 · ForeignBell 206 · Exambela, Greece