NTSB investigations, 1974
1,387 cases where the phase of flight was Landing.
Cases per year
| 1962 | 22 |
|---|---|
| 1963 | 19 |
| 1964 | 2,152 |
| 1965 | 2,293 |
| 1966 | 2,496 |
| 1967 | 2,731 |
| 1968 | 1,964 |
| 1969 | 1,749 |
| 1970 | 1,680 |
| 1971 | 1,626 |
| 1972 | 1,480 |
| 1973 | 1,368 |
| 1974 | 1,387 |
| 1975 | 1,285 |
| 1976 | 1,307 |
| 1977 | 1,222 |
| 1978 | 1,325 |
| 1979 | 1,135 |
| 1980 | 1,123 |
| 1981 | 1,048 |
| 1982 | 939 |
| 1983 | 885 |
| 1984 | 853 |
| 1985 | 739 |
| 1986 | 661 |
| 1987 | 699 |
| 1988 | 605 |
| 1989 | 584 |
| 1990 | 556 |
| 1991 | 503 |
| 1992 | 534 |
| 1993 | 524 |
| 1994 | 516 |
| 1995 | 481 |
| 1996 | 529 |
| 1997 | 508 |
| 1998 | 545 |
| 1999 | 563 |
| 2000 | 517 |
| 2001 | 497 |
| 2002 | 516 |
| 2003 | 515 |
| 2004 | 522 |
| 2005 | 543 |
| 2006 | 470 |
| 2007 | 536 |
| 2008 | 538 |
| 2009 | 474 |
| 2010 | 512 |
| 2011 | 519 |
| 2012 | 500 |
| 2013 | 420 |
| 2014 | 412 |
| 2015 | 422 |
| 2016 | 527 |
| 2017 | 490 |
| 2018 | 518 |
| 2019 | 463 |
| 2020 | 420 |
| 2021 | 455 |
| 2022 | 494 |
| 2023 | 477 |
| 2024 | 477 |
| 2025 | 451 |
| 2026 | 382 |
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\") = 1974
AND c.\"mKey\" IN (SELECT case_mkey FROM case_phases WHERE main = 550)
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") = 1974
AND c."mKey" IN (SELECT case_mkey FROM case_phases WHERE main = 550)
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 NYC75FGT10Accident · No injuriesClosedPiper PA-24 · Frackville, PANTSB NYC75DHA26Accident · No injuriesClosedStinson 108-1 · Spring City, PANTSB FTW75DRD24Accident · No injuriesClosedCessna 120 · Golden Meadow, LANTSB FTW75DQG36Accident · No injuriesClosedPiper PA-28 · Shallowater, TXNTSB LAX75FUA20Accident · Minor injuriesClosedCessna 182G · Buena Park, CANTSB OAK75FVM18Accident · No injuriesClosedGlobe GC-1B · Palo Alto, CANTSB OAK75DVD30Accident · No injuriesClosedCulver V · Sonoma, CANTSB MIA75DLD45Accident · Minor injuriesClosedCessna 182L · Summerfield, FLNTSB LAX75DVA40Accident · No injuriesClosedBeech B35 · Bakersfield, CANTSB LAX75DUG25Accident · Minor injuriesClosedPiper PA-20 · Rubidoux, CANTSB IAD75FLQ11Accident · Serious injuriesClosedAero Comdr 500B · Paducah, KYNTSB NYC75FFA25Accident · No injuriesClosedCessna 172 · Malone, NYNTSB NYC75DHA28Accident · No injuriesClosedCessna 170A · Pittstown, NJNTSB MKC75FCD28Accident · No injuriesClosedLuscombe 8A · Rockwell Cty, IANTSB MIA75DKT37Accident · No injuriesClosedPiper PA-30 · Sanibel, FLNTSB LAX75DUJ59Accident · No injuriesClosedCessna 182J · Tucson, AZNTSB FTW75DRA16Accident · No injuriesClosedCessna 172L · Kirbyville, TXNTSB DEN75DTE44Accident · No injuriesClosedCessna 150 · Salida, CONTSB MIA75DKT50Accident · Minor injuriesClosedCessna 210D · Sanabel Isl, FLNTSB CHI75AC046Accident · 3 fatalClosedNa Rockwell 265-60 · Lancaster, OHNTSB MIA75AM039Accident · No injuriesClosedGrumman G-73 · Miami, FLNTSB CHI75FEC30Accident · No injuriesClosedMaule M4220C · Ann Arbor, MINTSB CHI75DEE34Accident · No injuriesClosedCessna 150L · Morris, ILNTSB FTW75FPM09Accident · No injuriesClosedPiper PA-24 · Tulsa, OKNTSB CHI75FEE36Accident · No injuriesClosedTemco D16A · Hebron, ILNTSB CHI75DEP38Accident · No injuriesClosedCessna 150H · Wilmot, WINTSB NYC75FHD27Accident · Minor injuriesClosedErco 415-C · West Chester, PANTSB NYC75AN075Accident · Minor injuriesClosedCessna 182 · Vinalhaven, MENTSB MKC75FCG25Accident · No injuriesClosedAero Comdr 560 · Lees Summit, MONTSB CHI75FEI34Accident · No injuriesClosedCessna 172M · Bowlng Green, OHNTSB CHI75DEE37Accident · No injuriesClosedPiper PA-23 · Monee, ILNTSB OAK75FVW11Accident · No injuriesClosedMooney M20C · Las Vegas, NVNTSB OAK75DXQ31Accident · Minor injuriesClosedCessna 182 · Mammoth Lks, CANTSB FTW75FRD19Accident · No injuriesClosedPiper J3C-65 · Baton Rouge, LANTSB IAD75FIA01Accident · No injuriesClosedGrumman AA5 · California, MDNTSB OAK75DXQ33Accident · No injuriesClosedCessna 182 · Jackpot, NVNTSB MKC75IK032Incident · No injuriesClosedDouglas DC-9 · Minneapolis, MNNTSB MKC75FCG26Accident · No injuriesClosedPiper PA-30 · Bolivar, MONTSB CHI75FET13Accident · Minor injuriesClosedCessna 340 · Ft Wayne, INNTSB NYC75DHA24Accident · No injuriesClosedCessna 150 · Honesdale, PANTSB LAX75FUQ19Accident · Serious injuriesClosedPiper PA-28 · Van Nuys, CANTSB IAD75FLT05Accident · Minor injuriesClosedCessna 205 · Memphis, TNNTSB CHI75FEC27Accident · No injuriesClosedPiper PA-28 · Grosse Ile, MINTSB SEA75FYC22Accident · No injuriesClosedCessna 182M · Vancouver, WANTSB NYC75FHJ21Accident · No injuriesClosedPiper PA-28 · Amityville, NYNTSB NYC75DFJ19Accident · No injuriesClosedPiper PA-28 · Syracuse, NYNTSB MIA75FKT39Accident · Minor injuriesClosedCessna 150 · Opa Locka, FLNTSB MIA75FKG52Accident · No injuriesClosedCessna 182G · St Marys, GANTSB MKC75FCA17Accident · No injuriesClosedCessna 150F · Morley, MONTSB LAX75O0017Accident · No injuriesClosedAero Comdr 520 · Bahia De L.A., Mexico