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 ANC76FAA49Accident · No injuriesClosedPiper PA-22 · Fairbanks, AKNTSB FTW76FRJ38Accident · Minor injuriesClosedBoeing E75N1 · Epps, LANTSB FTW76FPD53Accident · Serious injuriesClosedDehavilland DHC-2 · Mansfield, TXNTSB CHI76FEG20Accident · Minor injuriesClosedTaylorcraft BC-12D · Dayton, OHNTSB ANC76DAH44Accident · No injuriesClosedCessna 206 · Tahneth, AKNTSB OAK76FVG98Accident · Minor injuriesClosedPiccard AX-6 · Napa, CANTSB FTW76FPA30Accident · No injuriesClosedBeech S35 · Addison, TXNTSB NYC76AN118Accident · 1 fatalClosedCessna 195 · Newburg, PANTSB MKC76FCJ61Accident · No injuriesClosedPiper PA-25 · Holdrege, NENTSB MKC76DCJ59Accident · No injuriesClosedCessna 188B · Campbell, NENTSB FTW76FRD58Accident · Serious injuriesClosedHughes 369 · Intrcostl City, LANTSB MKC76FCQ69Accident · Minor injuriesClosedCessna T210J · Wichita, KSNTSB MKC76AK072Accident · 6 fatalClosedBeech 58 · Chillicothe, MONTSB ANC76DAH46Accident · No injuriesClosedCessna 150 · Cantwell, AKNTSB ANC76DAH45Accident · No injuriesClosedPiper PA-18 · Anchorage, AKNTSB SEA76DYA44Accident · No injuriesClosedAero Comdr 600S2R · Rexburg, IDNTSB NYC76FFJ28Accident · No injuriesClosedCessna 150M · Brockport, NYNTSB MKC76DCQ68Accident · No injuriesClosedCessna 150 · Flush, KSNTSB MIA76FLD75Accident · Serious injuriesClosedChampion 7ECA · New Smyrna Bch, FLNTSB FTW76DPG89Accident · No injuriesClosedGrumman G-164 · Gillett, ARNTSB MKC76FER85Accident · No injuriesClosedChampion 7ECA · Westbrook, MNNTSB MKC76FCJ57Accident · No injuriesClosedPiper PA-36 · Bertrand, NENTSB IAD76FLQ37Accident · 1 fatalClosedPitts S-1S · Owensboro, KYNTSB MKC76FCJ56Accident · No injuriesClosedPiper PA-36 · Imperial, NENTSB MIA76FLD74Accident · Serious injuriesClosedCessna 172H · Windermere, FLNTSB DEN76FTE85Accident · Minor injuriesClosedPiper PA-28 · Ft Collins, CONTSB OAK76FVH01Accident · No injuriesClosedPiper PA-28 · Chico, CANTSB NYC76DHD33Accident · Minor injuriesClosedPiper PA-25 · Ocean City, NJNTSB NYC76AN117Accident · No injuriesClosedBeech 65 · Bedford, MANTSB FTW76FRA53Accident · No injuriesClosedCessna 182G · Tomball, TXNTSB NYC76AN116Accident · 1 fatalClosedCessna U206F · Syosset, NYNTSB SEA76AS064Accident · 1 fatalClosedPiper PA-28 · Butte, MTNTSB MKC76FCG92Accident · No injuriesClosedPiper PA-24 · Joplin, MONTSB MKC76FCG91Accident · No injuriesClosedNavion G · Springfield, MONTSB CHI76FEE67Accident · No injuriesClosedPiper PA-28 · Schaumburg, ILNTSB SEA76FTI35Accident · No injuriesClosedBeech 95-55 · Ennis, MTNTSB OAK76DVA79Accident · No injuriesClosedBoeing A75 · Tulare, CANTSB NYC76AM114Accident · 2 fatalClosedCessna 150J · W Caldwell, NJNTSB IAD76AI086Accident · 3 fatalClosedTex Bullet 205 · Fredricksburg, VANTSB NYC76FNC59Accident · No injuriesClosedCessna 177RG · Clarendon, VTNTSB CHI76FEE66Accident · Minor injuriesClosedPiper PA-32 · Rockford, ILNTSB FTW76DRA51Accident · No injuriesClosedCessna 188 · Madisonville, TXNTSB CHI76FEP40Accident · No injuriesClosedCessna 180J · Rhinelander, WINTSB MIA76FKQ38Accident · Serious injuriesClosedCessna 188 · Louisville, MSNTSB MIA76DLD71Accident · No injuriesClosedCessna 150 · Arcadia, FLNTSB NYC76DNA44Accident · Minor injuriesClosedCessna 140 · Norfolk, MANTSB LAX76FUJ93Accident · No injuriesClosedErco 415-C · Bonita, AZNTSB NYC76DNC57Accident · No injuriesClosedPiper PA-25 · Middlebury, VTNTSB MKC76DTG24Accident · No injuriesClosedGrumman G-164A · Cavalier, NDNTSB CHI76DEV48Accident · No injuriesClosedCessna 172 · Buckner, IL