NTSB investigations, 1978
566 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 | 134 |
| 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\") = 1978
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") = 1978
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 LAX79DUJ39Accident · Serious injuriesClosedAeronca 0-58B · Flagstaff, AZNTSB NYC79FNC15Accident · Serious injuriesClosedCessna 172N · Lebanon, NHNTSB MIA79FLD28Accident · No injuriesClosedBell 47J2A · Kissimmee, FLNTSB FTW79FQD04Accident · Serious injuriesClosedCessna 172N · Marfa, TXNTSB DEN79FA013Accident · 1 fatalClosedCessna U206 · Ogden, UTNTSB DEN79FTE14Accident · 1 fatalClosedMidget Mustng · Aurora, CONTSB FTW79FQG12Accident · Minor injuriesClosedPiper PA-28 · Denver City, TXNTSB MIA79FLG14Accident · No injuriesClosedCessna 150 · Mccoll, SCNTSB CHI79FEE20Accident · No injuriesClosedBeech 65 · Wheeling, ILNTSB MKC79FA010Accident · Serious injuriesClosedLear Jet 25 · Minneapolis, MNNTSB LAX79FUG09Accident · Minor injuriesClosedCessna 210L · 29 Palms, CANTSB FTW79FA030Accident · Serious injuriesClosedPiper PA-31 · Dallas, TXNTSB OAK79DJA05Accident · No injuriesClosedCessna A188B · Pago Pago, AntarcticaNTSB MIA79FLT02Accident · No injuriesClosedBell 47G5 · Paden, MSNTSB FTW79FA026Accident · 5 fatalClosedBeech C-45G · Bordelonville, LANTSB FTW79DA027Accident · 2 fatalClosedCessna 152 · Husser, LANTSB CHI79FEE17Accident · 1 fatalClosedHawker TMK20 · Waukegan, ILNTSB LAX79DUJ23Accident · No injuriesClosedCessna 210K · Show Low, AZNTSB IAD79DKM03Accident · Minor injuriesClosedCessna 172 · Linville, NCNTSB IAD79FLJ03Accident · Serious injuriesClosedCessna 150 · Hubert, NCNTSB IAD79FA022Accident · 1 fatalClosedBellanca 8KCAB · Wade, NCNTSB CHI79FET08Accident · No injuriesClosedPiper PA-11 · Michigan City, INNTSB CHI79FEG08Accident · Serious injuriesClosedPiper PA-28 · Chesapeake, OHNTSB OAK79DXQ06Accident · No injuriesClosedPiper PA-22 · Honey Lake, CANTSB CHI79FEP09Accident · No injuriesClosedGrumman AA-5 · Portage, WINTSB NYC79FNA07Accident · No injuriesClosedBlink KR2 · Marshfield, MANTSB MIA79FA028Accident · 1 fatalClosedCessna 182 · Union, SCNTSB MIA79FA027Accident · 3 fatalClosedDouglas DC3 · Lorida, FLNTSB IAD79FA021Accident · 1 fatalClosedCessna 150L · Bolivar, TNNTSB SEA79FYE07Accident · Minor injuriesClosedCessna 150 · Issaquah, WANTSB MKC79DA013Accident · Serious injuriesClosedBarnes AX-7 · Hutchinson, KSNTSB IAD79FKW02Accident · Serious injuriesClosedBeech A23 · Knoxville, TNNTSB UNK79X0105Accident · No injuriesClosedPiper PA-24 · Ocoroni, MexicoNTSB SEA79FTA04Accident · No injuriesClosedPiper PA-24 · Billings, MTNTSB OAK79FXQ05Accident · Serious injuriesClosedCessna 182N · Truckee, CANTSB FTW79DPM04Accident · No injuriesClosedPiper PA-22 · Durant, OKNTSB MIA79FA021Accident · 1 fatalClosedConvair 240 · Miami, FLNTSB ANC79FA023Accident · Serious injuriesClosedPiper PA-32 · Mc Grath, AKNTSB NYC79FA014Accident · 3 fatalClosedAerostar 601P · Hartford, CTNTSB NYC79IA013Incident · No injuriesClosedDouglas DC-9 · Newark, NJNTSB CHI79FET11Accident · Serious injuriesClosedPiper PA-28 · Demotte, INNTSB MKC79DER08Accident · No injuriesClosedPiper PA-22 · Sleepy Eye, MNNTSB CHI79FEK02Accident · Minor injuriesClosedStitts Plby SA3B · St. Marys, OHNTSB IAD79FID03Accident · Minor injuriesClosedMooney M20G · Chesapeake, VANTSB DEN79DTE04Accident · No injuriesClosedCessna 172N · Pritchett, CONTSB MKC79DER04Accident · Minor injuriesClosedCessna 150 · Crystal, MNNTSB DEN79FA008Accident · 1 fatalClosedAero Comdr 500S · Gallup, NMNTSB IAD79FA011Accident · 4 fatalClosedPiper PA-24 · Bowie, MDNTSB SEA79FYP03Accident · Serious injuriesClosedCessna 150A · Easton, WANTSB MIA79DLD16Accident · No injuriesClosedHiller UH12C · Ft Myers, FL