NTSB investigations, 1969
360 cases where the phase of flight was Maneuvering.
Cases per year
| 1964 | 415 |
|---|---|
| 1965 | 419 |
| 1966 | 366 |
| 1967 | 410 |
| 1968 | 394 |
| 1969 | 360 |
| 1970 | 330 |
| 1971 | 384 |
| 1972 | 359 |
| 1973 | 407 |
| 1974 | 410 |
| 1975 | 407 |
| 1976 | 480 |
| 1977 | 443 |
| 1978 | 433 |
| 1979 | 384 |
| 1980 | 377 |
| 1981 | 374 |
| 1982 | 416 |
| 1983 | 476 |
| 1984 | 462 |
| 1985 | 402 |
| 1986 | 357 |
| 1987 | 357 |
| 1988 | 349 |
| 1989 | 313 |
| 1990 | 307 |
| 1991 | 350 |
| 1992 | 309 |
| 1993 | 315 |
| 1994 | 322 |
| 1995 | 320 |
| 1996 | 279 |
| 1997 | 262 |
| 1998 | 259 |
| 1999 | 267 |
| 2000 | 281 |
| 2001 | 257 |
| 2002 | 241 |
| 2003 | 263 |
| 2004 | 224 |
| 2005 | 212 |
| 2006 | 203 |
| 2007 | 222 |
| 2008 | 234 |
| 2009 | 208 |
| 2010 | 222 |
| 2011 | 250 |
| 2012 | 236 |
| 2013 | 216 |
| 2014 | 199 |
| 2015 | 217 |
| 2016 | 177 |
| 2017 | 201 |
| 2018 | 187 |
| 2019 | 197 |
| 2020 | 165 |
| 2021 | 186 |
| 2022 | 186 |
| 2023 | 191 |
| 2024 | 165 |
| 2025 | 145 |
| 2026 | 90 |
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 year(c.\"eventDate\") = 1969
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 year(c."eventDate") = 1969
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 MKC70A0036Accident · 2 fatalClosedCessna 180 · Pierce, NENTSB MIA70A0050Accident · 2 fatalClosedPiper PA-18 · Belzoni, MSNTSB ANC70D0084Accident · Minor injuriesClosedPiper PA-20 · Skwentna, AKNTSB NYC70D0228Accident · No injuriesClosedCessna 120 · Hancocks Brdge, NJNTSB CHI70F0387Accident · Serious injuriesClosedCessna 150 · Lebanon, KYNTSB LAX70F0215Accident · Serious injuriesClosedTaylorcraft BC12-D · Lamont, CANTSB MIA70F0241Accident · Serious injuriesClosedAeronca 0-58B · Conasauga, TNNTSB MKC70A0029Accident · 1 fatalClosedChampion 7ECA · Royal, IANTSB MKC70F0278Accident · Serious injuriesClosedAeronca 7AC · Harlan, IANTSB OAK70F0181Accident · 1 fatalClosedPiper PA-18A · Maxwell, CANTSB MIA70A0040Accident · 2 fatalClosedChampion 7FC · Midville, GANTSB OAK70D0180Accident · No injuriesClosedCessna 150 · Los Banos, CANTSB IAD70D0110Accident · No injuriesClosedChampion 7KCAB · Churchton, MDNTSB LAX70D0202Accident · No injuriesClosedCessna 172 · Newhall, CANTSB NYC70F0211Accident · No injuriesClosedCessna 150F · Irwin, PANTSB LAX70D0223Accident · No injuriesClosedNaval Fcty N3N-3 · Yuma, AZNTSB MIA70D0253Accident · No injuriesClosedSnow S-2R · Ft.Pierce, FLNTSB CHI70A0024Accident · 2 fatalClosedCessna A150K · Eaton Rapids, MINTSB OAK70A0030Accident · 2 fatalClosedCessna 205 · Orangeville, CANTSB IAD70F0112Accident · Serious injuriesClosedCessna 172 · Surry, VANTSB DEN70D0118Accident · No injuriesClosedHughes 269A · Roy, NMNTSB NYC70D0243Accident · Minor injuriesClosedPiper PA-28 · Warners, NYNTSB MIA70F0224Accident · No injuriesClosedCessna 150G · Moulton, ALNTSB SEA70F0140Accident · Serious injuriesClosedPiper PA-18 · Princeton, ORNTSB MKC70A0022Accident · 1 fatalClosedChampion 7KCAB · Bemidji, MNNTSB SEA70D0109Accident · No injuriesClosedMonocoupe 110 · Monroe, WANTSB LAX70F0185Accident · Serious injuriesClosedWaco UPF-7 · Douglas, AZNTSB IAD70F0101Accident · Minor injuriesClosedPiper J-3 · Glendale, WVNTSB MIA70F0285Accident · Serious injuriesClosedGrumman G-164 · Morgan, GANTSB NYC70F0186Accident · No injuriesClosedBell 47G-4 · E Providence, RINTSB FTW70F0248Accident · No injuriesClosedGrumman G-164 · Post, TXNTSB CHI70F0315Accident · No injuriesClosedPiper PA-28 · Lapeer, MINTSB NYC70F0199Accident · Minor injuriesClosedCessna A150K · Jeannette, PANTSB FTW70A0028Accident · 1 fatalClosedN.American T-6G · Jasper, TXNTSB IAD70A0026Accident · 2 fatalClosedMooney M20A · Hyattstown, MDNTSB MIA70D0205Accident · Minor injuriesClosedCallair A-5 · Prattville, ALNTSB DEN70F0103Accident · No injuriesClosedCessna A188 · Roswell, NMNTSB CHI70D0294Accident · No injuriesClosedCessna 140 · St Ignace, MINTSB MKC70A0017Accident · 1 fatalClosedChampion 7GCB · Kismet, KSNTSB FTW70A0027Accident · 3 fatalClosedCessna 172C · Allison, ARNTSB OAK70D0140Accident · No injuriesClosedCallair A9B · Tulare, CANTSB SEA70F0097Accident · Minor injuriesClosedKaman HUK-1 · Enumclaw, WANTSB NYC70A0040Accident · 1 fatalClosedBoeing E75N1 · Nedrow, NYNTSB FTW70F0257Accident · No injuriesClosedPiper PA-25 · Newport, ARNTSB MIA70F0159Accident · No injuriesClosedGrumman 164A · Barretville, TNNTSB FTW70D0237Accident · Minor injuriesClosedGrumman 164 · Eva, OKNTSB MIA70D0171Accident · No injuriesClosedCessna 188 · Batesville, MSNTSB MIA70D0296Accident · No injuriesClosedPiper J-3 · Hopetn Plntion, GANTSB MIA70D0206Accident · No injuriesClosedGrumman 164 · Freeport, FLNTSB IAD70A0023Accident · 4 fatalClosedFairchild 24 · Pomfret, MD