NTSB investigations
2,085 cases where the phase of flight was Standing.
Cases, newest first
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 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 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 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, CANTSB OAK73DVG39Accident · No injuriesClosedCessna 172H · Nut Tree, CANTSB NYC73FHM19Accident · Serious injuriesClosedPiper PA-24 · Spring Valley, NYNTSB FTW73DQG26Accident · Serious injuriesClosedPiper PA-22 · Amarillo, TXNTSB FTW73DRG32Accident · No injuriesClosedHughes 269A · Uvalde, TXNTSB NYC73AN077Accident · 1 fatalClosedCessna 210 · Greensboro, NCNTSB ANC73DAA15Accident · No injuriesClosedPiper PA-16 · Granite Mt, AKNTSB NYC73DFA20Accident · No injuriesClosedCessna 206 · Rouse Point, NYNTSB OAK73FVA23Accident · No injuriesClosedAmer Avco AA-1A · Fresno, CANTSB ANC73AAO26Accident · No injuriesClosedVolpar BE8-T · Anchorage, AKNTSB CHI73FEK08Accident · No injuriesClosedHughes 269C · Grove City, OHNTSB OAK73FVD14Accident · 1 fatalClosedHiller Acft UH-12C · Brentwood, CANTSB MKC73AK020Accident · 1 fatalClosedAmer Avco AA-1A · Waterloo, IANTSB CHI73AC028Accident · No injuriesClosedCessna 310N · Grand Rapids, MINTSB MIA73DLA14Accident · Serious injuriesClosedPiper PA-32 · Panama City, FLNTSB NYC73AN049Accident · No injuriesClosedCessna 337 · Laconia, NHNTSB SEA73DYE11Accident · Serious injuriesClosedAeronca 11AC · Edmonds, WANTSB CHI73FEA05Accident · Serious injuriesClosedRyan ST-3KR · Shelbyville, INNTSB ANC73AA013Accident · Serious injuriesClosedBrantly B-2B · Wales, AKNTSB FTW73FRJ11Accident · No injuriesClosedCessna 150 · Natchitoches, LANTSB OAK73DVM05Accident · Minor injuriesClosedBell 206B · Salinas, CANTSB MIA73DLG09Accident · No injuriesClosedCessna 150G · Charleston, SCNTSB FTW73DQG09Accident · No injuriesClosedMooney M20C · Spearman, TXNTSB MKC72IK065Incident · No injuriesClosedBoeing 727 · St.Louis, MONTSB MKC72DCQ60Accident · Serious injuriesClosedCessna 150 · Phillipsburg, KSNTSB NYC72AN150Accident · Serious injuriesClosedBoeing 727 · Flushing, NYNTSB NYC72IN149Incident · Minor injuriesClosedBoeing 737 · Pittsburgh, PANTSB SEA72AS053Accident · 1 fatalClosedHiller Acft FH1100 · Tacoma, WANTSB NYC72DGM50Accident · Serious injuriesClosedHiller Acft FH1100 · Jefferson, PANTSB OAK72DVD49Accident · No injuriesClosedHughes 300C · Oakland, CANTSB NYC72IN144IncidentClosedBoeing 707 · Jamaica, NYNTSB ANC72AA046Accident · No injuriesClosedHiller UH-12E · Ketchikan, AKNTSB MIA72AM121Accident · No injuriesClosedDouglas DC-9 · Atlanta, GANTSB FTW72FRD26Accident · 1 fatalClosedHughes 369 · Harahan, LANTSB MIA72FKT74Accident · No injuriesClosedTed Smith 601 · Ft.Lauderdale, FLNTSB CHI72FEC35Accident · No injuriesClosedBeech D18S · Romulus, MINTSB MKC72FCD63Accident · Minor injuriesClosedBell 47G-2 · Fremont, IANTSB OAK72DVG39Accident · No injuriesClosedBeech D18S · Sacramento, CANTSB CHI72DEP34Accident · No injuriesClosedCessna 172G · Burlington, WI