NTSB investigations, 1973
34 cases where the phase of flight was Standing.
Cases per year
| 1962 | 2 |
|---|---|
| 1963 | 3 |
| 1964 | 113 |
| 1965 | 86 |
| 1966 | 63 |
| 1967 | 70 |
| 1968 | 36 |
| 1969 | 44 |
| 1970 | 52 |
| 1971 | 50 |
| 1972 | 54 |
| 1973 | 34 |
| 1974 | 56 |
| 1975 | 22 |
| 1976 | 32 |
| 1977 | 26 |
| 1978 | 37 |
| 1979 | 40 |
| 1980 | 29 |
| 1981 | 26 |
| 1982 | 31 |
| 1983 | 46 |
| 1984 | 35 |
| 1985 | 42 |
| 1986 | 40 |
| 1987 | 53 |
| 1988 | 41 |
| 1989 | 36 |
| 1990 | 25 |
| 1991 | 30 |
| 1992 | 24 |
| 1993 | 30 |
| 1994 | 35 |
| 1995 | 33 |
| 1996 | 23 |
| 1997 | 24 |
| 1998 | 28 |
| 1999 | 29 |
| 2000 | 27 |
| 2001 | 36 |
| 2002 | 25 |
| 2003 | 29 |
| 2004 | 24 |
| 2005 | 25 |
| 2006 | 38 |
| 2007 | 23 |
| 2008 | 21 |
| 2009 | 30 |
| 2010 | 26 |
| 2011 | 30 |
| 2012 | 27 |
| 2013 | 14 |
| 2014 | 22 |
| 2015 | 22 |
| 2016 | 33 |
| 2017 | 18 |
| 2018 | 16 |
| 2019 | 10 |
| 2020 | 12 |
| 2021 | 9 |
| 2022 | 16 |
| 2023 | 15 |
| 2024 | 18 |
| 2025 | 22 |
| 2026 | 16 |
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\") = 1973
AND c.\"mKey\" IN (SELECT case_mkey FROM case_phases WHERE main = 150)
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") = 1973
AND c."mKey" IN (SELECT case_mkey FROM case_phases WHERE main = 150)
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 FTW74FPM16Accident · No injuriesClosedCessna 150K · Sand Springs, OKNTSB CHI74AC066Accident · Serious injuriesClosedBoeing 727 · Detroit, MINTSB UNK74X0101Incident · 31 fatalClosedBoeing 707 · Rome, ItalyNTSB FTW74DRD21Accident · Serious injuriesClosedBell 47G-4A · Gulf Of Mexico (Gulf of Mexico)NTSB OAK74DVM14Accident · No injuriesClosedRyan PT-22 · Morgan Hill, CANTSB FTW74FRD19Accident · No injuriesClosedBell 212 · Ehib 370 Gulf Mex (Gulf of Mexico)NTSB LAX74DUG26Accident · No injuriesClosedCessna TU206C · Perris, CANTSB LAX74FUA13Accident · No injuriesClosedBeech B35 · Long Beach, CANTSB OAK73IP020Incident · No injuriesClosedSikorsky S-61N · Oakland, CANTSB CHI74DEG12Accident · Serious injuriesClosedBeech V35B · Vandalia, OHNTSB SEA74IS020Incident · Minor injuriesClosedDouglas DC-8 · Spokane, WANTSB ANC74AA036Accident · 1 fatalClosedPiper PA-18 · King Salmon, AKNTSB CHI74FEE23Accident · No injuriesClosedCessna 310J · West Chicago, ILNTSB MKC74DER15Accident · No injuriesClosedBellanca 17-30A · Lake Elmo, MNNTSB CHI74FEM20Accident · Serious injuriesClosedCessna 175 · Kalamazoo, MINTSB LAX74FUA06Accident · 1 fatalClosedCessna 310B · Torrance, CANTSB CHI74FEI07Accident · Serious injuriesClosedAmer Avco AA1-B · Painsville, OHNTSB LAX74FUD01Accident · No injuriesClosedPiper PA-28 · Snta Monica, CANTSB OAK74FVW02Accident · No injuriesClosedCessna 206 · Las Vegas, NVNTSB ANC74FAG02Accident · No injuriesClosedHiller Acft FH1100 · Anchorage, AKNTSB OAK73DVW23Accident · No injuriesClosedCessna 305A · Las Vegas, NVNTSB FTW73FRG89Accident · No injuriesClosedCessna 170 · New Braunfels, TXNTSB DEN73DQA42Accident · No injuriesClosedCessna 150F · Albuquerque, NMNTSB NYC73FHA73Accident · Minor injuriesClosedCessna 177B · Pottstown, PANTSB IAD73FKM32Accident · Serious injuriesClosedCessna 150 · Advance, NCNTSB DEN73AD044Accident · Serious injuriesClosedCessna U206 · Las Cruces, NMNTSB MKC73DCJ32Accident · No injuriesClosedCessna T-50 · Omaha, NENTSB OAK73DVD27Accident · Minor injuriesClosedSchweizer SGS233 · Fremont, CANTSB FTW73DPD27Accident · No injuriesClosedNavion A · Lake Dallas, TXNTSB MIA73AM092Accident · 1 fatalClosedCessna 177RG · Huntsville, ALNTSB DEN73FTE66Accident · Serious injuriesClosedPiper PA-32 · Aurora, CONTSB SEA73DYA19Accident · No injuriesClosedDehavilland DH114 · Hailey, IDNTSB SEA73FYE26Accident · Serious injuriesClosedCessna 172G · Bellevue, WANTSB OAK73FVA35Accident · No injuriesClosedPiper PA-25 · Corcoran, CA