IGNITION LOCKS, KEYS AND STEERING COLUMN LOCKS — HOW THESE FILES WERE BUILT PulsCar analysis of NHTSA public data, September 2026. License: CC BY 4.0. Attribution: "PulsCar analysis of NHTSA public data". SOURCE FILES - NHTSA ODI owner complaints flat file (https://static.nhtsa.gov/odi/ffdd/cmpl/CMPL.txt), loaded into SQLite. Rows received 1 January 2015 - 8 September 2026. 777,040 complaints in total. - NHTSA ODI recalls flat file (https://static.nhtsa.gov/odi/ffdd/rcl/RCL.txt). - NHTSA ODI manufacturer communications (TSB) flat file (https://static.nhtsa.gov/odi/ffdd/tsbs/TSBS.txt). - Part 573 Safety Recall Reports fetched from static.nhtsa.gov, and 49 CFR 571.114 (FMVSS 114) read at law.cornell.edu, all on 18 September 2026. THE COMPLAINT QUERY FTS5 match on the complaint narrative for any of: "ignition lock cylinder", "ignition cylinder", "key cylinder", "lock cylinder", "ignition switch", "steering column lock", "steering wheel lock", "steering lock", "electronic steering lock", "key will not turn", "key wont turn", "ignition will not turn", "will not turn in the ignition", "key is stuck in the ignition", "key stuck in ignition", "key would not turn", "turn the key", "insert the key" Rows were then kept only if the narrative also matched one of two confirming regexes: (a) a named part: ignition/key/lock cylinder, ignition switch, steering (column/wheel) lock; (b) a turn or stuck symptom: key will not / won't / would not / can't ... turn | rotate | come out | budge, ignition won't turn, or "key is/was/got stuck". -> CORPUS: 5,838 complaints (the whole ignition-lock family). -> TURN/STUCK SUBSET: 557 complaints that match regex (b) — the ones actually describing a key that would not turn or would not come out. This subset is the denominator for the split below. SAMPLE-READING RESULT (false-positive rate) 30 complaints were drawn at random from the 557 and read in full. 1 of 30 (3.3%) was off topic (a water leak complaint that mentioned turning the key in passing). The subset is clean because the confirming regex requires an explicit failure verb next to the key. The wider 5,838-row corpus is looser: it includes complaints where an ignition switch or lock cylinder is named as part of a different story (stalling, airbag non-deployment, theft). Treat the 5,838 figure as "complaints that mention this hardware", not "complaints about a key that won't turn". THE SPLIT (key-wont-turn-vs-wont-come-out.csv) Each of the 557 was classified by regex into: key_will_not_come_out — key stuck in the ignition, will not release, will not turn to OFF key_will_not_turn_to_start — key will not turn over / will not turn to start both — narrative describes both directions other — a turn/stuck phrase with no clear direction Result: 301 (54.0%) will not come out, 147 (26.4%) will not turn to start, 29 (5.2%) both, 80 (14.4%) other. Direction was taken from the owner's own wording; where an owner described a long history in one sentence the classifier can only pick the dominant phrasing. MILEAGE Odometer present on 394 of the 557 (71%). Rows with miles <= 0 or >= 400,000 dropped. Median 78,795 miles, quartiles 50,000 and 117,490. RECALL QUERY (ignition-recalls.csv) recalls WHERE the defect text contains ignition switch, ignition lock, lock cylinder, key interlock, steering column lock, ignition key, electronic steering lock or shift interlock. Campaigns counted DISTINCT: 955 make/model/year rows -> 76 distinct campaigns. Summing each campaign's manufacturer-filed "potentially affected" population once gives 24,682,072 vehicles. That sum is a sum of populations, not a count of unique vehicles: a single car can appear in more than one campaign, and the figure is the manufacturer's estimate of vehicles that may contain the defect, not of vehicles that did. BULLETIN QUERY (ignition-bulletins-by-make.csv) FTS5 match on manufacturer-communication summaries for the same part names plus "key will not turn" and "key stuck", de-duplicated by nhtsa_id, then filtered to summaries that actually name a cylinder, a steering lock module, or a key that is stuck, binding or will not turn. -> 253 distinct bulletins. LIMITATIONS YOU MUST CARRY WITH THE NUMBERS - NHTSA complaints are self-reported and unverified. They are not failure rates, and there is no denominator of vehicles on the road here. Nothing in these files supports a claim that one manufacturer's ignition locks are better or worse than another's, and no such claim is made. - This data cannot tell you how often a key that won't turn is a locked steering wheel. People do not file federal safety complaints about problems they solved in thirty seconds in a parking lot. The complaint file sees the cases that persisted, and it is silent about the ones that did not. Any percentage claiming to describe "all key-won't-turn events" is not obtainable from this source, and we do not publish one. - Complaint volume responds to recall publicity. The GM 2014 campaigns and the model names attached to them draw filings that a quieter model with the same hardware would not. ------------------------------------------------------------------------------ CASE SENSITIVITY — SECTION ADDED 19 SEPTEMBER 2026 ------------------------------------------------------------------------------ NHTSA stores complaint narratives in ALL CAPS for records filed through roughly 2020 and in mixed case for records filed from 2021 on. A case-SENSITIVE search of the narrative field loses about 92% of the complaints filed after 2020, so this is the single largest way an analysis of this database can go wrong while still looking finished. Every query behind this file is case-insensitive. SQLite's LIKE and its FTS5 full-text index both ignore case by default, and no query in this work uses GLOB or any case-sensitive comparison. This was not taken on trust. On 19 September 2026 every published folder was re-checked against the same database, comparing the figures here with what a case-sensitive query would have returned. The result: the complaint set published here (5,838) is LARGER than the absolute ceiling a case-sensitive search of the same terms could have returned (99 narratives). A case-sensitive query cannot produce a bigger set than itself, so the bug is ruled out for this folder by arithmetic, not by assurance.