NTSB investigations, 1980
251 cases where the phase of flight was Takeoff.
Cases per year
| 1962 | 4 |
|---|---|
| 1963 | 5 |
| 1964 | 352 |
| 1965 | 314 |
| 1966 | 410 |
| 1967 | 449 |
| 1968 | 327 |
| 1969 | 364 |
| 1970 | 345 |
| 1971 | 383 |
| 1972 | 265 |
| 1973 | 299 |
| 1974 | 343 |
| 1975 | 315 |
| 1976 | 281 |
| 1977 | 333 |
| 1978 | 344 |
| 1979 | 321 |
| 1980 | 251 |
| 1981 | 289 |
| 1982 | 254 |
| 1983 | 247 |
| 1984 | 238 |
| 1985 | 192 |
| 1986 | 182 |
| 1987 | 187 |
| 1988 | 168 |
| 1989 | 162 |
| 1990 | 185 |
| 1991 | 191 |
| 1992 | 146 |
| 1993 | 140 |
| 1994 | 175 |
| 1995 | 197 |
| 1996 | 145 |
| 1997 | 154 |
| 1998 | 153 |
| 1999 | 175 |
| 2000 | 162 |
| 2001 | 148 |
| 2002 | 153 |
| 2003 | 162 |
| 2004 | 129 |
| 2005 | 143 |
| 2006 | 127 |
| 2007 | 150 |
| 2008 | 170 |
| 2009 | 205 |
| 2010 | 198 |
| 2011 | 188 |
| 2012 | 184 |
| 2013 | 153 |
| 2014 | 188 |
| 2015 | 184 |
| 2016 | 191 |
| 2017 | 195 |
| 2018 | 172 |
| 2019 | 197 |
| 2020 | 193 |
| 2021 | 179 |
| 2022 | 176 |
| 2023 | 204 |
| 2024 | 216 |
| 2025 | 204 |
| 2026 | 179 |
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\") = 1980
AND c.\"mKey\" IN (SELECT case_mkey FROM case_phases WHERE main = 300)
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") = 1980
AND c."mKey" IN (SELECT case_mkey FROM case_phases WHERE main = 300)
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 LAX81FXQ08Accident · No injuriesClosedCessna T210M · Fallon, NVNTSB CHI81FEV08Accident · No injuriesClosedCessna 177RG · Meyer, ILNTSB MKC81FCQ07Accident · Minor injuriesClosedScorpion 133 · Ulysses, KSNTSB FTW81DRD10Accident · No injuriesClosedBoeing 75 · Sulphur, LANTSB LAX81IA022Incident · No injuriesClosedBoeing 747SP · San Francisco, CANTSB LAX81FVA16Accident · Minor injuriesClosedPiper PA-28 · Fresno, CANTSB DEN81FTE10Accident · No injuriesClosedCessna 180 · Meeker, CONTSB ATL81FA027Accident · Serious injuriesClosedBeech G-185 · Atlanta, GANTSB MIA81DKA03Accident · No injuriesClosedCessna 185 · Ajuntas, PRNTSB NYC81FHD09Accident · No injuriesClosedDehavilland DHC-1 · Ocean City, NJNTSB ATL81DLJ02Accident · No injuriesClosedBensen B8M · Spring Lake, NCNTSB FTW81DA014Accident · 1 fatalClosedBell 206B3 · Cameron, LANTSB ATL81IA020Incident · No injuriesClosedBoeing 737 · Richmond, VANTSB MKC81DCD03Accident · No injuriesClosedCessna 180 · Knoxville, IANTSB NYC81FNA02Accident · Minor injuriesClosedCessna 172 · Warwick, RINTSB LAX81DXQ03Accident · No injuriesClosedCessna 180 · Truckee, CANTSB FTW81FRG07Accident · No injuriesClosedCessna 421C · Junction, TXNTSB MIA81IA017Incident · Minor injuriesClosedCessna 402A · Marathon, FLNTSB DEN81FTM02Accident · Minor injuriesClosedEnstrom 280C · Salt Lake City, UTNTSB MKC81FCG15Accident · No injuriesClosedPiper PA-22 · Independence, MONTSB SEA81DYE05Accident · No injuriesClosedCessna 180 · Forks, WANTSB MKC81DCG10Accident · Minor injuriesClosedCessna 150 · Webb City, MONTSB MKC81DCG09Accident · No injuriesClosedMinibat 01 · Grain Valley, MONTSB CHI81FA005Accident · 1 fatalClosedCessna 172 · Westfield, WINTSB CHI81FET02Accident · No injuriesClosedCessna 150 · Griffin, INNTSB LAX80FVD06Accident · No injuriesClosedPiper PA-31 · Oakland, CANTSB CHI81DER06Accident · No injuriesClosedCessna 152 · Cloquet, MNNTSB CHI81DEX04Accident · No injuriesClosedBell 206B · Kokomo, INNTSB DEN81FTC03Accident · No injuriesClosedPiper PA-20 · Cody, WYNTSB DEN81FTC02Accident · No injuriesClosedDehavilland DH82A · Evanston, WYNTSB FTW81FPJ02Accident · No injuriesClosedWaco YPF-7 · Oklahoma City, OKNTSB LAX81DUM03Accident · No injuriesClosedPiper PA-28 · Imperial, CANTSB CHI81DEC01Accident · No injuriesClosedCessna 152 · Flushing, MINTSB CHI81FEI03Accident · No injuriesClosedCessna 150 · N Philadelphia, OHNTSB ANC81DAG11Accident · No injuriesClosedPiper PA-18 · Iliamna, AKNTSB SEA81DYP02Accident · No injuriesClosedPiper PA-28R · Almira, WANTSB NYC81DNC05Accident · No injuriesClosedCessna 182 · Middlebury, VTNTSB ANC81DAG04Accident · Minor injuriesClosedPiper PA-22 · Tulakes, AKNTSB FTW81FQG03Accident · No injuriesClosedBeigh KR-1 · Big Lake, TXNTSB CHI81FEK01Accident · No injuriesClosedCessna 182 · Columbus, OHNTSB DEN81FTC01Accident · No injuriesClosedCessna 170 · Wright, WYNTSB DEN81FTG01Accident · No injuriesClosedHiller UH12E · Argusville, NDNTSB DEN81FTA01Accident · No injuriesClosedHelio Acft H-250 · Baker, MTNTSB CHI81FEX01Accident · No injuriesClosedCessna 170 · Pendleton, INNTSB CHI80DEE57Accident · No injuriesClosedBLN Works FF-7 · Rock Island, ILNTSB MIA80DLE07Accident · Serious injuriesClosedBeech D18S · Frostproof, FLNTSB CHI80FEV40Accident · Serious injuriesClosedBensen B8M · St. Joseph, ILNTSB ANC80DAA28Accident · No injuriesClosedCessna 170 · Arctic Village, AKNTSB ANC81DAG05Accident · Minor injuriesClosedTaylorcraft BC12-D · Chugiak, AKNTSB ANC80DAH14Accident · No injuriesClosedCessna 180 · Mccarthy, AK