NTSB investigations, 1965
419 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\") = 1965
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") = 1965
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 MIA66A0075Accident · 2 fatalClosedUniv Acft GC-1B · Greenville, SCNTSB ANC66D0086Accident · No injuriesClosedCessna 172 · Port Heiden, AKNTSB LAX66A0050Accident · Minor injuriesClosedHughes 269B · Bakersfield, CANTSB FTW66A0061Accident · 4 fatalClosedBeech A35 · Llano, TXNTSB NYC66F0395Accident · No injuriesClosedPiper PA-24 · Lunenburg, VANTSB FTW66D0464Accident · No injuriesClosedPiper PA-22 · Rosston, OKNTSB LAX66F0197Accident · No injuriesClosedGrumman G-164 · Buttonwillow, CANTSB MIA66A0072Accident · 1 fatalClosedMooney M-18C · Newbern, ALNTSB FTW66F0481Accident · Minor injuriesClosedErcoupe 415-C · Lahoma, OKNTSB FTW66A0059Accident · 1 fatalClosedPiper J3 · Arlington, TXNTSB OAK66D0159Accident · No injuriesClosedNavion L-17B · Livermore, CANTSB NYC66D0424Accident · Minor injuriesClosedCessna 172 · Pittsburg, PANTSB LAX66A0048Accident · 1 fatalClosedCessna 172C · Montello, NVNTSB CHI66A0057Accident · 2 fatalClosedCessna 172 · Stone, KYNTSB LAX66A0047Accident · 2 fatalClosedCessna 172 · Winterhaven, CANTSB MIA66D0380Accident · Minor injuriesClosedAeronca L-16 · Clyattville, GANTSB DEN66D0182Accident · No injuriesClosedPiper PA-28 · Avondale, CONTSB MIA66A0063Accident · Minor injuriesClosedBell 47D1 · Homestead, FLNTSB UNK66X0112Accident · Serious injuriesClosedPiper PA-22 · Olive Alba, CanadaNTSB OAK66D0158Accident · Serious injuriesClosedAeronca 7DC · Nakadomari Okinwa, JANTSB MKC66A0032Accident · 1 fatalClosedBeech 35-33 · Hills, IANTSB MIA66F0381Accident · Serious injuriesClosedCessna 172 · Baxley, GANTSB MIA66A0061Accident · 1 fatalClosedPiper PA-28 · New Topsail Bc, NCNTSB LAX66F0187Accident · Serious injuriesClosedCessna 150 · Fillmore, CANTSB MIA66F0364Accident · No injuriesClosedPiper PA-28 · Camden, ALNTSB SEA66A0032Accident · Minor injuriesClosedBell 47G-2 · 38mi E.Kelso, WANTSB UNK66X0110Accident · 2 fatalClosedPiper PA-22 · Ogeman, ARNTSB CHI66A0051Accident · 4 fatalClosedCessna 172F · Chicago Hgts, ILNTSB DEN66D0151Accident · No injuriesClosedBeechcraft E-185 · Taos, NMNTSB SEA66D0178Accident · No injuriesClosedPiper PA-11 · Lambert, MTNTSB NYC66A0056Accident · 1 fatalClosedPiper PA-23 · Covington, VANTSB DEN66A0032Accident · 1 fatalClosedCessna 310B · Glenwood, NMNTSB LAX66D0161Accident · No injuriesClosedBoeing A-75 · Mckittrick, CANTSB MIA66A0054Accident · Serious injuriesClosedBell 204-B · Baxterville, MSNTSB MKC66A0031Accident · 2 fatalClosedCessna 150 · Mitchell, SDNTSB FTW66D0392Accident · No injuriesClosedPiper J-3 · Washita, OKNTSB MKC66F0350Accident · Serious injuriesClosedForney F-1 · Burrton, KSNTSB DEN66F0174Accident · Minor injuriesClosedNaval Arcft N3N-3 · Sun City, AZNTSB MIA66A0051Accident · No injuriesClosedBrantly B-2 · Opa Locka, FLNTSB DEN66D0139Accident · No injuriesClosedCessna 150 · Roswell, NMNTSB ANC66D0068Accident · Minor injuriesClosedPiper PA-18 · Farewell, AKNTSB SEA66A0029Accident · 1 fatalClosedTaylorcraft BC12-D · Blackfoot, IDNTSB LAX66A0039Accident · No injuriesClosedHiller UH12E · Newhall, CANTSB NYC66F0308Accident · No injuriesClosedErcoupe 415C · South Boston, VANTSB MIA49A0049Accident · 2 fatalClosedTaylorcraft BF-12 · Horton, ALNTSB FTW66F0359Accident · Minor injuriesClosedBoeing A-75 · Lorenzo, TXNTSB FTW66A0039Accident · No injuriesClosedBell 47D1 · Snyder, TXNTSB MIA66F0286Accident · No injuriesClosedPiper PA-20 · Charlotte, NCNTSB DEN66F0140Accident · No injuriesClosedNaval Arcft N3N-3 · Litchfield Pk, AZNTSB MIA66F0369Accident · No injuriesClosedCessna 150E · Theodore, AL