NTSB investigations
1,978 cases where the phase of flight was Unknown.
Cases, newest first
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 CEN22LA156Accident · Minor injuriesClass 3 · LimitedFinal reportCessna 172N · Springtown, TXA total loss of engine power for reasons that could not be determined.NTSB GAA22WA163Accident · Serious injuriesClass 5 · ForeignCessna F172 · Bonn-Hangelar, GermanyNTSB GAA22WA128Accident · 1 fatalClass 5 · ForeignCessna 172RG · Brantford, CanadaNTSB DCA22WA102Accident · 132 fatalClass 5 · ForeignBoeing 737 · Wuzhou, ChinaNTSB CEN22LA137Accident · Minor injuriesClass 3 · LimitedFinal reportCessna P210N · Englewood, COA total loss of engine power on short final for reasons that could not be determined based on the available evidence.NTSB ANC22LA020Accident · Minor injuriesClass 3 · LimitedFinal reportPiper PA-18-135 · Wasilla, AKA partial loss of engine power for undetermined reasons.NTSB GAA22WA112Accident · 14 fatalClass 5 · ForeignCessna 208B · Comoros, ComorosNTSB CEN22LA121Accident · Serious injuriesClass 3 · LimitedFinal reportPiper PA22 · Furlow, ARA loss of engine power for undetermined reasons.NTSB GAA22WA105AccidentClass 5 · ForeignCessna 172N · Reykjavik, IcelandNTSB GAA22WA090Accident · No injuriesClass 5 · ForeignPiper PA28 · Port Alfred, South AfricaNTSB GAA22WA096Accident · 2 fatalClass 5 · ForeignVans RV-6A · Ciudad-Chihuahua state, MexicoNTSB ANC22LA014Accident · No injuriesClass 3 · LimitedFinal reportBell 205A-1 · El Cajon, CAA partial loss of engine power for reasons that could not be determined based on the available evidence.NTSB GAA22WA069Accident · 2 fatalClass 5 · ForeignRobinson R44 · 63 Puy-de-Dome, FranceNTSB GAA22WA061Accident · 2 fatalClass 5 · ForeignBell 412 · Quillen-Neuquen district, ArgentinaNTSB GAA22WA038Accident · 2 fatalClass 5 · ForeignMurphy Rebel · Wasbush, CanadaNTSB GAA22WA041AccidentClass 5 · ForeignPiper PA34 · Gauteng, South AfricaNTSB GAA22WA037Accident · 3 fatalClass 5 · ForeignCessna A185 · Laguna Negra, ParaguayNTSB GAA22WA060Accident · 3 fatalClass 4 · ForeignPiper PA34 · Ubatuba, BrazilNTSB WPR22LA064Accident · No injuriesClass 3 · LimitedFinal reportBeech A36 · Tooele, UTThe total loss of engine power for reasons that could not be determined based on available evidence.NTSB GAA22WA059AccidentClass 5 · ForeignCessna A188 · Joao Pinheiro, BrazilNTSB ERA22LA039Accident · No injuriesClass 3 · LimitedFinal reportBell 47D1 · Zelienople, PAA total loss of engine power for reasons that could not be determined.NTSB ERA22LA029Accident · No injuriesClass 3 · LimitedFinal reportCessna 172 · Westhampton Beach, NYA total loss of engine power during cruise flight for reasons that could not be determined based on the available evidence.NTSB GAA22WA039Accident · 1 fatalClass 5 · ForeignCessna 401 · Tapachula, MexicoNTSB GAA22WA012AccidentClass 5 · ForeignRobinson R44 · Buchen-Sturzenhardt, GermanyNTSB GAA22WA003AccidentClass 3 · ForeignKaman K1200 · Whistler, CanadaNTSB WPR21LA366Accident · No injuriesClass 4 · LimitedFinal reportSharp Ralph R Zenith Stol CH 701 · Bishop, CAA loss of airplane control for undetermined reasons.NTSB GAA22WA020Accident · 2 fatalClass 5 · ForeignBely lebed · Sovetsky, RussiaNTSB GAA21WA231Accident · 1 fatalClass 5 · ForeignMooney M20J · Sundridge, CanadaNTSB GAA21WA225Accident · 1 fatalClass 5 · ForeignPiper J3C · Mauricie, CanadaNTSB CEN21LA414Accident · Minor injuriesClass 3 · LimitedFinal reportCessna 172S · LaSalle, COA loss of engine power for undetermined reasons.NTSB CEN21LA404Accident · No injuriesClass 3 · LimitedFinal reportCessna 182 · Delta, COA total loss of engine power that resulted in a forced landing and subsequent noseover. The reason for the total loss of engine power could not be determined based on the available evidence.NTSB GAA21WA211Accident · 2 fatalClass 5 · ForeignPiper PA24 · Maldonado, UruguayNTSB CEN21FA380Accident · 1 fatalClass 3 · FieldFinal reportPiper J3C-65 · Adrian, MOThe pilot’s failure to maintain control of the airplane which resulted in an aerodynamic stall and impact with terrain.NTSB GAA21WA208Accident · 1 fatalClass 5 · ForeignRockwell 690 · Thunder Bay, CanadaNTSB GAA21WA214Accident · Minor injuriesClass 5 · ForeignAir Tractor AT802 · Popple Depot-New Brunswick, CanadaNTSB CEN21LA367Accident · Minor injuriesClass 3 · LimitedFinal reportPulsar Sport 150 · Osceola, WIThe total loss of engine power for undermined reasons based on available informationNTSB CEN21LA450Accident · No injuriesClass 4 · LimitedFinal reportCessna 140 · Caddo Mills, TXThe missing vertical stabilizer hardware, which resulted in a severe uncommanded yawing motion that necessitated an emergency landing, during which the airplane nosed over and sustained substantial damage to the vertical stabilizer.NTSB GAA21WA193AccidentClass 5 · ForeignSikorsky S92 · South Havra, United KingdomNTSB GAA21WA252Incident · No injuriesClass 5 · ForeignDiamond HK36 · Locarno, SwitzerlandNTSB GAA21WA169Accident · 9 fatalClass 5 · ForeignDe Havilland DHC2 · Örebro, SwedenNTSB CEN21LA307Accident · Serious injuriesClass 4 · LimitedFinal reportQuad City Challenger · Ste. Genevieve, MOAn impact with terrain for reasons that could not be determined based on available evidence.NTSB ANC21LA047Accident · No injuriesClass 3 · LimitedFinal reportPiper J3C-65 · Sterling, AKA partial loss of engine power for reasons that could not be determined based on the available information.NTSB GAA21WA167Accident · Minor injuriesClass 5 · ForeignCessna 152 · Lima, PeruNTSB GAA21WA147Accident · 2 fatalClass 5 · ForeignNorth American T28 · Jickovice, CzechiaNTSB GAA21WA145Accident · 1 fatalClass 5 · ForeignRobinson R44 · Eidanger, NorwayNTSB GAA21WA122Accident · 1 fatalClass 5 · ForeignCessna F172 · Abzac, France, FranceNTSB GAA21WA126Accident · No injuriesClass 5 · ForeignPiper PA38 · Ganderkesee, GermanyNTSB GAA21WA121Accident · Serious injuriesClass 5 · ForeignPiper PA38 · Bad Sobernheim, GermanyNTSB GAA21WA120Accident · 1 fatalClass 5 · ForeignStorm Fury RG · Mucia, Spain, SpainNTSB GAA21WA111Accident · 1 fatalClass 5 · ForeignRobinson R44 · Estepona, Spain