PulsCar analysis of NHTSA public data, September 2026 The check engine light itself: 50,890 owner complaints, the 2,133 that describe a FLASHING light, and 19 manufacturer bulletins about a flashing malfunction indicator lamp Licensed CC BY 4.0. Queries run 18 September 2026. -------------------------------------------------------------------------- SOURCE FILES -------------------------------------------------------------------------- NHTSA ODI complaint flat files COMPLAINTS_RECEIVED_2015-2019, _2020-2024, _2025-2026 -- https://static.nhtsa.gov/odi/ffdd/cmpl/ (dictionary CMPL.txt) 777,040 distinct vehicle complaints (ODINO, product type V) received 1 January 2015 to 8 September 2026. NHTSA manufacturer communications flat file (TSBS), 5,267,097 rows. Bulletin PDFs opened individually at https://static.nhtsa.gov/odi/tsbs/... -------------------------------------------------------------------------- WHAT THIS PAGE DOES NOT RECOMPUTE -------------------------------------------------------------------------- Per-code figures (how many bulletins address P0420, P0300, P0171, P0128 and the rest, what share are software updates, how many complaints quote each code, median mileage per code) come from the PulsCar Check Engine Code Index and are cited, not recalculated: https://www.pulscar.io/blog/check-engine-code-index /research/check-engine-code-index/code_index.csv /research/check-engine-code-index/method.txt The individual code guides (P0420, P0300, P0171, P0128, P0455, P0442) publish their own complaint sets and warranty analyses. Where this page quotes one of their numbers, the number is theirs. -------------------------------------------------------------------------- WHICH COMPLAINTS COUNT (the check-engine set: 50,890) -------------------------------------------------------------------------- The narrative contains CHECK ENGINE, ENGINE LIGHT, MALFUNCTION INDICATOR, the whole word MIL, or SERVICE ENGINE SOON. Motorcycle, heavy-truck, bus and RV manufacturers excluded by make. 50,890 complaints, 6.5% of the file. This is a deliberately broad set: it counts every complaint in which an owner mentioned the light, whatever the underlying failure was. THE FLASHING SUBSET (2,133; 4.19% of the set) A narrative counts when it contains a flash/blink word adjacent to the light: (FLASH|BLINK)\w* immediately before CHECK ENGINE / ENGINE / MALFUNCTION / MIL / WARNING, or the light followed by (was|is|started) (flashing|blinking), or "flashing light" / "blinking light". SAMPLE READING: thirty drawn at random (seed 11) and read in full. Thirty described a flashing or blinking dashboard warning during a driving event; one of the thirty was ambiguous about which lamp flashed first (a Dodge Durango narrative naming an ETC indicator and then the engine light). FALSE-POSITIVE RATE OBSERVED: 0-1 IN 30. -------------------------------------------------------------------------- RESULT 1 -- FLASHING VERSUS EVERYTHING ELSE (cel-flashing-vs-solid.csv) -------------------------------------------------------------------------- Shares of the 2,133 flashing narratives against the other 48,757. sudden loss of power or limp mode 27.6% vs 13.1% shaking, vibrating, sputtering or jerking 24.5% vs 13.4% a knocking or ticking noise 21.0% vs 7.0% names a misfire 17.3% vs 7.3% names spark plugs or ignition coils 13.0% vs 5.7% an engine replaced or needing replacement 10.6% vs 6.2% names a catalytic converter 3.5% vs 3.0% the engine stalled or shut off 16.4% vs 18.3% happened on a highway or at a stated speed 51.5% vs 36.4% structured TOWED flag 4.31% vs 7.14% structured FIRE flag 1.13% vs 1.62% structured CRASH flag 0.52% vs 0.87% median miles 84,807 (880 report one) vs 81,331 (28,093 report one) All-complaint baselines for the same fields, across 777,040 complaints: towed 5.11%, fire 1.82%, crash 4.37%, median miles 70,000. HOW TO READ IT. The misfire association the article's solid-versus-flashing rule rests on is visible and large: a flashing-light narrative is about 2.4 times as likely to name a misfire and 2.3 times as likely to name plugs or coils. The converter association is NOT visible in owner language (3.5% vs 3.0%), and this file cannot settle it: owners describe what happened to them, not the thermal history of their catalyst. The tow figure runs the other way and matters practically -- a flashing light is usually reported by someone whose car was still moving. -------------------------------------------------------------------------- RESULT 2 -- WHAT OWNERS NAME (cel-what-owners-name.csv) -------------------------------------------------------------------------- Shares of the 50,890. A narrative can name several things. transmission 13.47%; battery/alternator/charging 7.36%; misfire 7.29%; an engine replaced or needing replacement 6.20%; spark plugs or coils 5.74%; catalytic converter 2.97%; EVAP/purge/canister 2.38%; oxygen sensor 1.16%; gas cap 0.96%; thermostat 0.94%; EGR 0.60%; mass airflow 0.41%. Only 3,270 narratives (6.43%) quote a P0 code at all. "THE SHOP COULD NOT FIND IT": phrases COULD NOT / COULDN'T / CANNOT FIND, UNABLE TO FIND / DIAGNOSE / DETERMINE / DUPLICATE / REPLICATE, NO PROBLEM / FAULT / ISSUE / CODE FOUND, NOTHING WRONG, NO TROUBLE FOUND. Untightened: 2,071 (4.07%). Tightened so the phrase sits within 160 characters of the light, a code or the word LIGHT: 1,088 (2.14%). SAMPLE READING of the tightened set: thirty read at random (seed 5); three were about something else in the same narrative (a fuel-level sensor, a recall search, an airbag lamp). FALSE-POSITIVE RATE ABOUT 3 IN 30 (10%). "THE LIGHT CAME BACK": 1,646 (3.23%), phrases such as CAME BACK ON, LIGHT RETURNED, STILL ON, KEEPS COMING ON. Not tightened; treat as an upper bound, because some of these describe a light that never went off. -------------------------------------------------------------------------- RESULT 3 -- CODES OWNERS QUOTE (cel-codes-owners-quote.csv) -------------------------------------------------------------------------- Distinct \bP0[0-9A-F]{3}\b tokens, counted once per complaint, over the 3,270 narratives that quote any code. Top: P0302 243, P0300 210, P0301 199, P0420 197, P0303 197, P0304 182, P0700 116, P052E 112, P0017 98, P0316 94, P0014 84, P0456 83, P0299 76, P0087 73, P0016 72. This ranks what owners WRITE DOWN, not what sets most often. It is not comparable to the bulletin counts in the Check Engine Code Index, which count manufacturer documents. -------------------------------------------------------------------------- RESULT 4 -- BULLETINS ABOUT A FLASHING LAMP (cel-flashing-mil-bulletins.csv) -------------------------------------------------------------------------- FTS5: (flashing OR blinking OR flashes OR blinks) AND (MIL OR "malfunction indicator" OR "check engine"), then a regex requiring the flash word to be adjacent to the lamp, then heavy-truck/bus/RV/motorcycle makes removed. 19 distinct communications, 2015 to 2026. Six name moisture, humidity or rain as the cause; six name a software update or reprogramming in the remedy. Every row is published with its summary so the classification can be checked by hand -- at nineteen documents this is a SMALL SET and is reported as one. -------------------------------------------------------------------------- PRIMARY DOCUMENTS OPENED AND READ, 18 SEPTEMBER 2026 -------------------------------------------------------------------------- GM PIP5511A, published 23 January 2018, 2018 Chevrolet Equinox and GMC Terrain 1.5L LYX / 2.0L LTG -- "DTC P0300 Flashing MIL Possible Moisture In Charge Air Cooler System" ... "Do not replace any components for this concern." https://static.nhtsa.gov/odi/tsbs/2018/MC-10129090-9999.pdf Honda Service Bulletin 24-085, 19 June 2024, 2018-24 Odyssey, 2019-24 Passport, 2017-24 Ridgeline, 2016-22 Pilot -- "Low Power Mode and MIL Flashes with No DTCs Stored"; cause "Moisture accumulation in the intake manifold during long drives gets drawn into the combustion chamber while cornering, causing misfires"; corrective action replaces the intake manifold, insulator and PCV hose. https://static.nhtsa.gov/odi/tsbs/2024/MC-11002716-0001.pdf Acura Service Bulletin 20-053 version 4, 12 March 2024, 2019-21 RDX and 2021 TLX -- "MIL is Flashing with Loss of Power"; "Humid air within the intake passage may condense and accumulate moisture during steady driving"; corrective action updates the PGM-FI software (TLX) or updates software and replaces the intercooler (RDX). https://static.nhtsa.gov/odi/tsbs/2024/MC-10251896-0001.pdf Mazda 01-010-18-3442, 23 April 2018, 2016 CX-9 -- misfire with a flashing check engine light, P0302/P0303, caused by an exhaust manifold variable valve out of alignment. https://static.nhtsa.gov/odi/tsbs/2018/MC-10134931-9999.pdf 40 CFR 86.1806-17, read on eCFR 18 September 2026 -- the federal onboard diagnostics rule for model year 2017 and later vehicles, which adopts California's 2013 OBD-II requirements (13 CCR 1968.2) by reference and states that OBD systems "must generally detect malfunctions in the emission control system, store trouble codes corresponding to detected malfunctions, and alert operators appropriately." NOT OPENED: 13 CCR 1968.2 itself, where the blinking-lamp specification lives. Two CARB URLs returned 404 on 18 September 2026 and we did not work around them, so this page describes the blink as the behaviour manufacturers implement under the incorporated rule and does not quote a clause. -------------------------------------------------------------------------- LIMITATIONS -- READ BEFORE QUOTING ANY NUMBER -------------------------------------------------------------------------- 1. Complaints are self-reported, unverified and voluntary; they are not failure rates, and NHTSA publishes no denominator. 2. Every keyword share measures vocabulary. An owner who did not write "misfire" may still have had one. 3. The flashing subset is 2,133 narratives out of 50,890. Nothing here says how often a flashing light occurs in the world. 4. The no-fault-found share carries roughly one mis-sort in ten; the "light came back" share is not tightened at all. 5. Nineteen bulletins is a small set and a summary-text search; bulletins whose abstract does not use the word "flashing" are missed. -------------------------------------------------------------------------- FILES -------------------------------------------------------------------------- cel-flashing-vs-solid.csv row, flashing count and share, other count and share, plus flags, mileage and totals. cel-what-owners-name.csv part or system named, complaints, share, median miles, miles reported. cel-codes-owners-quote.csv code, complaints quoting it, share of the 3,270 that quote any code. cel-flashing-by-make-and-model.csv makes and models in the flashing subset. cel-flashing-mil-bulletins.csv all 19 bulletins with date, moisture flag, software flag and summary. No personal data is published: no VIN, no city, no dealer name, no owner free text beyond short quoted snippets in the article itself. ------------------------------------------------------------------------------ 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 (50,890) is LARGER than the absolute ceiling a case-sensitive search of the same terms could have returned (10,377 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.