PulsCar analysis of NHTSA public data, September 2026 "Car won't start": what 23,981 owner complaints, 26 recall campaigns and 2,214 manufacturer communications say License: CC BY 4.0. Credit "PulsCar analysis of NHTSA public data, September 2026" with a link to https://pulscar.io/blog/car-wont-start All queries were run on 18 September 2026. -------------------------------------------------------------------------- 1. SOURCE FILES -------------------------------------------------------------------------- All files are public and were downloaded from https://static.nhtsa.gov/odi/ in September 2026 and loaded into a local SQLite database. Complaints FLAT_CMPL (COMPLAINTS_RECEIVED_2015-2019, _2020-2024, _2025-2026). 777,040 vehicle complaints (one row per ODINO), received 1 January 2015 to 8 September 2026. Field dictionary: https://static.nhtsa.gov/odi/ffdd/cmpl/CMPL.txt Recalls FLAT_RCL. One row per make/model/model year per campaign; campaigns counted DISTINCT on the campaign number. Communications FLAT_TSBS. Manufacturer communications with NHTSA, 6 January 2015 to 12 September 2026; counted DISTINCT on the NHTSA ID. 187,827 distinct communications. https://static.nhtsa.gov/odi/ffdd/tsbs/TSBS.txt Investigations FLAT_INV. https://static.nhtsa.gov/odi/ffdd/inv/INV.txt CASE SENSITIVITY — READ THIS BEFORE REUSING THE QUERIES. NHTSA complaint narratives are stored in ALL CAPITALS for complaints received through 2020 and in mixed case from 2021 onward. Any uppercase Python regex without re.IGNORECASE, and any uppercase SQLite GLOB, silently drops most complaints filed after 2020 — roughly a third of this file. Every regex below was compiled with re.IGNORECASE; SQLite LIKE and FTS5 MATCH are both case-insensitive, and the full-text queries rely on that. -------------------------------------------------------------------------- 2. THE NO-START SET (23,981 complaints) -------------------------------------------------------------------------- Step 1 — full-text candidates (24,976). complaints_fts MATCH on the phrases "not start", "t start", "no start", "never start", "never starts", "not starting", "t starting", "fails to start", "failed to start", "failure to start", "refuses to start", "refused to start", "unable to start", "wont start", "non start", "not restart", "t restart", "would not fire", "will not fire", "not turn over", "not crank", "t crank". The "t start" / "t crank" / "t restart" phrases exist because the FTS5 tokenizer splits "won't" into the tokens "won" and "t", so "won't start", "doesn't start", "didn't start" and "can't start" are only reachable that way. Step 2 — keep a complaint only if the narrative states, in one clause, that the vehicle would not start. Case-insensitive Python regex: NEG = (will not|wo n't|won't|wouldn't|would not|doesn't|does not| didn't|did not|cannot|can't|couldn't|could not|never| refus\w+ to|fail\w* to|unable to|not) NEG [^.;!?]{0,25}? (start|starts|starting|started|restart|restarts| turn over|turns over|crank|cranks|cranking| fire up|fires up) OR the standalone forms \bno[ -]?(start|crank)\b, \bnon[ -]?start\b. 24,109 kept. Step 3 — drop motorcycles, scooters, ATVs and snowmobiles by make (Harley-Davidson, Husqvarna, Kawasaki, Ducati, KTM, Polaris, Yamaha, Suzuki motorcycles, Triumph, Aprilia, Arctic Cat, Can-Am/BRP, Indian, Vespa, Sea-Doo, Ski-Doo). 128 dropped. FINAL SET: 23,981. -------------------------------------------------------------------------- 3. THE THREE-WAY SPLIT — WHY IT MATTERS MORE THAN THE TOTAL -------------------------------------------------------------------------- "The car won't start" and "the car stalled on the highway and then would not restart" are different problems with different causes, and the raw no-start file mixes them. Each complaint was placed in exactly one group: auto stop/start did not restart 1,079 narrative contains any of auto idle, idle stop, stop/start, start/stop, eco stop, eco mode, "keyless start system problem". stalled, then would not restart 7,327 a stall word (stall*, shut off, shut down, shuts off, cut off, cut out, died, die, dies, lost power, lost all power, loss of power, loss of motive power, loss of propulsion, turned off, quit, stopped running, ceased, engine fail*, catastrophic, seiz*, slowed to a crawl, coasted) with a driving word (driv*, in motion, highway, freeway, interstate, mph, traffic, on the road, intersection, red light, stop light, merging, exit ramp, coast*, pulled over, roadway, shoulder, off the road) inside a 140-character window on either side. hypothetical only 13 the only no-start mention is in a "risk of / could cause / may result in ... not start" clause. would not start on an attempt 15,562 everything else. THIS is the set the article's percentages are computed on. SAMPLE READING (attempt set). Thirty complaints were drawn at random (Python random.seed(70701)) and read in full. Twenty-five described a vehicle that would not start when the driver tried to start it. Five did not: three were stall-then-no-restart reports whose wording defeated the split ("the engine suffered sudden catastrophic internal failure ... and would not restart" with no stall word near a driving word), one was an auto-idle-stop report that also complained of a keyless-start fault, and one was a used-car complaint about an overheat with no no-start at all. FALSE-POSITIVE RATE 5 of 30, about 17%, and four of the five leak IN from the roadside group. So 15,562 is an UPPER bound on the attempt set and 7,327 is a LOWER bound on the roadside group; every contrast drawn between the two groups in the article is therefore conservative, not inflated. An earlier, looser version of the split (driving word required to be one of a short list of phrases such as "while driving" or "at NN mph") left 18,414 in the attempt group and read 6 false positives in 30, about 20%. It was discarded in favour of the proximity rule above. The first sample of 30 was drawn from the raw 23,981 before any split existed; every one of those 30 described a real no-start, which is what told us the problem was not the no-start filter but the mixing of two different symptoms inside it. -------------------------------------------------------------------------- 4. WHAT WAS COUNTED -------------------------------------------------------------------------- no-start-by-context.csv The four groups plus the whole-file baseline, with the structured TOWED, CRASH and FIRE flags, the number of usable mileage reports (MILES field, 0 < miles < 400,000) and the median. no-start-what-owners-name.csv Share of the 15,562 attempt narratives containing a case-insensitive regex for each part or system. The exact patterns are in the article's method note and in the script that produced this folder; the important ones: battery \bbatter(y|ies)\b relay/fuse/module relay, fuse(s), TIPM, body control module, BCM, wiring harness, harness, ground wire/strap/cable, control module, ECM, PCM, ECU key/immobilizer/lock immobili[sz]*, anti-theft, security light/system, key fob, transponder, steering (column) lock, smart key, intelligent key, keyless, push-button start, chip in the key starter \bstarter\b or \bsolenoid\b fuel pump fuel pump, fuel-pump, in-tank pump, fuel module, fuel sending terminals (corroded|loose|dirty) within 40 characters of terminal/post/cable/clamp, in either order THESE ARE MENTIONS, NOT CONFIRMED REPAIRS. A complaint can name three parts; the shares do not add to 100 and must not be read as a cause distribution. They describe the vocabulary of the file. The single most important caveat on this table: a no-start that the owner fixed for nothing — a jump, a tank of fuel, a cleaned terminal — almost never becomes a federal safety complaint. Corroded terminals appear in 0.29% of narratives, and that number is a fact about who files, not about how often terminals strand cars. no-start-by-make.csv and no-start-top-models.csv Counts, and for makes the rate per 10,000 of that make's own complaints in the same file, so the denominator is visible. "MERCEDES-BENZ" and "MERCEDES BENZ" are two spellings of one make in the flat file and were merged for both the numerator and the denominator; not merging them produced an apparent 714 per 10,000 for a 3,723-complaint fragment. These are NOT failure rates. NHTSA publishes no vehicles-on-the-road denominator, owners of some brands file more readily than others, and publicity about a recall is itself a reason to file: 33.61% of the attempt set already names a recall, a campaign number, a warranty extension or a class action. no-start-by-failure-month.csv Failure month from the FAILDATE field, for the attempt set and for all 777,040 complaints, as a share of each and as a ratio. Complaints with an empty or malformed FAILDATE are excluded from both columns. no-start-recall-campaigns.csv Every recall campaign in FLAT_RCL whose DEFECT or CONSEQUENCE text contains "not start", "no start", "no-start", "fail to start" or "failure to start" (SQLite LIKE, case-insensitive): 26 campaigns across 168 make/model/year rows, 1,946,115 potentially affected vehicles when each campaign is counted once at its largest reported population. Manufacturer communications (counted, not published as a CSV) tsbs_fts MATCH '"will not start" OR "does not start" OR "no start" OR "no-start" OR "fails to start" OR "failure to start" OR "hard start" OR "crank no start"' -> 2,214 distinct NHTSA IDs out of 187,827 (1.18%). 557 of the 2,214 (25.2%) also contain software, reprogram, calibration or flash. 676 mention a battery; 253 a key; 81 a starter; 76 a fuel pump; 51 a relay. -------------------------------------------------------------------------- 5. MEASUREMENTS WE TIGHTENED OR THREW AWAY -------------------------------------------------------------------------- "Nobody could find it." A first regex counted any "was not diagnosed" and returned 12.32%. That phrase is ODI boilerplate for an owner who never had the car diagnosed, not a shop that failed. The published figure requires a human subject (dealer, dealership, mechanic, shop, technician, service department, manufacturer, "they") within 60 characters of an inability verb (could not / unable to / cannot) and a finding verb (find, figure, determine, diagnose, duplicate, replicate, identify, reproduce, locate, pinpoint), or an explicit no-fault-found phrase. Result 954 of 15,562 (6.13%), against the same regex on all 777,040 complaints: 25,560 (3.29%). The sound map could not be measured. The article tells you to read the sound at the key, and that advice comes from service literature, not from this file: only 3.68% of the attempt narratives use any form of the word "click" at all, 1.25% describe a single click, and a phrase that clearly means rapid or repeated clicking appears in ELEVEN complaints out of 15,562. Owners write about outcomes, not about noises. No frequency ranking of sounds is published here, and none should be inferred from this data. -------------------------------------------------------------------------- 6. LIMITATIONS -------------------------------------------------------------------------- - Complaints are self-reported, unverified, and are not failure rates. - Regex features count words, not confirmed diagnoses. "Battery" in a narrative may be the fault, the part someone wrongly replaced, or the thing that tested fine. - The MILES field is blank or zero in a large minority of rows; mileage figures use only rows with 0 < miles < 400,000 and the n is printed beside every median. - A sibling article, "car cranks but won't start", counts 867 complaints. That set was built with a different, narrower construction (an explicit cranks-BUT-does-not-fire clause) over the whole 777,040-complaint file, not over the 15,562 attempt set here. The two counts measure different things and must not be compared or added.