claritystorm/ntsb-aviation-accidents
NTSB Aviation Records 2008–August 2026 1,000-row public sample; full dated six-table snapshot: $79 once. 31,124 NTSB events across six verified tables, with preserved source fields, validated joins and separately typed dates, injury counts and decimal coordinates. Rebuilt from the official September 1, 2026 avall.zip revision retrieved September 19, 2026. Actual event coverage is 2008-01-01 through 2026-08-27. The sample is the first 1,000 events ordered by ev_id. It is… See the full description on the dataset page: https://huggingface.co/datasets/claritystorm/ntsb-aviation-accidents.
NTSB Aviation Records 2008–August 2026
1,000-row public sample; full dated six-table snapshot: $79 once.
31,124 NTSB events across six verified tables, with preserved source fields, validated joins and separately typed dates, injury counts and decimal coordinates.
Rebuilt from the official September 1, 2026 avall.zip revision retrieved September 19, 2026. Actual event coverage is 2008-01-01 through 2026-08-27.
The sample is the first 1,000 events ordered by ev_id. It is deterministic and biased toward earlier records, not a representative time sample. Full files are CSV and Parquet.
Limitations
- Dated September 2026 source snapshot: 28,790 accidents and 2,334 incidents from 2008-01-01 through 2026-08-27. The year 2026 is partial. Pre-2008 history and other NTSB tables, including occurrences, are not included. Future updates are not included.
- Join aircraft to events on evid; join engines, crew, findings and narratives to aircraft on both evid and aircraft_key. Joining multiple child tables directly can multiply records. All delivered keys are unique and all scoped parent relationships pass.
- Use latitudedecimal and longitudedecimal only with coordinatestatus=boundsvalid: 27,731 pairs pass bounds, 3,374 are missing and 19 are invalid. Raw latitude/longitude are legacy coordinate text, not decimal degrees. Numeric bounds do not establish geographic accuracy or datum.
- All source fields now remain text, preserving blanks, casing and identifiers. This is a breaking schema change. Use eventdate, eventyear and the separately typed injury counts for analysis; source_row is a position within this pinned export, not a stable cross-release ID.
- There are 3,132 events without narrative rows and 6,775 without findings rows. Preliminary records and findings can change; this six-table package does not establish final investigation status. For newer findings, cminpc supersedes the deprecated causefactor field.
- No flight/hour exposure denominators or validated risk scores are included. Event counts and fatal-event shares are not accident rates per flight or causal measures. Government source correctness and investigation completeness are not independently certified.
Package tables
Read the sample
import pandas as pd
df = pd.read_csv("sample_1000.csv", dtype=str, keep_default_na=False)
points = df.loc[df.coordinate_status.eq("bounds_valid"), ["ev_id", "latitude_decimal", "longitude_decimal"]].copy()
points[["latitude_decimal", "longitude_decimal"]] = points[["latitude_decimal", "longitude_decimal"]].astype(float)
print(points.head())The full archive includes README, schema, field mapping, source/export hashes, QA, repair policy, agency release/schema documentation and the source data dictionary. Source strings remain text; typed analysis fields have separate names.
Future updates are not included. Annual and bundle purchases remain paused. Prior customer access is preserved.
