NTSB investigations, 1968
327 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 | 203 |
| 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\") = 1968
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") = 1968
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 NYC69A0070Accident · No injuriesClosedBeech 65-B80 · Barre, VTNTSB OAK69D0227Accident · No injuriesClosedSchemp SH-1 · Fremont, CANTSB MKC69D0300Accident · No injuriesClosedPiper PA-22 · Nashua, IANTSB LAX69D0224Accident · No injuriesClosedMooney M20C · La Verne, CANTSB SEA69F0165Accident · No injuriesClosedHughes 269A · Renton, WANTSB OAK69D0209Accident · No injuriesClosedPiper PA-30 · Turlock, CANTSB MKC69D0327Accident · No injuriesClosedPiper PA-11 · Hampton, IANTSB MKC69F0298Accident · No injuriesClosedCessna 140 · Chesterfield, MONTSB CHI69D0432Accident · No injuriesClosedPiper PA-28 · Akron, OHNTSB NYC69A0065Accident · No injuriesClosedAero Comdr 1121AC · Buffalo, NYNTSB MKC69F0293Accident · No injuriesClosedPiper PA-22 · St Charles, MONTSB FTW69D0328Accident · No injuriesClosedBeech V35A · Boise City, OKNTSB SEA69A0035Accident · 1 fatalClosedAero Comdr 500 · Glendive, MTNTSB ANC69F0091Accident · Serious injuriesClosedGrumman G-44A · Sanak Island, AKNTSB FTW69D0381Accident · No injuriesClosedSchweizer 2-33 · Refugio, TXNTSB LAX69D0229Accident · No injuriesClosedMooney M20E · Mesa, AZNTSB OAK70A0036Accident · Minor injuriesClosedLockheed 1649A · Las Vegas, NVNTSB DEN69F0146Accident · Minor injuriesClosedErco 415-C · Salt Lake City, UTNTSB SEA69D0145Accident · No injuriesClosedPiper PA-22 · Leadore, IDNTSB NYC69F0273Accident · No injuriesClosedPiper J3L-65 · Monroeville, PANTSB MIA69D0239Accident · No injuriesClosedCessna 150 · Pensacola, FLNTSB CHI69D0398Accident · No injuriesClosedPiper PA-24 · Mt.Vernon, INNTSB UNK69X0101Accident · No injuriesClosedHelio Acft H-295 · Rampur, NepalNTSB LAX69D0289Accident · No injuriesClosedCessna 150 · Santa Maria, CANTSB CHI69D0421Accident · No injuriesClosedPiper PA-23 · Bowling Grn, OHNTSB ANC69A0032Accident · 2 fatalClosedCessna 185 · Point Baker, AKNTSB NYC69F0270Accident · No injuriesClosedCessna 140 · Camillus, NYNTSB MKC69F0292Accident · No injuriesClosedBeech A45 · Valley City, NDNTSB FTW69O0007Accident · Minor injuriesClosedCessna 195 · Calamahue, MexicoNTSB FTW69D0300Accident · No injuriesClosedCessna 180C · Leeville, LANTSB ANC69D0099Accident · No injuriesClosedPiper PA-20 · Copper Centr, AKNTSB ANC69A0027Accident · 1 fatalClosedBell 47G-4A · Kenai, AKNTSB MKC69D0281Accident · No injuriesClosedPiper PA-28 · Alliance, NENTSB UNK69X0100Accident · No injuriesClosedCessna 150 · Homestead, FLNTSB CHI69D0331Accident · No injuriesClosedCessna 150 · Waukesha, WINTSB MIA69D0238Accident · No injuriesClosedCessna 188 · Vero Beach, FLNTSB CHI69F0326Accident · No injuriesClosedCessna 180 · Lebanon, OHNTSB CHI69D0339Accident · No injuriesClosedLake LA-4 · Waukegan, ILNTSB MIA69D0209Accident · Minor injuriesClosedCessna 172 · Raleigh, TNNTSB FTW69D0264Accident · Serious injuriesClosedCessna 170 · Crescent, OKNTSB CHI69D0384Accident · No injuriesClosedBeech H18 · Ohare Airport, ILNTSB MIA69D0220Accident · No injuriesClosedPiper PA-28 · Belle Glade, FLNTSB MIA69F0293Accident · No injuriesClosedPiper PA-24 · Jacksonville, FLNTSB SEA69F0140Accident · No injuriesClosedBell 206 · Seattle, WANTSB FTW69D0288Accident · No injuriesClosedPiper PA-25 · Wisner, LANTSB SEA69F0147Accident · No injuriesClosedMooney M-18LA · Mount Angel, ORNTSB DEN69D0130Accident · No injuriesClosedCessna 180 · Steamboat Sg, CONTSB ANC69A0021Accident · Serious injuriesClosedAero Comdr 680 · Tin City, AKNTSB MKC69I0022Incident · No injuriesClosedBeech 18S · St Louis, MONTSB SEA69I0023Incident · No injuriesClosedPiper PA-31 · Portland, OR