NTSB investigations
20,559 cases where the phase of flight was Initial climb.
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 = 350)
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 = 350)
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 NYC73FIG16Accident · Serious injuriesClosedCessna 182 · Williamsport, MDNTSB NYC73DKM10Accident · Minor injuriesClosedPiper PA-28 · Murphy, NCNTSB MIA73FKG35Accident · No injuriesClosedPiper PA-24 · Augusta, GANTSB ANC73DAG39Accident · Minor injuriesClosedTaylorcraft BC12-D · Chugiak, AKNTSB NYC73FID08Accident · Minor injuriesClosedCallair A-9 · Melfa, VANTSB NYC73FGM08Accident · No injuriesClosedCessna 172K · Jeannette, PANTSB FTW73FRD06Accident · No injuriesClosedCessna 150E · Chalamette, LANTSB ANC73DAG51Accident · No injuriesClosedPiper PA-18S · Glenallen, AKNTSB NYC73DNC25Accident · Minor injuriesClosedCessna 185C · Skinner, MENTSB MKC73DCQ14Accident · No injuriesClosedBellanca 14193A · Edna, KSNTSB MIA73FKJ22Accident · Serious injuriesClosedPiper PA-22 · Ashland, ALNTSB CHI73FEA12Accident · Minor injuriesClosedCessna A188 · Ellettsville, INNTSB UNK72X0116Accident · 1 fatalClosedLockheed 18 · Clarendon, JamaicaNTSB CHI73FEV11Accident · No injuriesClosedPiper PA-24 · Jacksonville, ILNTSB DEN73FTE26Accident · Minor injuriesClosedPiper PA-28 · Littleton, CONTSB CHI73FEA14Accident · No injuriesClosedCessna 182 · Tipton, INNTSB ANC73FAG52Accident · Serious injuriesClosedStinson 108-2 · Anchorage, AKNTSB FTW73FRJ13Accident · No injuriesClosedCessna 172L · Garrison, TXNTSB DEN73FTE24Accident · No injuriesClosedCessna 182 · Englewood, CONTSB MKC73AK021Accident · 4 fatalClosedPiper PA-22 · Princeton, MNNTSB LAX73DUJ19Accident · No injuriesClosedPiper PA-25 · Poston, AZNTSB ANC73DAG39Accident · No injuriesClosedPiper PA-18 · Glenallen, AKNTSB NYC73FHA05Accident · No injuriesClosedCessna 140 · Montgmeryville, PANTSB MIA73AM025Accident · 3 fatalClosedCessna 182M · Keystone Hgts, FLNTSB LAX73DUJ28Accident · Minor injuriesClosedCessna 182 · Sn Frn Bajaca, MexicoNTSB CHI73FEP29Accident · No injuriesClosedCessna 177 · Sullivan, WINTSB CHI73DEP19Accident · No injuriesClosedPiper PA-28 · Endeavor, WINTSB SEA73FYE12Accident · Serious injuriesClosedHugo R & K Spcl · Puyallup, WANTSB FTW73DQD07Accident · No injuriesClosedPiper PA-25 · Balmorhea, TXNTSB FTW73DPG17Accident · No injuriesClosedAmer Avco AA1-A · Caraway, ARNTSB CHI73DLQ13Accident · No injuriesClosedCessna 150 · Danville, KYNTSB ANC73FAG31Accident · No injuriesClosedPiper PA-24 · Chignik Lagn, AKNTSB NYC73FIA05Accident · No injuriesClosedFairchild PT-23 · Warrenton, VANTSB MIA73FKW06Accident · Minor injuriesClosedCessna 172 · Morristown, TNNTSB ANC73DAG35Accident · No injuriesClosedPiper PA-18 · Port Alswrth, AKNTSB CHI73FEA09Accident · Minor injuriesClosedPiper PA-28 · Danville, INNTSB LAX73FUJ21Accident · No injuriesClosedTaylorcraft BC12-D · Yuma, AZNTSB ANC73DAG17Accident · No injuriesClosedCessna 180 · Nondalton, AKNTSB NYC73FFJ05Accident · Minor injuriesClosedPiper PA-28 · Weedsport, NYNTSB NYC73DID07Accident · No injuriesClosedPiper PA-28 · Chesapeake, VANTSB NYC73AN038Accident · No injuriesClosedCessna 182A · Thomaston, MENTSB CHI73DIQ15Accident · Serious injuriesClosedCessna 150 · Lyonsville, KYNTSB CHI73DEI10Accident · No injuriesClosedCessna 177 · Strongsville, OHNTSB ANC73DAG15Accident · Minor injuriesClosedPiper PA-18 · Tyonek, AKNTSB MIA73FKJ15Accident · No injuriesClosedMitsubishi MU-2B · Montgomery, ALNTSB MIA73DKG31Accident · No injuriesClosedMooney M20 · Stone Mountain, GANTSB CHI73ACO24Accident · 3 fatalClosedMooney M20B · Lansing, MINTSB CHI73FEV08Accident · No injuriesClosedPiper PA-25 · Browns, ILNTSB CHI73FEA06Accident · No injuriesClosedPiper PA-32 · Kokomo, INNTSB DEN73FQA15Accident · Serious injuriesClosedPiper PA-17 · Gallup, NM