NTSB investigations, WA
59 cases where the phase of flight was Uncontrolled descent.
Cases per year
| 1964 | 3 |
|---|---|
| 1965 | 1 |
| 1966 | 3 |
| 1967 | 4 |
| 1968 | 6 |
| 1969 | 3 |
| 1970 | 2 |
| 1971 | 3 |
| 1972 | 6 |
| 1973 | 4 |
| 1974 | 2 |
| 1975 | 4 |
| 1976 | 1 |
| 1977 | 5 |
| 1978 | 3 |
| 1980 | 4 |
| 1981 | 4 |
| 1990 | 1 |
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.\"eventStateOrRegion\" = 'WA' AND c.\"eventCountry\" = 'USA'
AND c.\"mKey\" IN (SELECT case_mkey FROM case_phases WHERE main = 650)
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" = 'WA' AND c."eventCountry" = 'USA'
AND c."mKey" IN (SELECT case_mkey FROM case_phases WHERE main = 650)
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 SEA90LA157Accident · Serious injuriesLimited investigationFinal reportRobinson R22 · Ellensburg, WAThe pilot did not adequately level off the helicopter and collided with the terrain.NTSB SEA82FA007Accident · 4 fatalClosedPiper PA-28 · Longview, WANTSB SEA81FA057Accident · 3 fatalClosedCessna 210A · Woodland, WANTSB LAX81FA116Accident · 1 fatalClosedGrum Amer AA-5B · Vancouver, WANTSB SEA81FA020Accident · 2 fatalClosedCessna 182P · Everett, WANTSB SEA81FA012Accident · 2 fatalClosedPiper PA-34 · Stevenson, WANTSB SEA81FA013Accident · 1 fatalClosedCessna 210 · Royal City, WANTSB SEA81FA009Accident · 6 fatalClosedBeech 58TC · Ellensburg, WANTSB SEA80DYE32Accident · Serious injuriesClosedHiller Acft UH-12E · Forks, WANTSB SEA79FYP04Accident · 1 fatalClosedCessna R172K · Dayton, WANTSB SEA79FA009Accident · 3 fatalClosedCessna P210 · Toutle, WANTSB SEA78FA053Accident · 1 fatalClosedStinson 108E · Enumclaw, WANTSB SEA78FA008Accident · 4 fatalClosedCessna 172M · Newport, WANTSB SEA77FA049Accident · 4 fatalClosedCessna 185 · Hansville, WANTSB SEA77FA027Accident · 3 fatalClosedCessna 182P · Port Orchard, WANTSB SEA77FA019Accident · 1 fatalClosedPiper PA-28R · Port Orchard, WANTSB SEA77FA012Accident · 3 fatalClosedBeech C35 · Mckenna, WANTSB SEA76AS060Accident · 3 fatalClosedPiper PA-22 · Hoquiam, WANTSB SEA76FYE22Accident · Serious injuriesClosedCessna 172 · Lummi Island, WANTSB SEA76AS020Accident · 2 fatalClosedPiper PA-24 · Woodland, WANTSB SEA76DYE07Accident · No injuriesClosedHiller Acft FH1100 · Shelton, WANTSB SEA75AS026Accident · 3 fatalClosedCessna TU206D · Palmer, WANTSB SEA75AS022Accident · 1 fatalClosedBell 47G-2 · Kingston, WANTSB SEA74AS035Accident · 2 fatalClosedAmer Avco AA1-B · Enumclaw, WANTSB SEA74FYE31Accident · Serious injuriesClosedCessna 337A · Maynard, WANTSB SEA74AS003Accident · 2 fatalClosedCessna 175 · Neah Bay, WANTSB SEA73AS026Accident · 2 fatalClosedN.American T-28A · Gorst, WANTSB SEA73AS025Accident · 3 fatalClosedAero Comdr 680F · Battle Grnd, WANTSB SEA73ASO13Accident · 1 fatalClosedLuscombe 8A · Ellensburg, WANTSB SEA73AS007Accident · 2 fatalClosedBeech D55 · Mansfield, WANTSB SEA73AS005Accident · 5 fatalClosedPiper PA-32 · Ryderwood, WANTSB SEA73DYG05Accident · Minor injuriesClosedPiper PA-11 · Wapato, WANTSB SEA72DYE39Accident · No injuriesClosedCessna 182J · Olympia, WANTSB SEA72AS048Accident · 3 fatalClosedBellanca 17-31A · Onalaska, WANTSB SEA72AS027Accident · 1 fatalClosedCessna 150G · Kalama, WANTSB SEA72AS009Accident · 2 fatalClosedStinson 108-2 · Port Angeles, WANTSB SEA71AS033Accident · 1 fatalClosedAero Comdr 500 · Carson, WANTSB SEA71DWG11Accident · No injuriesClosedBell 47G-2 · Manson, WANTSB SEA71AS006Accident · 4 fatalClosedCessna 172K · Westport, WANTSB SEA79FA059Accident · 1 fatalClosedCessna 140 · Lester, WANTSB SEA70A0002Accident · 2 fatalClosedGlobe GC-1B · Winlock, WANTSB OAK70A0002Accident · 3 fatalClosedCessna 206 · Hyak, WANTSB SEA69D0164Accident · Minor injuriesClosedPiper PA-28 · Duvall, WANTSB SEA69A0031Accident · 1 fatalClosedCessna 150J · Ralston, WANTSB SEA69A0026Accident · 2 fatalClosedStinson 108 · Vancouver, WANTSB SEA69F0129Accident · No injuriesClosedHughes 269A · Renton, WANTSB SEA69A0016Accident · 2 fatalClosedErco 415-D · Packwood, WANTSB SEA68A0053Accident · 2 fatalClosedCessna T-210F · Lamont, WANTSB SEA68A0029Accident · 2 fatalClosedCessna T-210F · Gardiner, WANTSB SEA68A0025Accident · 2 fatalClosedCessna 180H · Ilwaco, WA