NTSB defining event · CICTT: Fire
CICTT occurrence categories (PDF)CICTT phases of flight (PDF)
- Defining event in
- 0 cases
- In the sequence of
- 47 cases
- Fatal cases
- 0
- NTSB code
- 180
NTSB has coded findings and defining events since 2008. Earlier cases used its older occurrence and cause codes, so they aren’t counted here.
Cases per year
In green, cases where it was the defining event; in gray, cases where it came elsewhere in the sequence. Events are coded with the final report, so the latest years are incomplete.
| 2008 | 3 |
|---|---|
| 2009 | 5 |
| 2010 | 1 |
| 2011 | 1 |
| 2012 | 2 |
| 2013 | 7 |
| 2014 | 4 |
| 2015 | 3 |
| 2016 | 4 |
| 2017 | 1 |
| 2018 | 4 |
| 2019 | 1 |
| 2020 | 1 |
| 2021 | 1 |
| 2022 | 1 |
| 2023 | 3 |
| 2024 | 2 |
| 2025 | 2 |
| 2026 | 1 |
Query with SQL
duckdb -csv -c "SELECT year(c.\"eventDate\") AS year, count(DISTINCT e.case_mkey) AS cases,
count(DISTINCT e.case_mkey) FILTER (WHERE e.\"isDefiningEvent\") AS defining
FROM 'https://openairdocs.org/data/latest/ntsb_events.parquet' e JOIN 'https://openairdocs.org/data/latest/ntsb_case_detail.parquet' c ON c.\"mKey\" = e.case_mkey
WHERE e.\"tier2Number\" = '180' AND e.case_mkey IN (SELECT case_mkey FROM 'https://openairdocs.org/data/latest/ntsb_events.parquet' WHERE \"isDefiningEvent\")
GROUP BY 1
ORDER BY 1"Prints the counts as CSV. It reads the release’s Parquet files over HTTPS, so there’s nothing to download first. Install DuckDB to run it.
SELECT year(c."eventDate") AS year, count(DISTINCT e.case_mkey) AS cases, count(DISTINCT e.case_mkey) FILTER (WHERE e."isDefiningEvent") AS defining FROM 'https://openairdocs.org/data/latest/ntsb_events.parquet' e JOIN 'https://openairdocs.org/data/latest/ntsb_case_detail.parquet' c ON c."mKey" = e.case_mkey WHERE e."tier2Number" = '180' AND e.case_mkey IN (SELECT case_mkey FROM 'https://openairdocs.org/data/latest/ntsb_events.parquet' WHERE "isDefiningEvent") GROUP BY 1 ORDER BY 1
Run 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.
In these cases
Query with SQL
duckdb -csv -c "WITH defining AS (SELECT * FROM 'https://openairdocs.org/data/latest/ntsb_events.parquet' WHERE \"tier2Number\" = '180' AND \"isDefiningEvent\")
SELECT * FROM (
SELECT 'Phase of flight' AS kind, e.\"tier1Number\" AS code, max(e.\"eventTier1Name\") AS name, count(DISTINCT e.case_mkey) AS cases
FROM defining e
GROUP BY ALL
UNION ALL
SELECT 'Finding in the probable cause', left(f.\"findingCode\", 8), max(f.\"tier4Name\"), count(DISTINCT f.case_mkey)
FROM defining e JOIN 'https://openairdocs.org/data/latest/ntsb_findings.parquet' f ON f.case_mkey = e.case_mkey AND f.aircrafts_position = e.aircrafts_position AND f.\"inProbableCause\"
WHERE f.\"findingCode\" GLOB '[0-9][0-9]*'
GROUP BY ALL
UNION ALL
SELECT 'Aircraft model', a.aircraft_model_code, any_value(concat_ws(' ', m.manufacturer, m.model)), count(DISTINCT e.case_mkey)
FROM defining e JOIN 'https://openairdocs.org/data/latest/ntsb_aircrafts.parquet' a ON a.case_mkey = e.case_mkey AND a.position = e.aircrafts_position
LEFT JOIN 'https://openairdocs.org/data/latest/faa_aircraft_model.parquet' m ON m.code = a.aircraft_model_code
WHERE a.aircraft_model_code IS NOT NULL
GROUP BY ALL
)
QUALIFY row_number() OVER (PARTITION BY kind ORDER BY cases DESC) <= 10
ORDER BY kind, cases DESC"Prints the counts as CSV. It reads the release’s Parquet files over HTTPS, so there’s nothing to download first. Install DuckDB to run it.
WITH defining AS (SELECT * FROM 'https://openairdocs.org/data/latest/ntsb_events.parquet' WHERE "tier2Number" = '180' AND "isDefiningEvent")
SELECT * FROM (
SELECT 'Phase of flight' AS kind, e."tier1Number" AS code, max(e."eventTier1Name") AS name, count(DISTINCT e.case_mkey) AS cases
FROM defining e
GROUP BY ALL
UNION ALL
SELECT 'Finding in the probable cause', left(f."findingCode", 8), max(f."tier4Name"), count(DISTINCT f.case_mkey)
FROM defining e JOIN 'https://openairdocs.org/data/latest/ntsb_findings.parquet' f ON f.case_mkey = e.case_mkey AND f.aircrafts_position = e.aircrafts_position AND f."inProbableCause"
WHERE f."findingCode" GLOB '[0-9][0-9]*'
GROUP BY ALL
UNION ALL
SELECT 'Aircraft model', a.aircraft_model_code, any_value(concat_ws(' ', m.manufacturer, m.model)), count(DISTINCT e.case_mkey)
FROM defining e JOIN 'https://openairdocs.org/data/latest/ntsb_aircrafts.parquet' a ON a.case_mkey = e.case_mkey AND a.position = e.aircrafts_position
LEFT JOIN 'https://openairdocs.org/data/latest/faa_aircraft_model.parquet' m ON m.code = a.aircraft_model_code
WHERE a.aircraft_model_code IS NOT NULL
GROUP BY ALL
)
QUALIFY row_number() OVER (PARTITION BY kind ORDER BY cases DESC) <= 10
ORDER BY kind, cases 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.
Newest cases · 0
Query with SQL
duckdb -csv -c "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 e.case_mkey FROM 'https://openairdocs.org/data/latest/ntsb_events.parquet' e WHERE e.\"isDefiningEvent\" AND e.\"tier2Number\" = '180') 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.
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 e.case_mkey FROM 'https://openairdocs.org/data/latest/ntsb_events.parquet' e WHERE e."isDefiningEvent" AND e."tier2Number" = '180') ORDER BY c."eventDate" DESC, c."ntsbNumber" DESC
Run 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.