NTSB investigations, 2012, WI
16 cases where the phase of flight was Landing.
Cases per year
| 1964 | 28 |
|---|---|
| 1965 | 28 |
| 1966 | 31 |
| 1967 | 44 |
| 1968 | 32 |
| 1969 | 32 |
| 1970 | 25 |
| 1971 | 22 |
| 1972 | 25 |
| 1973 | 31 |
| 1974 | 29 |
| 1975 | 17 |
| 1976 | 19 |
| 1977 | 19 |
| 1978 | 31 |
| 1979 | 26 |
| 1980 | 22 |
| 1981 | 30 |
| 1982 | 11 |
| 1983 | 13 |
| 1984 | 13 |
| 1985 | 23 |
| 1986 | 21 |
| 1987 | 11 |
| 1988 | 11 |
| 1989 | 13 |
| 1990 | 8 |
| 1991 | 11 |
| 1992 | 9 |
| 1993 | 12 |
| 1994 | 13 |
| 1995 | 7 |
| 1996 | 8 |
| 1997 | 10 |
| 1998 | 11 |
| 1999 | 13 |
| 2000 | 10 |
| 2001 | 6 |
| 2002 | 8 |
| 2003 | 11 |
| 2004 | 8 |
| 2005 | 15 |
| 2006 | 6 |
| 2007 | 14 |
| 2008 | 10 |
| 2009 | 8 |
| 2010 | 8 |
| 2011 | 5 |
| 2012 | 16 |
| 2013 | 3 |
| 2014 | 7 |
| 2015 | 10 |
| 2016 | 8 |
| 2017 | 8 |
| 2018 | 6 |
| 2019 | 5 |
| 2020 | 8 |
| 2021 | 8 |
| 2022 | 9 |
| 2023 | 9 |
| 2024 | 12 |
| 2025 | 17 |
| 2026 | 6 |
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\") = 2012
AND c.\"eventStateOrRegion\" = 'WI' AND c.\"eventCountry\" = 'USA'
AND c.\"mKey\" IN (SELECT case_mkey FROM case_phases WHERE main = 550)
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") = 2012
AND c."eventStateOrRegion" = 'WI' AND c."eventCountry" = 'USA'
AND c."mKey" IN (SELECT case_mkey FROM case_phases WHERE main = 550)
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 CEN13LA071Accident · Minor injuriesLimited investigationFinal reportScott Ironsides · East Troy, WIFailure of the steel weld fittings on the right main landing gear.NTSB CEN13LA023Accident · Minor injuriesLimited investigationFinal reportBeech B90 · Sturtevant, WIThe pilot's decision to continue the landing after touching down long and on a wet runway that reduced the airplane’s braking capability, which resulted in an overrun.NTSB CEN12CA596Accident · No injuriesData collectionFinal reportArvold Jordon R CH 750 · Colfax, WIThe pilot did not maintain control of the airplane while landing with a gusty crosswind.NTSB CEN12CA567Accident · No injuriesData collectionFinal reportFantasy Air Allegro 2000 · Bear Creek, WIA malfunction of the right brake for reasons that could not be determined because of the perishable evidence, which resulted in the pilot’s inability to maintain directional control of the airplane during landing.NTSB CEN12CA590Accident · No injuriesData collectionFinal reportCessna 180J · Wausau, WIThe pilot's loss of control during landing roll out, resulting in a runway excursion. Contributing to the accident was an unexpected crosswind wind gust.NTSB CEN12LA573Accident · No injuriesLimited investigationFinal reportRobinson Helicopter R44 II · Belgium, WIThe pilot’s failure to maintain control of the helicopter while landing in gusting wind conditions, which resulted in a hard landing.NTSB CEN12LA591Accident · Serious injuriesLimited investigationFinal reportArbc Inc DBA Lindstrand 180A · Prairie du Sac, WIThe pilot's loss of control of the balloon during a landing in higher-than-expected wind conditions, which resulted in a hard landing.NTSB CEN12CA510Accident · No injuriesData collectionFinal reportCessna 172S · Oshkosh, WIThe flight instructor’s loss of directional control during landing, which resulted in a collision with a runway light.NTSB CEN12LA507Accident · No injuriesLimited investigationFinal reportCessna 150M · Cottage Grove, WIThe pilot's decision to land on a runway with significant overgrown vegetation along the edges and his landing, which was left of the centerline.NTSB CEN12CA509Accident · No injuriesData collectionFinal reportCessna 182Q · Three Lakes, WIThe pilot's excessive touchdown speed, which resulted in a bounced landing. Contributing to the accident was the pilot's lack of recent experience in flying light airplanes.NTSB CEN12CA465Accident · Serious injuriesData collectionFinal reportMooney M20J · Oshkosh, WIThe pilot’s excessive airspeed at touchdown and his loss of control of the airplane during the landing roll.NTSB CEN12CA468Accident · No injuriesData collectionFinal reportPiper PA-11 · Neilsville, WIThe pilot did not maintain control of the airplane during an attempted aborted landing, which resulted in an inadvertent stall.NTSB CEN12CA409Accident · No injuriesData collectionFinal reportWilkinson Lorin L Hatz XB-II · Oshkosh, WIThe pilot's loss of directional control while landing with a crosswind.NTSB CEN12CA406Accident · No injuriesData collectionFinal reportPiper PA-24 · Watertown, WIThe pilot’s failure to extend the landing gear before landing.NTSB CEN12LA248Accident · Minor injuriesLimited investigationFinal reportAerostar International Raven S49A · Janesville, WIThe pilot’s failure to maintain clearance from the powerlines while landing.NTSB CEN12LA129Accident · Minor injuriesLimited investigationFinal reportAviat A-1C-180 · Chetek, WIThe passenger’s interference with the flight controls, which resulted in the airplane’s failure to climb after an aborted landing. Contributing was the pilot's failure to maintain directional control during landing roll, which resulted in the need to abort…