NTSB investigations, 1971
550 cases where the phase of flight was Approach.
Cases per year
| 1962 | 14 |
|---|---|
| 1963 | 10 |
| 1964 | 530 |
| 1965 | 502 |
| 1966 | 600 |
| 1967 | 640 |
| 1968 | 597 |
| 1969 | 572 |
| 1970 | 583 |
| 1971 | 550 |
| 1972 | 522 |
| 1973 | 543 |
| 1974 | 541 |
| 1975 | 530 |
| 1976 | 504 |
| 1977 | 586 |
| 1978 | 567 |
| 1979 | 541 |
| 1980 | 508 |
| 1981 | 473 |
| 1982 | 433 |
| 1983 | 445 |
| 1984 | 433 |
| 1985 | 408 |
| 1986 | 382 |
| 1987 | 327 |
| 1988 | 342 |
| 1989 | 324 |
| 1990 | 334 |
| 1991 | 308 |
| 1992 | 291 |
| 1993 | 276 |
| 1994 | 251 |
| 1995 | 301 |
| 1996 | 272 |
| 1997 | 261 |
| 1998 | 238 |
| 1999 | 244 |
| 2000 | 256 |
| 2001 | 230 |
| 2002 | 232 |
| 2003 | 236 |
| 2004 | 216 |
| 2005 | 229 |
| 2006 | 225 |
| 2007 | 258 |
| 2008 | 211 |
| 2009 | 190 |
| 2010 | 176 |
| 2011 | 194 |
| 2012 | 181 |
| 2013 | 189 |
| 2014 | 178 |
| 2015 | 158 |
| 2016 | 160 |
| 2017 | 191 |
| 2018 | 172 |
| 2019 | 163 |
| 2020 | 156 |
| 2021 | 178 |
| 2022 | 204 |
| 2023 | 186 |
| 2024 | 164 |
| 2025 | 186 |
| 2026 | 90 |
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\") = 1971
AND c.\"mKey\" IN (SELECT case_mkey FROM case_phases WHERE main = 500)
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") = 1971
AND c."mKey" IN (SELECT case_mkey FROM case_phases WHERE main = 500)
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 CHI72DEV20Accident · No injuriesClosedTaylorcraft BC12-D · Jacksonville, ILNTSB CHI72AC056Accident · 2 fatalClosedPiper PA-24 · Rockford, ILNTSB NYC72FHM24Accident · Minor injuriesClosedCessna 150 · West Caldwell, NJNTSB MIA72FKW10Accident · No injuriesClosedBeech B95 · Rockwood, TNNTSB MIA72DLA24Accident · No injuriesClosedPiper PA-28 · High Springs, FLNTSB NYC72DHA28Accident · No injuriesClosedBeech B23 · Doylestown, PANTSB FTW72FPA11Accident · Serious injuriesClosedSchweizer TG-3A · Valley Mills, TXNTSB CHI72AC054Accident · 2 fatalClosedPiper PA-30 · Chesterfield, MONTSB MIA72FKJ36Accident · 1 fatalClosedCessna 172F · Oneonta, ALNTSB MIA72DKW11Accident · No injuriesClosedChampion 7ECA · Lafollette, TNNTSB MIA72IM055Incident · No injuriesClosedBoeing 727 · Atlanta, GANTSB MIA72AM057Accident · Serious injuriesClosedBrittnorman BN-2 · Culebra, PRNTSB MKC72FCJ41Accident · Minor injuriesClosedPiper PA-28 · Lincoln, NENTSB SEA72FYC25Accident · No injuriesClosedCessna 150 · Forest Grove, ORNTSB MKC72FER34Accident · No injuriesClosedCessna 172E · Walker, MNNTSB ANC72DAG84Accident · No injuriesClosedCessna 120 · Hope, AKNTSB SEA72AS024Accident · Serious injuriesClosedBeech 65-B80 · Mccall, IDNTSB NYC72FNE20Accident · No injuriesClosedCessna 182L · Simsbury, CTNTSB NYC72AN082Accident · Serious injuriesClosedPiper PA-23 · Haledon, NJNTSB MIA72DKA08Accident · Minor injuriesClosedPiper PA-28 · Mayaguez, PRNTSB NYC72AN080Accident · 4 fatalClosedBeech 95-C55 · Charlotte, NCNTSB MKC72FCJ40Accident · Minor injuriesClosedPiper PA-28R · Scribner, NENTSB FTW72AF036Accident · 1 fatalClosedCessna 310 · San Antonio, TXNTSB MIA72AM052Accident · 1 fatalClosedSchweizer SGS233 · Williamson, GANTSB CHI72AC051Accident · 2 fatalClosedCessna 320D · Springfield, ILNTSB NYC72AN077Accident · 1 fatalClosedCessna 172 · Buckhannon, WVNTSB FTW72AF034Accident · 1 fatalClosedPiper PA-28 · Piedmont, OKNTSB CHI72FEP24Accident · No injuriesClosedMitsubishi MU2B20 · East Troy, WINTSB CHI72FEE48Accident · No injuriesClosedNavion B · Harvard, ILNTSB NYC72FHM23Accident · Serious injuriesClosedAero Comdr 500S · Morristown, NJNTSB NYC72FHM22Accident · No injuriesClosedCessna 150 · Linden, NJNTSB MIA72FLA25Accident · No injuriesClosedCessna 337A · Mcintosh, FLNTSB FTW72FRA23Incident · No injuriesClosedLockheed 1329 · Houston, TXNTSB MKC72FER31Accident · No injuriesClosedCessna 421 · Crystal, MNNTSB MKC72FCA18Accident · Serious injuriesClosedPiper PA-30 · Scott City, MONTSB LAX72DUG38Accident · No injuriesClosedCessna 150 · Chino, CANTSB FTW72AF031Accident · 3 fatalClosedAero Comdr 680T · New Orleans, LANTSB CHI72FEP23Accident · Minor injuriesClosedPiper PA-32 · Waukesha, WINTSB OAK72AP017Accident · 1 fatalClosedTaylorcraft DC-65 · Mariposa, CANTSB NYC72AN074Accident · 2 fatalClosedCessna 206 · Raleigh, NCNTSB FTW72FRG38Accident · Serious injuriesClosedTed Smith 600 · Victoria, TXNTSB MKC72FER29Accident · Minor injuriesClosedCessna 182M · Belview, MNNTSB NYC72FID17Accident · Minor injuriesClosedBeech H18 · Charlottsville, VANTSB NYC72FLJ18Accident · 1 fatalClosedPiper PA-28 · Angier, NCNTSB OAK72DVD30Accident · No injuriesClosedCessna 337 · Hayward, CANTSB CHI72FEA23Accident · Minor injuriesClosedCessna 150 · Pittsboro, INNTSB NYC72FHD23Accident · No injuriesClosedCessna 177 · Sewell, NJNTSB MKC72FTK11Accident · Serious injuriesClosedBeech S35 · Pierre, SDNTSB MKC72FCA17Accident · No injuriesClosedCessna 172K · Fenton, MONTSB MKC72AK030Accident · 4 fatalClosedBeech E35 · Garden City, KS