Final NTSB investigations, Outside the U.S.
48 cases where the phase of flight was Unknown.
Cases per year
| 1964 | 4 |
|---|---|
| 1965 | 3 |
| 1966 | 5 |
| 1967 | 5 |
| 1968 | 1 |
| 1970 | 2 |
| 1971 | 1 |
| 1973 | 3 |
| 1974 | 6 |
| 1975 | 6 |
| 1978 | 3 |
| 1979 | 1 |
| 1982 | 1 |
| 1985 | 1 |
| 1987 | 2 |
| 1993 | 1 |
| 1995 | 1 |
| 2003 | 1 |
| 2025 | 1 |
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.\"eventCountry\" <> 'USA'
AND c.\"completionStatus\" = 'Completed'
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 c."eventCountry" <> 'USA'
AND c."completionStatus" = 'Completed'
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 CEN25LA164Accident · 1 fatalClass 4 · LimitedFinal reportAir Tractor AT802 · Atlantic Ocean, CanadaThe airplane’s impact with the ocean for undetermined reasons based on the available evidence.NTSB MIA04FAMS1Accident · 1 fatalMissing aircraftFinal reportPiper PA-32-300 · Missing, BahamasUndetermined.NTSB LAX95LA190Accident · 3 fatalLimited investigationFinal reportStol UC-1 · Saipan, Sarkan inflight collision with the ocean for undetermined reasons.NTSB FTW93TA#06Accident · No injuriesFinal reportCessna CE-550 · Comayagua, HondurasNTSB MIA87IA166Incident · No injuriesIncident investigationFinal reportBoeing 747-245F · Caracas, VenezuelaFlight experienced leakage of a five gallon container of glutaraldehyde listed by the shipper as a class 8 corrosive on the aircrafts upper deck enroute miami, Florida to Caracas, venezuela. The chemical was later found not to be corrosive and the aircraft…NTSB MIA87LA164Accident · 1 fatalLimited investigationFinal reportCessna 402C · Missing Acft, BahamasOn 5/27/87 at about 0915 EDT, the plt departed palm beach intl arpt (pbi) on a flt to marsh harbour, great abaco island, Bahamas. When the Acft did not arrive at the destination, a search was initiated. The Acft was not fnd & was presumed to have been…NTSB MIA85LA209Accident · 4 fatalLimited investigationFinal reportPiper PA-32R-301 · Bahamas, BahamasThe acft failed to arrive at it's intended destination on a flt from nassau, Bahamas to opa locka arpt, miami, FL. The acft was reported missing by the miami fss. The U.S. Coast guard initiated a search on 07-12-85 at about 1831 EDT & search was suspended on…NTSB MIA83LA025Accident · 3 fatalLimited investigationFinal reportBeech 65-B80 · Missing Acft, BahamasThe flt departed ft. lauderdale at 1626, & at 1654 in the vicinity of bimini was advised to contact nassau radio. The flt failed to contact nassau & there were no further communications with the flt. Search efforts produced negative results. IMC prevailed on…NTSB MIA79RA121Accident · No injuriesClosedCurtis-Wrt C-46D · South Caicos, TokelauNTSB UNK79X0100Accident · No injuriesClosedCessna 182 · Grand Bahama, Burkina FasoNTSB MIA79FA114Accident · 6 fatalClosedAero Comdr 560E · Bimini, Burkina FasoNTSB UNK78X0106Accident · 5 fatalClosedMitsubishi MU2 · Neiva, ColombiaNTSB DEN76O0001Accident · 4 fatalClosedCessna 320 · Puerta Valrto, MexicoNTSB NYC76ON004Accident · 2 fatalClosedPiper PA-30 · S Coast, Canary IslandsNTSB LAX76O0005Accident · 2 fatalClosedPiper PA-23 · Bahia De L A, MexicoNTSB LAX7600007Incident · No injuriesClosedPiper PA-18 · Mesata Coronl, MexicoNTSB LAX7500033Accident · No injuriesClosedCessna 210L · Mesa Zamarano, MexicoNTSB LAX75O0034Accident · No injuriesClosedCurtiss-Wrt C-46F · La Papa, MexicoNTSB MIA75RM032Accident · 1 fatalClosedCessna 177RG · Great Inagua, Burkina FasoNTSB FTW75ORG47Accident · 3 fatalClosedCessna T210L · Mal Paso, MexicoNTSB LAX75OL004Accident · 4 fatalClosedCessna 337 · Punta Chivato, MexicoNTSB FTW75OF004Accident · No injuriesClosedCessna U206 · Los Papalotes, MexicoNTSB UNK74X0109Accident · 2 fatalClosedCessna 195 · San Felipe, MexicoNTSB LAX75OL011Accident · No injuriesClosedCessna U206C · S.Luis Gnzaga, MexicoNTSB FTW74DRD20Accident · 2 fatalClosedCessna 182 · Mexico City, MexicoNTSB FTW74DRJ26Accident · No injuriesClosedPiper PA-23 · Vera Cruz, MexicoNTSB LAX74OL025Accident · 3 fatalClosedCessna 175 · San L Gonzaga, MexicoNTSB OAK71FJA11Accident · No injuriesClosedGrumman SCAN30 · Ebeye, MontserratNTSB FTW71DRG53Accident · 5 fatalClosedBeech B35 · Punta Penasco, MexicoNTSB FTW70DRA10Accident · 2 fatalClosedDouglas DC-3A · Melcor Ocampo, MexicoNTSB MIA68A0098Accident · 2 fatalClosedCessna 172 · Grand Turk Is, Burkina FasoNTSB FTW68O0004Accident · 5 fatalClosedPiper PA-24 · Mexico City, MexicoNTSB FTW68O0003Accident · 4 fatalClosedPiper PA-24 · Mexico City, MexicoNTSB NYC68A0027Accident · 1 fatalClosedAero Comdr 680-FL · Greenland Ice Cap, GreenlandNTSB UNK67X0121Accident · 7 fatalClosedDornier DO-28A · Luang Prabng, LaosNTSB UNK67X0118Accident · 2 fatalClosedPiper PA-18 · Red Lake Ont., CanadaNTSB FTW67D0380Accident · 3 fatalClosedStinson 108 · Matamoros, MexicoNTSB LAX67D0089Accident · No injuriesClosedBeech 35 · Hermosillo, MexicoNTSB UNK66X0141Accident · 1 fatalClosedPiper PA-20 · San Fillipi, MexicoNTSB UNK66X0128Accident · 4 fatalClosedCessna 336 · Chihuahua, MexicoNTSB UNK66X0119Accident · 1 fatalClosedCessna 206 · Villanil, SerbiaNTSB UNK66X0102Accident · 2 fatalClosedMooney M20 · British Clmba, CanadaNTSB UNK65X1279Accident · 4 fatalClosedPiper PA-28 · Marheim, GeorgiaNTSB UNK65X1219Accident · 1 fatalClosedPiper PA-28 · El Fuerte, MexicoNTSB UNK65X0652Accident · 2 fatalClosedFairchild C-82 · Vera Cruz, MexicoNTSB UNK64X4060Accident · No injuriesClosedHiller 12B · Thermi, GreeceNTSB UNK64X2910Accident · 1 fatalClosedSikorsky S-58 · Colombia, ColombiaNTSB UNK64X0503Accident · 4 fatalClosedPiper PA-23 · Freeport, Burkina Faso