PULSCAR ANALYSIS — THE AIR CONDITIONER THAT RUNS BUT ISN'T COLD, IN NHTSA PUBLIC DATA PulsCar analysis of NHTSA public data, September 2026. License: CC BY 4.0. Attribution: "PulsCar analysis of NHTSA public data, September 2026." Published alongside https://pulscar.io/blog/car-ac-not-blowing-cold ------------------------------------------------------------------------------ 1. SOURCE FILES ------------------------------------------------------------------------------ All inputs are NHTSA's own published flat files, downloaded from static.nhtsa.gov and loaded into a local SQLite database. No third-party data was used. COMPLAINTS — 777,040 owner complaints received 1 January 2015 to 8 September 2026. Field definitions: https://static.nhtsa.gov/odi/ffdd/cmpl/CMPL.txt TSBs — manufacturer communications (service bulletins, dealer messages, special coverage and warranty-extension bulletins). Field definitions: https://static.nhtsa.gov/odi/ffdd/tsbs/FLAT_TSBS.txt Complaints are self-reported. They are not failure rates and they have no denominator. Reporting volume rises with publicity — a warranty extension announced to owners produces complaints from owners who would otherwise never have filed. Nothing here should be read as "make X is more or less reliable than make Y". ------------------------------------------------------------------------------ 2. BUILDING THE SET ------------------------------------------------------------------------------ Step 1 — full-text search of the narrative field: SELECT c.* FROM complaints c JOIN complaints_fts f ON f.rowid = c.rowid WHERE complaints_fts MATCH '"air conditioning" OR "air conditioner" OR "a/c" OR blower OR hvac OR refrigerant OR freon OR "climate control" OR defroster'; -> 12,435 complaints. Step 2 — narratives upper-cased and whitespace-normalized, then classified. A complaint enters the NOT COLD set when one of these phrases appears with an air-conditioning word (AIR CONDITION*, A/C, AC, HVAC, CLIMATE CONTROL, BLOWER, REFRIGERANT, FREON, COMPRESSOR, EVAPORATOR, CONDENSER) within 100 characters before it, or with an HVAC subject within 60 characters before it and no competing subject noun in between: BLOW* (up to two intervening words) COLD | COOL | WARM | HOT NO COLD AIR | NOT COLD | ISN'T COLD | WARM AIR | HOT AIR STOPPED COOLING | NOT COOLING | QUIT COOLING | NO LONGER COOLS DOES NOT COOL | WON'T COOL | NO COOL AIR | LOST COOLING | NOT GETTING COLD -> 1,072 complaints, received 1 January 2015 - 8 September 2026. This is the set used on the page. Heater-only complaints are excluded: where HEATER is the nearest subject and no air-conditioning word sits in the 40 characters before the phrase, the complaint is dropped, because "the heater blows cold" is the opposite problem. Two sibling sets come out of the same pass and are published on their own pages: DEAD AC (no air at any speed, will not come on, will not engage, blower failed) -> 389 complaints, https://pulscar.io/blog/car-ac-not-working UNSPECIFIED ("the AC stopped working" and nothing else) -> 652 complaints. Union of the three: 2,092. Overlaps: 21 complaints describe both a dead AC and warm air, 108 warm air and an unspecified failure, 18 a dead AC and an unspecified failure. A NOTE ON A DIFFERENT NUMBER ON THIS SITE. Our AC recharge-cost page reports 1,880 complaints from the same file. That is a deliberately WIDER set: it keeps any cooling-or-leak symptom near an AC word, including complaints that are only about a refrigerant leak with no statement about the air temperature. The 1,072 here is the stricter symptom set — the owner said the air was not cold. Neither number is a correction of the other. ------------------------------------------------------------------------------ 3. SAMPLE READING AND FALSE POSITIVES (done before publishing any count) ------------------------------------------------------------------------------ 30 of the 1,072 were drawn at random (Python random.seed(4242), random.sample) and read in full. 4 of 30 were clearly wrong: a transmission and driveshaft complaint, a Tesla software update that disabled the heater and defroster, a cold-start warning cascade with no AC content, and a total-integrated-power-module failure. Observed false-positive rate 13%. 5 of 30 were complaints in which the AC blowing warm was ONE symptom of a larger electrical or instrument-cluster failure rather than the subject of the report. These were KEPT. They are not keyword errors — the air really was not cold — and the share is reported on the page as a finding rather than hidden as noise. 21 of 30 were straightforwardly what the set claims to contain. Read every share in the CSVs with that 13% in mind. No attempt was made to estimate how many warm-AC complaints the query MISSED; keyword sets under-count by their nature. ------------------------------------------------------------------------------ 4. FILES ------------------------------------------------------------------------------ not-cold-complaints-by-context.csv What the narrative names, as a count and share of the 1,072, with the same share of the 389 dead-AC complaints beside it for contrast. Categories are keyword matches and are NOT exclusive; they do not sum to 100%. "The compressor" means the word appears, not that a compressor was proven faulty — owners write down the part a shop named out loud. The four pattern rows (one side warm, cycling, fades after a stated time, warm only at idle) are the important caveat on this file: they are what owners VOLUNTEERED. 782 of the 1,072 narratives (72.95%) name none of the four patterns, so these shares are a floor on how often each pattern occurs, not a measurement of it. not-cold-by-make.csv / not-cold-top-models.csv / not-cold-by-model-year.csv Counts with median failure mileage, the number of complaints carrying a usable odometer, and how many narratives mention a leak, the condenser, the compressor, or warranty/coverage. Make and model files omit rows with fewer than 3 complaints. Mileage statistics drop odometer values at or below 0 and at or above 400,000; 567 of the 1,072 complaints carry a usable figure. These are raw counts with no denominator. ------------------------------------------------------------------------------ 5. BASELINES USED FOR COMPARISON ------------------------------------------------------------------------------ Computed over all 777,040 complaints in the same file: towed 5.11% crash 4.37% fire 1.82% median miles 70,000 The not-cold set returns 0.75% towed, 0.28% crash, 1.40% fire and a median of 57,300 miles (quartiles 35,000 and 89,000), with 27.2% of the usable odometer readings at or under 36,000 miles. ------------------------------------------------------------------------------ 6. LIMITATIONS ------------------------------------------------------------------------------ - Self-reported, unverified, no denominator, no failure rate. - A keyword set, not an NHTSA component code. NHTSA's air-conditioner component tag appears on only 272 complaints in the whole file. - Model-year concentrations reflect both real defect clusters and publicity: the two largest clusters in this file are both models with a published manufacturer coverage program, which is exactly the kind of feedback loop that inflates counts. - Categories overlap; shares do not sum to 100%. ------------------------------------------------------------------------------ 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, in two layers: * the complaint set is built with an FTS5 MATCH full-text search, which folds case before matching, so it cannot miss a mixed-case record; and * where the narrative is then tested with patterns, the narrative is upper-cased and whitespace-normalized first, so the patterns compare upper against upper. 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. Re-run here: the step-1 search returns 12,435 complaints today, exactly the figure published above.