NTSB investigations, 1970
52 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\") = 1970
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") = 1970
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 DCA71IZ003Incident · No injuriesClosedBoeing 737 · Washington, DCNTSB MKC71DCD47Accident · Serious injuriesClosedCessna 182J · Mason City, IANTSB MIA71AM045Accident · No injuriesClosedMartin 404 · Atlanta, GANTSB OAK71DJA06Accident · Serious injuriesClosedThurston TSC1A · Honolulu, HINTSB MKC71DCJ29Accident · No injuriesClosedErcoupe 415-E · Harvard, NENTSB MIA71IM051Incident · No injuriesClosedBoeing 747 · Miami, FLNTSB IAD71FID14Accident · 1 fatalClosedCessna 182 · Crewe, VANTSB LAX71DVA39Accident · Serious injuriesClosedCessna 185 · Taft, CANTSB CHI71DGA11Accident · Serious injuriesClosedBeech 35 · Harrison, OHNTSB NYC71DHD27Accident · No injuriesClosedPiper PA-28 · Medford, NJNTSB MIA71FLG11Accident · Minor injuriesClosedPiper PA-32 · Newberry, SCNTSB NYC71DHD24Accident · Serious injuriesClosedPiper J3C-65 · Bristol, PANTSB NYC71IN039Incident · No injuriesClosedBoeing 747 · Jamaica, NYNTSB ANC71DAG33Accident · Serious injuriesClosedCessna 180 · Iliamna, AKNTSB LAX71DUJ33Accident · No injuriesClosedTaylorcraft BC-65 · Dateland, AZNTSB SEA71AS012Accident · No injuriesClosedLuscombe 8A · Bremerton, WANTSB DEN71DXT06Accident · No injuriesClosedPiper PA-22 · Salt Lake Cty, UTNTSB IAD71FIA09Accident · No injuriesClosedCessna 172 · Herndon, VANTSB FTW71FPD10Accident · Serious injuriesClosedPiper PA-22 · Mineral Wells, TXNTSB NYC71IN017Incident · No injuriesClosedDouglas DC-8 · Jamaica, NYNTSB IAD71FIA02Accident · Minor injuriesClosedCessna 150 · Washington, DCNTSB LAX71FUA05Accident · No injuriesClosedCessna 172 · Santa Ana, CANTSB MIA71DKG65Accident · No injuriesClosedCessna 150 · Atlanta, GANTSB CHI71FGG06Accident · No injuriesClosedPiper PA-12 · New Lexingtn, OHNTSB MKC71FDM07Accident · No injuriesClosedBeech D18S · St.Paul, MNNTSB DEN70AD058Accident · No injuriesClosedHiller Acft FH1100 · White Rock, NMNTSB MIA70DLD30Accident · No injuriesClosedLockheed 10E · Tampa, FLNTSB NYC70AN125Accident · No injuriesClosedBoeing 727 · Newark, NJNTSB CHI70IC073IncidentClosedBoeing 707 · Indianapolis, INNTSB IAD70DIG13Accident · No injuriesClosedEnstrom F-28A · Silver Springs, MDNTSB ANC70AA069Accident · No injuriesClosedHiller Acft FH1100 · Prudhoe Bay, AKNTSB MIA70DLD15Accident · No injuriesClosedBeech B95 · Orlando, FLNTSB IAD70II056Incident · No injuriesClosedNihon YS-11A · Roanoke, VANTSB CHI70FGD13Accident · Minor injuriesClosedCessna U206C · Cleveland, OHNTSB MIA70AM077Incident · No injuriesClosedBoeing 727 · Miami, FLNTSB MIA70FKG21Accident · No injuriesClosedCessna 172 · Atlanta, GANTSB MIA70FKA05Accident · No injuriesClosedHiller Acft FH1100 · San Juan, PRNTSB FTW70DRG24Accident · Serious injuriesClosedCessna 172 · San Benito, TXNTSB CHI70DGG12Accident · No injuriesClosedAero Comdr 680W · Van Wert, OHNTSB MKC70DCD22Accident · Serious injuriesClosedCessna 182F · Davenport, IANTSB NYC70AN096Accident · No injuriesClosedDehavilland DHC-6 · Windsor Lock, CTNTSB NYC70AN095Accident · No injuriesClosedSikorsky S-61L · Flushing, NYNTSB CHI70AC059Accident · Serious injuriesClosedBoeing 720 · Chicago, ILNTSB CHI70AC071Accident · Serious injuriesClosedBritish AC 1-11 · Cleveland, OHNTSB LAX70FUA13Accident · No injuriesClosedCessna 150 · Long Beach, CANTSB OAK70FJA03Accident · No injuriesClosedHiller Acft FH1100 · Waimea, HINTSB NYC70FHD04Accident · No injuriesClosedCessna 150 · Philadelphia, PANTSB CHI70DBJ09Accident · No injuriesClosedCessna 172 · Marshall, MINTSB ANC70AA060Accident · No injuriesClosedCessna 180F · Tok, AKNTSB CHI70AC045Accident · No injuriesClosedBeech 95-C55 · Columbus, OH