NTSB investigations, 1966
372 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\") = 1966
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") = 1966
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 NYC67D0439Accident · No injuriesClosedPiper PA-22 · Clarion, PANTSB CHI67D0445Accident · No injuriesClosedPiper PA-22 · Toledo, OHNTSB NYC67A0095Accident · No injuriesClosedGrumman G-159 · Richmond, VANTSB MKC67D0415Accident · No injuriesClosedBeech K35 · Great Bend, KSNTSB LAX67D0236Accident · No injuriesClosedPiper PA-32 · El Centro, CANTSB FTW67D0396Accident · No injuriesClosedCessna 180 · Nacogdoches, TXNTSB MIA67F0373Accident · No injuriesClosedPiper PA-30 · Greenville, SCNTSB DEN67F0209Accident · No injuriesClosedCessna 172 · Albuquerque, NMNTSB FTW67F0360Accident · No injuriesClosedDehavilland 1142X · New Orleans, LANTSB NYC67D0480Accident · Minor injuriesClosedPiper PA-28 · Millcreek, PANTSB NYC67D0417Accident · No injuriesClosedAeronca 7AC · Mechanicsburg, PANTSB DIA67D0013Accident · No injuriesClosedPiper PA-12 · Lynchburg, VANTSB CHI67D0427Accident · No injuriesClosedCessna 140 · Cleveland, OHNTSB CHI67D0415Accident · No injuriesClosedPiper PA-22 · Huron, OHNTSB DEN67D0189Accident · No injuriesClosedCessna 180 · Aurora, CONTSB ANC67F0094Accident · No injuriesClosedCessna U206A · Kenai, AKNTSB CHI67D0429Accident · No injuriesClosedPiper PA-23 · Madison, WINTSB DEN67I0036Incident · No injuriesClosedConvair 580 · Salt Lake City, UTNTSB NYC67D0442Accident · No injuriesClosedPiper PA-22 · Wappingers Fls., NYNTSB MIA67F0352Accident · No injuriesClosedCessna 210C · Miami, FLNTSB LAX67D0221Accident · No injuriesClosedCessna 172 · Mojave, CANTSB SEA67D0213Accident · No injuriesClosedCessna 172 · Fri.Harbor, WANTSB MKC67F0339Accident · No injuriesClosedCessna 195A · Hastings, NENTSB SEA67A0040Accident · No injuriesClosedBell 47G-2 · Maple Valley, WANTSB NYC67F0393Accident · No injuriesClosedBeech G35 · Gaithersburg, MDNTSB MKC67D0314Accident · No injuriesClosedCessna 172 · Rapid City, SDNTSB CHI67D0373Accident · No injuriesClosedCessna 182 · Indianapolis, INNTSB CHI67D0361Accident · No injuriesClosedCessna 172 · Waukegan, ILNTSB ANC67I0047Incident · No injuriesClosedDouglas DC-3A · Nome, AKNTSB FTW67D0336Accident · No injuriesClosedStinson 108-3 · Houston, TXNTSB CHI67D0364Accident · No injuriesClosedPiper PA-32 · Richmond, INNTSB LAX67D0229Accident · No injuriesClosedBeech B35 · Santa Monica, CANTSB MIA67D0312Accident · No injuriesClosedPiper L-4 · Guntersville, ALNTSB FTW67F0352Accident · No injuriesClosedAlon A-2 · El Paso, TXNTSB OAK67D0173Accident · No injuriesClosedLuscombe 8E · Novato, CANTSB MIA67D0318Accident · No injuriesClosedDehavilland 114 · San Juan, PRNTSB FTW67D0305Accident · No injuriesClosedCessna 172 · Jenks, OKNTSB NYC67A0087Accident · No injuriesClosedCessna 182B · Block Island, RINTSB MKC67D0285Accident · No injuriesClosedPiper J-3 · Bonner Sprgs, KSNTSB FTW67D0334Accident · No injuriesClosedCessna 172 · Lubbock, TXNTSB LAX67D0211Accident · No injuriesClosedCessna 172 · Burbank, CANTSB MKC67F0313Accident · No injuriesClosedCessna 172H · Fargo, NDNTSB MKC67D0293Accident · No injuriesClosedPiper PA-22 · Spearfish, SDNTSB OAK67F0166Accident · No injuriesClosedHelio Acft H-391B · Oakland, CANTSB LAX67F0190Accident · No injuriesClosedCessna 210 · Needles, CANTSB LAX67A0048Accident · No injuriesClosedDouglas DC-3 · Los Angeles, CANTSB CHI67A0063Accident · Minor injuriesClosedFairchild F-27 · Chicago, ILNTSB NYC67D0376Accident · No injuriesClosedCessna 150 · Burlington, CTNTSB MKC67D0316Accident · No injuriesClosedPiper PA-24 · Topeka, KSNTSB MKC67D0308Accident · No injuriesClosedBeech 95-55 · Keokuk, IA