NTSB investigations, 1981
499 cases where the phase of flight was Initial climb.
Cases per year
| 1962 | 3 |
|---|---|
| 1963 | 4 |
| 1964 | 505 |
| 1965 | 555 |
| 1966 | 582 |
| 1967 | 587 |
| 1968 | 577 |
| 1969 | 582 |
| 1970 | 552 |
| 1971 | 541 |
| 1972 | 507 |
| 1973 | 482 |
| 1974 | 556 |
| 1975 | 543 |
| 1976 | 521 |
| 1977 | 556 |
| 1978 | 566 |
| 1979 | 502 |
| 1980 | 505 |
| 1981 | 499 |
| 1982 | 490 |
| 1983 | 507 |
| 1984 | 466 |
| 1985 | 418 |
| 1986 | 394 |
| 1987 | 380 |
| 1988 | 368 |
| 1989 | 348 |
| 1990 | 351 |
| 1991 | 324 |
| 1992 | 306 |
| 1993 | 307 |
| 1994 | 292 |
| 1995 | 289 |
| 1996 | 244 |
| 1997 | 272 |
| 1998 | 266 |
| 1999 | 239 |
| 2000 | 221 |
| 2001 | 219 |
| 2002 | 200 |
| 2003 | 227 |
| 2004 | 210 |
| 2005 | 204 |
| 2006 | 180 |
| 2007 | 202 |
| 2008 | 212 |
| 2009 | 173 |
| 2010 | 162 |
| 2011 | 177 |
| 2012 | 193 |
| 2013 | 122 |
| 2014 | 130 |
| 2015 | 165 |
| 2016 | 141 |
| 2017 | 149 |
| 2018 | 155 |
| 2019 | 146 |
| 2020 | 112 |
| 2021 | 166 |
| 2022 | 161 |
| 2023 | 163 |
| 2024 | 143 |
| 2025 | 135 |
| 2026 | 104 |
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\") = 1981
AND c.\"mKey\" IN (SELECT case_mkey FROM case_phases WHERE main = 350)
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") = 1981
AND c."mKey" IN (SELECT case_mkey FROM case_phases WHERE main = 350)
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 FTW82FPG07Accident · No injuriesClosedCessna 177RG · Little Rock, ARNTSB CHI82DEV05Accident · No injuriesClosedCessna 172 · Carthage, ILNTSB ANC82DAD04Accident · No injuriesClosedDehavnd Can DHC-2 · Big Pt Walter, AKNTSB MIA82DKJ02Accident · No injuriesClosedCessna 411 · Panama City, FLNTSB CHI82FEE10Accident · No injuriesClosedCessna 177RG · Monee, ILNTSB DEN82FTA08Accident · Serious injuriesClosedPiper PA-24 · Rock Springs, MTNTSB NYC82FNC03Accident · Minor injuriesClosedCessna 182K · Eliot, MENTSB CHI82FEX05Accident · Serious injuriesClosedCessna 172 · Paoli, INNTSB CHI82FEE09Accident · No injuriesClosedCessna 177 · Paw Paw, ILNTSB LAX82FVM08Accident · Serious injuriesClosedPiper PA-22 · Half Moon Bay, CANTSB CHI82FEX06Accident · No injuriesClosedCessna 182G · Jeffsonville, INNTSB FTW82DRD07Accident · Serious injuriesClosedBell 206L-1 · Gulf Of Mexico (Gulf of Mexico)NTSB DEN82FTE12Accident · No injuriesClosedGulf-Amer AA-5A · Longmont, CONTSB ANC82DAA02Accident · No injuriesClosedTaylorcraft BC12-D · Nome, AKNTSB MKC82FA013Accident · 3 fatalClosedCessna T210N · Jackson, MINTSB LAX82DUJ21Accident · Minor injuriesClosedPiper PA-28 · Show Low, AZNTSB MIA82FA023Accident · 4 fatalClosedMaule M-6 · Summerland Key, FLNTSB ANC82DAG11Accident · Minor injuriesClosedBellanca 17-31 · Anchorage, AKNTSB LAX82FA027Accident · 4 fatalClosedCessna 182L · Coalinga, CANTSB NYC82FGT06Accident · No injuriesClosedStinson 108 · Brogue, PANTSB ANC82FA010Accident · 4 fatalClosedCessna 207A · Tyonek, AKNTSB ATL82FKW03Accident · Serious injuriesClosedBeech V35B · Concord, TNNTSB LAX82DUG04Accident · Minor injuriesClosedCessna 150F · Adelanto, CANTSB CHI82FEV04Accident · No injuriesClosedCessna 177B · Villa Grove, ILNTSB ANC82FA009Accident · No injuriesClosedPiper PA-32 · Tuntutuliak, AKNTSB LAX82FVA09Accident · No injuriesClosedAero Comdr S-2R · Corcoran, CANTSB LAX82FUJ16Accident · Serious injuriesClosedCessna 140 · Cottonwood, AZNTSB ATL82FA024Accident · 2 fatalClosedCessna 210N · Rock Hill, SCNTSB ATL82FA023Accident · 2 fatalClosedCessna 310K · Gainsville, GANTSB LAX82FVD06Accident · No injuriesClosedBeech C23 · Hayward, CANTSB FTW82FQA10Accident · No injuriesClosedCessna 182RG · Tucumcari, NMNTSB CHI82FER15Accident · Minor injuriesClosedMooney M20K · Buffalo, MNNTSB LAX82DVG09Accident · Serious injuriesClosedCessna 182 · Redding, CANTSB LAX82DVM05Accident · No injuriesClosedPiper PA-38 · Hollister, CANTSB LAX82DUJ13Accident · No injuriesClosedPiper PA-23 · Phoenix, AZNTSB CHI82FER13Accident · No injuriesClosedCessna 182B · Eden Prairie, MNNTSB LAX82FVG08Accident · Serious injuriesClosedMooney M20D · Napa, CANTSB FTW82FRG14Accident · Serious injuriesClosedCessna 177RG · Laredo, TXNTSB MKC82FA007Accident · 5 fatalClosedCessna 182P · Wauneta, NENTSB LAX82FVG06Accident · No injuriesClosedPiper PA-32 · Woodland, CANTSB FTW82DRJ05Accident · Minor injuriesClosedPiper JC3-65 · Oil City, LANTSB DEN82FTE10Accident · No injuriesClosedMome II · Longmont, CONTSB ATL82DID03Accident · No injuriesClosedChampion 7ECA · Virginia Beach, VANTSB MKC82DCG07Accident · Minor injuriesClosedVolksplane VP-1 · St Joseph, MONTSB FTW82FRG11Accident · Serious injuriesClosedPiper PA-38 · Austin, TXNTSB CHI82FEM05Accident · Serious injuriesClosedPiper PA-22 · Wayland, MINTSB NYC82FFJ06Accident · No injuriesClosedPiper PA-28 · Rochester, NYNTSB FTW82FPD06Accident · No injuriesClosedMitchell B-10 · Arlington, TXNTSB FTW82DRD06Accident · No injuriesClosedBell 206L-1 · Cameron, LANTSB CHI82FEP09Accident · 1 fatalClosedOsprey 2 · Madison, WI