NTSB investigations, 1967
381 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\") = 1967
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") = 1967
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 MKC68D0433Accident · No injuriesClosedCessna 150 · Duluth, MNNTSB CHI68D0543Accident · No injuriesClosedPiper PA-28 · New Richmond, WINTSB OAK68D0267Accident · Minor injuriesClosedLuscombe 8A · Half Moon Bay, CANTSB OAK68D0262Accident · No injuriesClosedCessna 170A · Morgan Hill, CANTSB NYC68F0346Accident · No injuriesClosedCessna 210B · Erie, PANTSB OAK68D0309Accident · No injuriesClosedCessna 172 · Corning, CANTSB LAX68D0332Accident · Minor injuriesClosedPiper PA-24 · Goleta, CANTSB LAX68O0294Accident · No injuriesClosedCessna 182 · San Pedro, MexicoNTSB CHI68F0553Accident · No injuriesClosedPiper PA-28 · Collinsville, ILNTSB CHI68D0522Accident · No injuriesClosedCessna 150G · Carbondale, ILNTSB NYC68F0322Accident · No injuriesClosedCessna 150G · Hartford, CTNTSB MIA68A0056Accident · No injuriesClosedBell 47G · Miami, FLNTSB LAX68F0256Accident · No injuriesClosedLuscombe 8E · Fullerton, CANTSB CHI68F0497Accident · No injuriesClosedCessna 310H · Cincinnati, OHNTSB OAK68D0233Accident · No injuriesClosedPiper PA-22 · Crescnt Cty, CANTSB NYC68D0310Accident · No injuriesClosedCessna 172 · Groton, CTNTSB NYC68D0312Accident · No injuriesClosedBeech A23 · New Bedford, MANTSB MKC68D0372Accident · No injuriesClosedPiper PA-22 · Marshalltown, IANTSB OAK68A0051Accident · No injuriesClosedHughes 269A · Salinas, CANTSB MKC68F0428Accident · No injuriesClosedCessna 310B · St.Paul, MNNTSB LAX68F0270Accident · No injuriesClosedAero Comdr 680 · Van Nuys, CANTSB OAK68D0304Accident · No injuriesClosedCessna 150 · Vacaville, CANTSB OAK68D0232Accident · No injuriesClosedCessna 210 · Oakland, CANTSB OAK68D0228Accident · No injuriesClosedCessna 172 · Vacaville, CANTSB NYC68I0077Incident · No injuriesClosedDouglas DC-8 · Jamaica, NYNTSB DEN68F0159Accident · No injuriesClosedCessna 182 · Albuquerque, NMNTSB CHI68D0489Accident · No injuriesClosedChampion 7FC · Savoy, ILNTSB MKC68D0379Accident · No injuriesClosedPiper PA-22 · Chadron, NENTSB LAX68F0228Accident · Minor injuriesClosedCessna 150 · Torrance, CANTSB MIA68F0292Accident · No injuriesClosedBeech A23 · Chamblee, GANTSB SEA68D0232Accident · No injuriesClosedPiper PA-22 · Oak Harbor, WANTSB NYC68D0318Accident · No injuriesClosedPiper PA-22 · Coudersport, PANTSB LAX68D0216Accident · No injuriesClosedCessna 182 · San Frnando, CANTSB FTW68D0377Accident · No injuriesClosedPiper PA-23 · Andrews, TXNTSB DEN68D0165Accident · No injuriesClosedCessna 172 · Casper, WYNTSB FTW68D0340Accident · No injuriesClosedPiper PA-30 · Okla.City, OKNTSB DIA68A0023Incident · 1 fatalClosedBensen B8MWBH · Stafford, VANTSB MKC68D0410Accident · No injuriesClosedCessna 172 · Kansas City, MONTSB MIA68F0346Accident · Minor injuriesClosedCessna 172 · St.Thomas, VINTSB MIA68F0299Accident · No injuriesClosedPiper PA-22 · Melbourne, FLNTSB DEN68D0185Accident · No injuriesClosedPiper PA-12 · Vaughn, NMNTSB SEA68D0225Accident · No injuriesClosedCessna 150 · Renton, WANTSB NYC68D0361Accident · No injuriesClosedCessna 150 · Ronkonkoma, NYNTSB LAX68D0226Accident · No injuriesClosedCessna 170B · Santa Maria, CANTSB NYC68D0295Accident · No injuriesClosedPiper PA-18 · Ayer, MANTSB CHI68D0620Accident · No injuriesClosedCessna 180 · Orient, OHNTSB NYC68D0281Accident · No injuriesClosedBeech G35 · Amber, PANTSB MIA68D0298Accident · Minor injuriesClosedCessna 210 · Melbourne, FLNTSB MKC68D0460Accident · No injuriesClosedCessna 150 · Springfield, MONTSB LAX68D0214Accident · No injuriesClosedLake LA-4 · Avalon, CA