The check-engine light is the most stress-inducing dashboard symbol in modern car ownership. It's vague on purpose — the same yellow light covers everything from "your gas cap is loose" to "your catalytic converter is failing and the fix is $1,800."
The good news: every check-engine light comes with a specific OBD-II code that narrows the field instantly. The better news: a $25 reader plugged into the port under your dash gets you that code in 30 seconds, exactly the same one a shop would charge $130 to read.
Here's what the most common ones actually mean.
How to read the code yourself
You need three things: a Bluetooth OBD-II reader (or a standalone unit — both work), the free Torque Lite or Car Scanner app on your phone, and the OBD-II port — almost always within 12 inches of your steering column under the dash.
- Plug the reader in. Turn the key to "on" but don't start the engine.
- Connect the app to the reader.
- Read codes. Each code is a letter (P, B, C, U) plus four digits. P-codes are powertrain — the most common.
You can also clear codes from the same screen. Don't do this without writing the code down first — a shop needs the original code to diagnose properly.
The 10 most common codes, what they mean, and what they cost
P0420 — Catalyst System Efficiency Below Threshold (Bank 1)
What it usually means: The catalytic converter is no longer reducing emissions efficiently. Sometimes the converter itself is failing; sometimes an oxygen sensor is reading wrong.
Real-world fix cost:
- Replace front O2 sensor first (often the actual problem): $180–$320
- If sensor doesn't fix it, replace catalytic converter: $900–$2,400 aftermarket; $1,800–$4,200 OEM
Important: Always replace the upstream O2 sensor first. Throwing a $1,800 converter at a $220 sensor problem is one of the most common car-repair mistakes.
P0171 / P0174 — System Too Lean (Bank 1 / Bank 2)
What it usually means: The engine is running with too much air relative to fuel. Often a vacuum leak, dirty mass airflow sensor, or failing fuel pump.
Real-world fix cost:
- MAF sensor cleaning: $15 (DIY with MAF cleaner spray)
- MAF sensor replacement: $120–$340
- Vacuum hose / intake gasket repair: $160–$480
- Fuel pump replacement: $480–$1,100
Always start with the cheap fixes. Half of these codes resolve with $15 of MAF cleaner.
P0300 / P030X — Random / Cylinder X Misfire
What it usually means: One or more cylinders aren't firing properly. Single cylinder code (P0301, P0302, etc.) points at that specific cylinder. Could be ignition, fuel, or compression-related.
Real-world fix cost:
- Spark plug replacement (set of 4–8): $80–$280
- Single coil pack replacement: $140–$340
- Fuel injector replacement: $260–$640
- Compression issue (head gasket, valves): $1,800+
Do not ignore. Sustained misfire damages catalytic converters, which is how a $90 spark plug job becomes a $2,200 cat job.
P0455 / P0456 / P0442 — Evaporative Emission System Leak
What it usually means: The system that captures fuel-tank vapors has a leak. Most often: a loose, missing, or worn-out gas cap. Sometimes a cracked vacuum line or failing purge valve.
Real-world fix cost:
- New gas cap: $15–$35 (try this first, drive 50 miles, see if light clears)
- Purge valve replacement: $120–$280
- Charcoal canister replacement: $280–$680
This is the lowest-stakes code on this list. A loose gas cap really does throw it. Tighten the cap, drive a few days, see what happens.
P0128 — Coolant Temperature Below Thermostat Regulating Temperature
What it usually means: The engine isn't reaching operating temperature. Usually a stuck-open thermostat.
Real-world fix cost: Thermostat replacement $180–$420.
P0440 — Evaporative Emission Control System Malfunction
Generic version of the P0455/P0456 family. Same starting point: gas cap.
P0700 — Transmission Control System Malfunction
What it usually means: Generic flag that something in the transmission control system has tripped. Almost always paired with a more specific transmission code (P07XX). Don't act on P0700 alone — get the secondary code.
Real-world fix cost: Anywhere from a $180 fluid service to a $4,200 rebuild. Cannot diagnose without the secondary code.
P0011 / P0014 — Camshaft Position Timing Over-Advanced (Bank 1)
What it usually means: Variable valve timing solenoid problem, dirty oil obstructing the VVT system, or a failing timing chain tensioner.
Real-world fix cost:
- Oil change with proper-spec synthetic (sometimes the only fix): $80–$120
- VVT solenoid replacement: $220–$540
- Timing chain / tensioner replacement: $1,800–$3,400
P0301–P0308 — Specific Cylinder Misfire
Same diagnosis as P0300 but you already know which cylinder. Saves diagnostic time.
P0401 — Insufficient EGR Flow
What it usually means: The Exhaust Gas Recirculation valve is clogged with carbon, or the EGR passage is restricted.
Real-world fix cost:
- EGR valve cleaning: $160–$320 labor
- EGR valve replacement: $240–$540
"Pending" vs "Active" codes
Modern OBD-II distinguishes between pending codes (the system saw a fault once and is monitoring) and active codes (the fault has been confirmed across multiple drive cycles). A pending code with no active code usually doesn't trigger the dash light — it's just a warning that something is being watched. Don't panic about pending codes. Don't ignore active ones.
When the light is flashing, not solid
A flashing check-engine light is materially worse than a steady one. It almost always means a severe misfire that's actively damaging the catalytic converter. Pull over safely, reduce load, get the car towed if you're far from home. Don't drive on a flashing CEL — every mile is meaningfully expensive.
The $25 investment that saves $130 every time
A basic Bluetooth OBD-II reader is $20–$30 on Amazon. The Torque Lite app is free. Your check-engine light goes on, you read the code in 60 seconds, you Google what it means, you decide whether it's a "drive to the shop" or "park it" situation. That decision-making power saves the $130 diagnostic fee every time, plus removes the stress of not knowing.
If the code is real and you need work done, post the job with the specific code and let qualified providers quote it. "P0420 on a 2018 Camry" gets you accurate quotes in hours instead of "my check engine light is on" getting you a wide range of guesses.
The check-engine light isn't a mystery anymore. It's a code, a Google search, and a decision. The 30 minutes it takes to learn this once is the best return on time in all of car ownership.
Ready to put this into practice?
Post your job once and let vetted providers compete for it. Side-by-side quotes, real reviews, secure payments.