NTSB investigations, PR
29 cases where the phase of flight was Maneuvering.
Cases per year
| 1965 | 1 |
|---|---|
| 1966 | 2 |
| 1967 | 1 |
| 1968 | 1 |
| 1969 | 2 |
| 1971 | 2 |
| 1974 | 1 |
| 1975 | 2 |
| 1976 | 2 |
| 1978 | 1 |
| 1980 | 1 |
| 1984 | 1 |
| 2001 | 1 |
| 2002 | 1 |
| 2005 | 1 |
| 2007 | 1 |
| 2008 | 2 |
| 2009 | 1 |
| 2010 | 1 |
| 2015 | 1 |
| 2018 | 2 |
| 2024 | 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.\"eventStateOrRegion\" = 'PR' AND c.\"eventCountry\" = 'USA'
AND c.\"mKey\" IN (SELECT case_mkey FROM case_phases WHERE main = 450)
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."eventStateOrRegion" = 'PR' AND c."eventCountry" = 'USA'
AND c."mKey" IN (SELECT case_mkey FROM case_phases WHERE main = 450)
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 ERA24LA172Accident · No injuriesClass 4 · LimitedFinal reportMD Helicopters 369FF · Ceiba, PRThe pilots’ failure to ensure adequate clearance from the taxiway while performing a quick stop maneuver.NTSB GAA18CA378Accident · No injuriesData collectionFinal reportMcdonnell Douglas Heli 369 · Yabucoa, PRThe pilot's failure to maintain main rotor clearance from a fiber line while picking up a lineman.NTSB ERA18LA091Accident · Serious injuriesLimited investigationFinal reportHughes 369 · San Juan, PRThe helicopter pilot's improper decision to use an open-end grapple, instead of an A-frame attachment, to lift and move a ladder with a lineman on it and the lineman's improper decision to be lifted on a ladder via an open-end grapple, which were contrary to…NTSB ERA15LA133Accident · 1 fatalLimited investigationFinal reportJohnson Joel H Rans S-6ES Coyote II · Rincon, PRThe inadequate maintenance and inspection of the fuel system, which resulted in partial blockage of a fuel filter, a partial loss of engine power, and subsequent ditching.NTSB ERA11LA056Accident · 1 fatalLimited investigationFinal reportCarlo Robert Quicksilver SPT 2S · Lajas, PRThe pilot’s failure to maintain adequate airspeed, which resulted in an aerodynamic stall and entry into a spin.NTSB ERA09LA413Accident · 1 fatalLimited investigationFinal reportCessna 152 · Ponce, PRThe airplane’s impact with water for undetermined reasons.NTSB ERA09LA051Accident · Serious injuriesLimited investigationFinal reportRobinson Helicopter R44 · San Juan, PRThe detachment of the forward left servo control tube upper rod end attachment bolt during a hover due to separation of its retaining nut for undetermined reasons.NTSB NYC08LA225Accident · 2 fatalLimited investigationFinal reportRans Rans S-6ES · Lajas, PRThe pilot's failure to maintain airspeed resulting in an inadvertent stall/spin.NTSB MIA07CA107Accident · No injuriesData collectionFinal reportRobinson R-44-II · Isla Grande, PRThe pilot's inadvertent encounter with a loss of tail rotor effectiveness which resulted in damage to the helicopter during the subsequent hard landing.NTSB MIA05CA144Accident · Minor injuriesData collectionFinal reportGrumman American G-164 · Sabana Grande, PRThe pilot's inadvertent encounter with a downdraft in mountainous terrain resulting in an uncontrolled descent and collision with the terrain.NTSB MIA02FA084Accident · 2 fatalField investigationFinal reportMitsubishi MU-2B-35 · Carolina, PRThe failure of the pilot to maintain airspeed (Vs) while maneuvering following inadvertent encounter with clouds resulting in an inadvertent stall and uncontrolled descent and subsequent in-flight collision with trees, a wall, and a building.NTSB MIA02LA031Accident · Minor injuriesLimited investigationFinal reportCessna 172M · Barceloneta, PRThe pilot's failure to maintain control of the aircraft which resulted in an uncontrolled descent and an in flight collision with water. Contributing to the accident was the impairment of the pilot due to alcohol.NTSB MIA84LA071Accident · Serious injuriesLimited investigationFinal reportPiper PA-28-140 · Naranjito, PRThe acft collided with hilly terrain during a low pass. The plt was preparing to land at a nearby private airstrip.NTSB MIA80FKA05Accident · No injuriesClosedCessna 150 · Rio Grande, PRNTSB MIA78FA120Accident · 2 fatalClosedGrum-Amer AA1A · Toa Baja, PRNTSB MIA77FA018Accident · 1 fatalClosedGrum Amer AA-1B · Dorado, PRNTSB MIA77FKA01Accident · No injuriesClosedGrumman G-164 · Yauco, PRNTSB MIA7KAM086Accident · 1 fatalClosedGrum Amer AA-5 · Fajardo, PRNTSB MIA75FKA09Accident · No injuriesClosedHiller Acft UH-12E · San Juan, PRNTSB MIA74FKA09Accident · Serious injuriesClosedBell 47G2A1 · San Sabastian, PRNTSB MIA71FKA12Accident · 1 fatalClosedGrumman G-164 · Ponce, PRNTSB MIA71DKA14Accident · No injuriesClosedGrumann G164 · Yauco, PRNTSB MIA70F0118Accident · No injuriesClosedPiper PA-25 · Mayaguez, PRNTSB MIA70F0072Accident · Serious injuriesClosedPiper PA-25 · Isabela, PRNTSB MIA68D0510Accident · No injuriesClosedPiper PA-25 · Santa Isabel, PRNTSB MIA68A0012Accident · Minor injuriesClosedChampion 7ECA · Vega Baja, PRNTSB MIA66A0141Accident · No injuriesClosedHughes 269B · Anasco, PRNTSB MIA66A0110Accident · Minor injuriesClosedAir Space 18A · Santa Isabel, PRNTSB MIA65A0118Accident · No injuriesClosedHughes 269B · Anasco, PR