NTSB investigations, 1968
215 cases where the phase of flight was Taxi.
Cases per year
| 1962 | 6 |
|---|---|
| 1963 | 6 |
| 1964 | 346 |
| 1965 | 306 |
| 1966 | 372 |
| 1967 | 381 |
| 1968 | 215 |
| 1969 | 200 |
| 1970 | 212 |
| 1971 | 189 |
| 1972 | 181 |
| 1973 | 177 |
| 1974 | 169 |
| 1975 | 179 |
| 1976 | 151 |
| 1977 | 156 |
| 1978 | 184 |
| 1979 | 134 |
| 1980 | 132 |
| 1981 | 113 |
| 1982 | 127 |
| 1983 | 104 |
| 1984 | 96 |
| 1985 | 73 |
| 1986 | 70 |
| 1987 | 87 |
| 1988 | 83 |
| 1989 | 73 |
| 1990 | 74 |
| 1991 | 49 |
| 1992 | 55 |
| 1993 | 60 |
| 1994 | 51 |
| 1995 | 56 |
| 1996 | 59 |
| 1997 | 64 |
| 1998 | 65 |
| 1999 | 55 |
| 2000 | 57 |
| 2001 | 57 |
| 2002 | 62 |
| 2003 | 49 |
| 2004 | 48 |
| 2005 | 52 |
| 2006 | 51 |
| 2007 | 49 |
| 2008 | 64 |
| 2009 | 45 |
| 2010 | 41 |
| 2011 | 45 |
| 2012 | 41 |
| 2013 | 44 |
| 2014 | 33 |
| 2015 | 43 |
| 2016 | 38 |
| 2017 | 45 |
| 2018 | 50 |
| 2019 | 51 |
| 2020 | 25 |
| 2021 | 47 |
| 2022 | 52 |
| 2023 | 48 |
| 2024 | 45 |
| 2025 | 58 |
| 2026 | 48 |
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 = 250)
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 = 250)
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 FTW69D0348Accident · No injuriesClosedPiper PA-11 · Plano, TXNTSB NYC69D0291Accident · No injuriesClosedCessna 150 · Coraopolis, PANTSB CHI69F0405Accident · No injuriesClosedCessna 172 · Columbus, OHNTSB FTW69D0339Accident · No injuriesClosedCessna 172 · College Sta., TXNTSB NYC69D0289Accident · No injuriesClosedCessna 172H · East Boston, MANTSB CHI69D0413Accident · No injuriesClosedCessna 150 · Kankakee, ILNTSB NYC69A0063Accident · No injuriesClosedPiper PA-23 · Jfk Airport, NYNTSB FTW69F0324Accident · No injuriesClosedCessna 172K · Oklahoma Cty, OKNTSB NYC69I0062Incident · No injuriesClosedBoeing 707 · Jfk Intl, NYNTSB LAX69D0243Accident · No injuriesClosedCessna 140 · Long Beach, CANTSB NYC69D0264Accident · No injuriesClosedPiper J-3 · Amityville, NYNTSB FTW69D0313Accident · No injuriesClosedCessna 172 · Lake Charles, LANTSB MKC69D0286Accident · No injuriesClosedCessna 172 · Charles City, IANTSB MKC69D0275Accident · No injuriesClosedCessna 210 · Watertown, SDNTSB ANC69D0082Accident · No injuriesClosedBell 47J-2 · Barrow, AKNTSB NYC69D0260Accident · No injuriesClosedLuscombe 8F · Pluckimen, NJNTSB CHI69D0376Accident · No injuriesClosedCessna 172H · Fairborn, OHNTSB MIA69I0259Incident · No injuriesClosedPiper J-3 · Ozark, ALNTSB MKC69F0302Accident · No injuriesClosedPiper PA-24 · Paullina, IANTSB CHI69F0403Accident · No injuriesClosedPiper PA-32 · Peoria, ILNTSB LAX69D0213Accident · No injuriesClosedBeech D35 · Ontario, CANTSB FTW69F0278Accident · No injuriesClosedAero Comdr 520 · Dallas, TXNTSB MIA69F0236Accident · No injuriesClosedCessna 175 · San Juan, PRNTSB OAK69D0172Accident · No injuriesClosedBeech C35 · San Bruno, CANTSB MKC69D0267Accident · No injuriesClosedBeech A23 · Millard, NENTSB MKC69D0259Accident · No injuriesClosedCessna 182L · Garden City, KSNTSB DEN69D0137Accident · No injuriesClosedCessna 210 · Hobbs, NMNTSB LAX69F0167Accident · No injuriesClosedPiper PA-28 · Torrance, CANTSB MIA69D0248Accident · No injuriesClosedPiper PA-32 · Gadsden, ALNTSB SEA69F0133Accident · No injuriesClosedBeech C-17B · Arlington, WANTSB MIA69D0260Accident · No injuriesClosedPiper PA-18 · Punta Gorda, FLNTSB DEN69D0128Accident · No injuriesClosedPiper PA-24 · Artesia, NMNTSB OAK69D0188Accident · No injuriesClosedCessna 150 · San Jose, CANTSB SEA69D0137Accident · No injuriesClosedStinson 108-3 · Seattle, WANTSB MKC69D0255Accident · No injuriesClosedStinson 108-3 · Beaumont, KSNTSB CHI69D0332Accident · No injuriesClosedPiper PA-12 · Elgin, ILNTSB MIA69D0221Accident · No injuriesClosedCessna 172 · Daytona Beach, FLNTSB FTW69F0253Accident · No injuriesClosedPiper PA-32 · Shallowater, TXNTSB CHI69F0311Accident · No injuriesClosedMooney M20A · Inkster, MINTSB SEA69D0162Accident · No injuriesClosedCessna 172 · Tillamook, ORNTSB DIA69F0082Accident · No injuriesClosedCarson-Bell 47-G · Sandston, VANTSB MKC69D0217Accident · No injuriesClosedPiper PA-22 · Salina, KSNTSB CHI69D0334Accident · No injuriesClosedCessna 150 · Carrollton, OHNTSB MKC69D0241Accident · No injuriesClosedBeech A23-19 · Sheldon, MONTSB MKC69D0233Accident · No injuriesClosedCessna 150 · Kansas City, KSNTSB NYC69F0242Accident · 1 fatalClosedBensen B8M · Mickleton, NJNTSB DEN69D0100Accident · No injuriesClosedPiper PA-28 · Aspen, CONTSB FTW69D0217Accident · No injuriesClosedCessna 210 · Pecos, TXNTSB OAK69D0136Accident · No injuriesClosedErco 415-C · Oakland, CANTSB FTW69D0238Accident · No injuriesClosedCessna 140 · Van Buren, AR