NTSB investigations
1,977 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 DCA24WA106IncidentClass 5 · ForeignAirbus A319 · Barcelona, SpainNTSB GAA24WA062Accident · 1 fatalClass 5 · ForeignCessna A185 · Dorotea, ColombiaNTSB GAA24WA049Accident · 5 fatalClass 5 · ForeignPiper PA-32-260 · Terre-de-Haut, GuadeloupeNTSB GAA24WA036Accident · 1 fatalClass 5 · ForeignCessna 172 · Dinslaken, GermanyNTSB GAA24WA025Accident · 4 fatalClass 5 · ForeignCirrus SR20 · St. Andrä im Lunga, AustriaNTSB GAA24WA023Accident · 2 fatalClass 5 · ForeignRobinson R66 · Williamtown, AustraliaNTSB GAA24WA033Accident · 2 fatalClass 5 · ForeignPiper PA-24-250 · San Juan de la Costa, MexicoNTSB GAA24WA006Accident · 4 fatalClass 4 · ForeignCirrus SR22 · Canberra, AustraliaNTSB GAA24WA003Accident · Serious injuriesClass 5 · ForeignCessna P210 · Venice, ItalyNTSB GAA23WA282Accident · 5 fatalClass 5 · ForeignCessna 206G · Mashava, ZimbabweNTSB ENG23LA045IncidentClass 3 · LimitedFinal reportBell 407 · Linden, NJThe fracture of the upper-left tail boom attachment bolt due to abnormal loading of the bolt caused by a gap and misalignment between the upper-left longeron and the tail boom. Contributing to this incident was the lack of a check to verify the absence of…NTSB GAA23WA272Accident · Minor injuriesClass 5 · ForeignPiper PA-28-140 · Herbert's Beach, St. Kitts & NevisNTSB GAA23WA257AccidentClass 5 · ForeignRobinson R44 · Guatemala City, GuatemalaNTSB GAA23WA280Accident · 3 fatalClass 5 · ForeignCessna 172N · Mountains, IcelandNTSB GAA23WA242Accident · 1 fatalClass 5 · ForeignPiper PA28 · Holstead Hall, Essex, United KingdomNTSB CEN23LA376Accident · 1 fatalClass 4 · LimitedFinal reportSixchuter Spirit XL · Hovland, MNThe collision with the lake by a noncertificated pilot for reasons that could not be determined.NTSB CEN23FA352Accident · 1 fatalClass 3 · FieldFinal reportCessna 150 · Caddo Mills, TXThe pilot’s loss of airplane control during an attempted forced landing following a loss of engine power.NTSB GAA23WA233Accident · No injuriesClass 5 · ForeignPiper 28 · Seaton, United KingdomNTSB GAA23WA227Accident · No injuriesClass 5 · ForeignCessna 177 · Frejus (in water), FranceNTSB GAA23WA221AccidentClass 5 · ForeignCessna 150 · Alexandria, CanadaNTSB GAA23WA207Accident · 1 fatalClass 5 · ForeignCessna 210 · Bradda Head, United KingdomNTSB GAA23WA194Accident · 2 fatalClass 5 · ForeignLancair 360 · Habsheim, FranceNTSB GAA23WA193Accident · 1 fatalClass 5 · ForeignBell 47 · Sainte-Marthe, FranceNTSB GAA23WA173Accident · 2 fatalClass 5 · ForeignBell 412 · Gom, MexicoNTSB GAA23WA172Accident · No injuriesClass 5 · ForeignRobinson R44 · San Carlos de Boliva-Buenos Aires, ArgentinaNTSB GAA23WA171Accident · No injuriesClass 5 · ForeignReims F · Herten-Rheinfelden, GermanyNTSB CEN23FA204Accident · 2 fatalClass 3 · FieldFinal reportLuce Buttercup · Lyndonville, NYAn in-flight breakup due to structural overload of the airplane for undetermined reasons.NTSB GAA23WA153Accident · 3 fatalClass 5 · ForeignAvions Robin DR400 · Les Ponts-de-Martel, SwitzerlandNTSB GAA23WA146Accident · 2 fatalClass 5 · ForeignEngineering & Research 415-C · St. Mary, JamaicaNTSB GAA23WA145Accident · No injuriesClass 5 · ForeignCirrus SR22 · Joanopolis, BrazilNTSB GAA23WA135AccidentClass 5 · ForeignCessna 150 · St-Rémi-de-Laprairie, FranceNTSB GAA23WA093Accident · 1 fatalClass 5 · ForeignRobinson 44 · Boro Area, Okavango Delta, BotswanaNTSB DCA23WA225Incident · No injuriesClass 5 · ForeignBoeing 737 · Nuremberg, GermanyNTSB GAA23WA118Accident · 4 fatalClass 5 · ForeignSud Aviation/Eurocopter Alouette II SE313B · Mangsee Island, PhilippinesNTSB CEN23LA136AccidentClass 4 · LimitedFinal reportCessna 150F · Hillsboro, TXSubstantial damage for reasons undetermined based on the available evidence.NTSB GAA23WA082Accident · 1 fatalClass 5 · ForeignRobinson 44 · Xian, ChinaNTSB GAA23WA073AccidentClass 5 · ForeignCessna 340 · Mount Mayon, PhilippinesNTSB GAA23WA091Accident · 6 fatalClass 5 · ForeignCessna 206 · Barangay Ditarum, PhilippinesNTSB GAA23WA056Accident · 1 fatalClass 5 · ForeignAero Eli Servizi Yoyo · Lesna Jania, PolandNTSB GAA23WA063AccidentClass 5 · ForeignEurocopter EC130 B4 · Gold Coast, AustraliaNTSB GAA23WA062Accident · 2 fatalClass 5 · ForeignSling 4 TSI · Meyerton, South AfricaNTSB GAA23WA051Accident · 2 fatalClass 5 · ForeignCessna 210N · Bulman, AustraliaNTSB GAA23WA045Accident · 2 fatalClass 5 · ForeignBell 412EP · Ocean, MexicoNTSB GAA23WA038Accident · No injuriesClass 5 · ForeignBeech 95-B55 · Jraber township, ArmeniaNTSB GAA23WA037Accident · 1 fatalClass 5 · ForeignRobinson R22 · Ramingining, AustraliaNTSB GAA23WA026AccidentClass 5 · ForeignBeech 33 · San Felipe, VenezuelaNTSB GAA23WA060Accident · 2 fatalClass 5 · ForeignAirbus AS350 · Trøndelag county, NorwayNTSB CEN23LA022Accident · Serious injuriesClass 3 · LimitedFinal reportPiper PA-32R-300 · Evansville, INThe total loss of engine power for reasons that could not be determined based on the available evidence.NTSB WPR23LA025Accident · 1 fatalClass 3 · LimitedFinal reportAirborne Windsports Edge X · Alturas, CAThe non-certificated pilot’s loss of control for undetermined reasons.NTSB GAA23WA012Accident · 1 fatalClass 5 · ForeignThrush S2R-T660 · Sierra Segundera, Spain