PULSCAR ANALYSIS OF NHTSA PUBLIC DATA — "WHAT CARS ACTUALLY FAIL INSPECTION FOR" PulsCar analysis of NHTSA public data, September 2026. License: CC BY 4.0. Reuse with attribution to PulsCar (pulscar.io). -------------------------------------------------------------------------- 1. SOURCE -------------------------------------------------------------------------- NHTSA's public complaint flat file (FLAT_CMPL.txt), loaded into SQLite: 777,040 unique complaints (ODINO), received 1 January 2015 - 8 September 2026. Field definitions: https://static.nhtsa.gov/odi/ffdd/cmpl/CMPL.txt WHAT THIS DATA IS NOT. It is not a sample of inspection results. Nobody files a federal defect complaint because a $6 tail-light bulb failed. What an owner reports to NHTSA is a failure they believe is a manufacturing defect: expensive, premature, or something they think should have been recalled. Read every count below as "failures owners considered a defect", never as "how often cars fail inspection". State inspection programs publish their own pass/fail statistics; this is a different question. -------------------------------------------------------------------------- 2. QUERY (the 546) -------------------------------------------------------------------------- Step 1 - FTS5 full-text search of complaint narratives for 18 phrases: "failed inspection", "failed the inspection", "fail inspection", "fail the inspection", "failed state inspection", "failed emissions", "failed the emissions", "fail emissions", "failed smog", "fail smog", "failed safety inspection", "not pass inspection", "did not pass inspection", "failed inspections", "failed my inspection", "failed emission", "inspection failure", "failed the smog". -> 793 complaints. Step 2 - regex confirmation that the narrative actually says the vehicle failed or could not pass an inspection, emissions test or smog check: fail(ed|s|ing)?\s+(the|my|its|his|her|their|a|an)?\s*(state|annual| safety|vehicle|emissions?|smog|yearly|biennial)*\s*(inspection| emissions?|smog|test) OR (did not|didn't|could not|couldn't|would not|wouldn't) pass (the|state|a|an)* (inspection|emissions?|smog) OR unable to pass (the) (state) (inspection|emissions|smog) -> 546 complaints. This is the published set. Step 3 - SAMPLE READING. 30 random complaints from the 546 were read in full: 3 of 30 (10%) did not describe an actual failure - two were owners predicting that a defect "will fail inspection", one was a dealer describing its own test equipment. Residual false-positive rate: about 10%. -------------------------------------------------------------------------- 3. WHAT THE 546 CONTAIN -------------------------------------------------------------------------- 546 complaints 210 (38%) mention rust, rot, corrosion or perforation 121 (22%) use an emissions word (emission, smog, catalytic, converter, EVAP) 82 (15%) mention the check engine light by name Component tags (a complaint can carry several): STRUCTURE 142, ENGINE 104, SUSPENSION 75, UNKNOWN/OTHER 72, ELECTRICAL 67, FUEL/PROPULSION 64, AIR BAGS 53, SERVICE BRAKES 46, STEERING 24, POWER TRAIN 24, EXTERIOR LIGHTING 24. Vehicle age at the complaint: median 10 years (25th percentile 6, 75th percentile 13), n = 545. Mileage, excluding 0 and anything >= 400,000: median 94,500 miles (25th percentile 58,104, 75th percentile 129,000), n = 288. Filings are steady across the period: 50 in 2015, 62 in 2019, 48 in 2025, 37 in the partial year to 8 September 2026. -------------------------------------------------------------------------- 4. STATE CONCENTRATION -------------------------------------------------------------------------- Each complaint carries the filer's state. Comparing each state's share of the 546 with its share of all 777,040 complaints gives a concentration ratio - how much more often an inspection failure is the thing that makes an owner write to NHTSA there. State in set share of 546 share of all ratio PA 94 17.2% 4.08% 4.2x VA 83 15.2% 3.33% 4.6x NY 68 12.5% 4.82% 2.6x MA 44 8.1% 2.16% 3.7x NH 26 4.8% 0.53% 9.0x ME 20 3.7% 0.47% 7.7x VT 10 1.8% 0.24% 7.6x RI 7 1.3% 0.32% 4.1x CA 27 4.9% 11.06% 0.4x TX 22 4.0% 8.14% 0.5x FL 8 1.5% 7.80% 0.2x Full table: inspection-failure-complaints-by-state.csv Limitations: the state field is the filer's state, not necessarily where the inspection happened; the period spans program changes (Texas ended mandatory safety inspections for non-commercial vehicles on 1 January 2025); and a state with a strict rust criterion will generate expensive, complaint- worthy failures that a lights-and-brakes program never produces. The ratio measures complaint-worthiness, not inspection strictness. -------------------------------------------------------------------------- 5. READING 110 COMPLAINTS FOR THE FAILURE REASON -------------------------------------------------------------------------- 110 complaints were drawn at random from the 546 (fixed seed) and read in full. Each was assigned ONE primary reason - what the vehicle is said to have failed for: 40 rust, corrosion or structural rot (frame, subframe, floor pan) 22 emissions / OBD (check engine light, EVAP, converter, module not communicating) 8 steering or suspension (control arm, tie rod, shocks, steering gear) 6 exterior lighting (bulbs, lenses, moisture, missing lamp) 6 tires (tread, cracking, deformation) 5 warning lights other than the check engine light (airbag, ABS, brake) 4 brakes (caliper, shoes, parking brake) 3 engine or drivetrain mechanical failure 1 mirrors, glazing and other small-print items 9 blocked by an open recall or a recall inspection rather than a defect of the vehicle's own 3 failure reason not stated 3 off target (no actual inspection failure described) Published as inspection-failure-reasons-sample110.csv -------------------------------------------------------------------------- 6. PRIMARY DOCUMENTS READ FOR THE ARTICLE (18 September 2026) -------------------------------------------------------------------------- - New York DMV form VS-77, "Inspection Groups and Fee Chart", effective 1 January 2011, form revision 7/15: light-vehicle safety inspection $10.00; OBD II emissions $27.00 inside the New York Metropolitan Area, $11.00 outside; low-enhanced $11.00; diesel $25.00; motorcycle $6.00; re-inspection rules. https://dmv.ny.gov/forms/vs77.pdf - 67 Pa. Code section 175.80, "Inspection procedure": the rejection criteria an inspector must apply (frame, floor pan, tires, glazing, lamps, road test). - Texas DMV vehicle registration page: non-commercial safety inspection ended 1 January 2025; $7.50 inspection replacement fee ($16.75 for new two-year registrations); seventeen emissions counties named. - Texas Commission on Environmental Quality, "Vehicle Emissions Inspections in Texas": county-by-county implementation dates and "Enhanced inspections will begin in Bexar County on November 1, 2026." -------------------------------------------------------------------------- 7. FILES -------------------------------------------------------------------------- inspection-failure-complaints-by-state.csv all states in the 546 inspection-failure-complaints-by-make.csv makes with 3+ complaints inspection-failure-complaints-by-model.csv models with 3+ complaints inspection-failure-reasons-sample110.csv the 110-complaint read No personal data is published: no VINs, names, cities, dealer addresses or complaint narratives beyond short quoted fragments. ------------------------------------------------------------------------------ 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: this set is built with an FTS5 MATCH full-text search, which is case-insensitive by construction — it tokenises and folds case before matching. The bug cannot occur in a query of this shape.