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 LAX73DUJ01Accident · Minor injuriesClosedCorbin Baby ACE · Stanfield, AZNTSB NYC73FNE02Accident · Minor injuriesClosedPiper PA-28 · Fitchburg, MANTSB NYC73DNA05Accident · No injuriesClosedCessna 150J · Groton, MANTSB LAX74FUJ03Accident · 2 fatalClosedCessna 172A · Indian Wlls, AZNTSB NYC73DIA02Accident · No injuriesClosedStearman A75N1 · Warrenton, VANTSB MIA73AM001Accident · 2 fatalClosedMidamerican 172 · Vidalia, GANTSB FTW73FRG01Accident · Serious injuriesClosedSnow S2A · Bishop, TXNTSB CHI73FEI02Accident · Minor injuriesClosedCessna 177 · Wakeman, OHNTSB SEA72FYE37Accident · Serious injuriesClosedCessna 150H · Alderwd Manr, WANTSB LAX72DUJ11Accident · Minor injuriesClosedPiper PA-28 · Nogales, MexicoNTSB LAX72AL064Accident · 2 fatalClosedTaylorcraft DCO-65 · Sta.Susana, CANTSB LAX72AL063Accident · 4 fatalClosedBeech B23 · Burbank, CANTSB NYC72IN164Incident · No injuriesClosedDouglas DC-3C · Rochester, NYNTSB NYC72FNC45Accident · No injuriesClosedDehavilland DHC-2 · W.Lebanon, NHNTSB MKC72DER69Accident · Minor injuriesClosedBensen-Ayer B8MJ · Huntington, MNNTSB CHI72FEP50Accident · Serious injuriesClosedBensen B8M · Waterford, WINTSB CHI72FEM78Accident · No injuriesClosedTaylorcraft BC-12D · Sidnaw, MINTSB OAK72DVD79Accident · No injuriesClosedCessna A188 · Rio Vista, CANTSB OAK72FXO37Accident · No injuriesClosedLake LA-4 · Homewood, CANTSB MIA72DKT86Accident · No injuriesClosedCessna 170B · Del Ray Beach, FLNTSB MIA72DKH19Accident · No injuriesClosedAero Comdr A-9B · Donalsonville, GANTSB LAX73DUG06Accident · No injuriesClosedCessna 182H · Mexicali, MexicoNTSB DEN72FTE78Accident · Minor injuriesClosedCessna 150 · Aurora, CONTSB OAK72FJA18Accident · Serious injuriesClosedCessna 172L · Ford Islnd, HINTSB MIA72FKH18Accident · Minor injuriesClosedPiper PA-25 · Ocilla, GANTSB CHI72DEM79Accident · No injuriesClosedPiper PA-24 · Channing, MINTSB ANC72FAG17Accident · No injuriesClosedPiper PA-18 · Anchorage, AKNTSB NYC72FNC53Accident · Serious injuriesClosedCessna 170B · Greenville, MENTSB MIA72DLD76Accident · No injuriesClosedMid-America 172 · Kenansville, FLNTSB FTW72DQG45Accident · No injuriesClosedPiper PA-25 · Tahoka, TXNTSB FTW72DRD35Accident · Minor injuriesClosedBoeing A75N1 · Elton, LANTSB CHI72FEE89Accident · Minor injuriesClosedMooney M20C · Lansing, ILNTSB DEN72FQA44Accident · Serious injuriesClosedBeech 95 · Albuquerque, NMNTSB MKC72DCG67Accident · No injuriesClosedTaylorcraft DC-65 · Sedalia, MONTSB FTW72FPM33Accident · No injuriesClosedBoeing A75 · Blocker, OKNTSB FTW72FFD46Accident · Serious injuriesClosedGlobe GC-1B · Weatherford, TXNTSB FTW72FPJ41Accident · Minor injuriesClosedPiper PA-28R · Lindsay, OKNTSB FTW72DPJ42Accident · No injuriesClosedBoeing E75N1 · Lookeba, OKNTSB MKC72DCQ62Accident · No injuriesClosedBeech 23 · Riley, KSNTSB LAX72DUK11Accident · Minor injuriesClosedBeech 35 · San Carlos, MexicoNTSB DEN72FTE77Accident · No injuriesClosedCessna 310K · Denver, CONTSB CHI72FEG40Accident · 1 fatalClosedMustang MM1 · W.Carrollton, OHNTSB DEN72FQD28Accident · No injuriesClosedCessna 172L · Deming, NMNTSB FTW72DRG96Accident · No injuriesClosedCessna 188B · Lasara, TXNTSB DEN72DTC27Accident · No injuriesClosedPiper PA-18 · Clark, WYNTSB CHI72FER04Accident · Minor injuriesClosedPiper J3C · Menomonie, WINTSB OAK72FVD52Accident · Serious injuriesClosedBlanik L-13 · Fremont, CANTSB OAK72DVG71Accident · Minor injuriesClosedStitz SA-6B · Chico, CANTSB NYC72DGM49Accident · No injuriesClosedPiper PA-22 · Sugar Grove, PANTSB MIA72FKQ35Accident · Serious injuriesClosedAero Comdr 560-A · Greenwood, MS