How to Read OBD-II Codes (P0420, P0171, and What the Letters Mean)
You scanned the check-engine light, got a code like P0420, and now you have to decide whether to drive on, drive slowly to the shop, or call a tow truck. The code's meaning isn't on the dashboard — you have to look it up. The quote-the-shop-just-gave-you process has the same answer in its first ten seconds: "the scanner shows P0420, that's a $1,200 catalytic converter."
OBD-II (the diagnostic system in every car sold in the US since 1996, EU since 2001, similar dates elsewhere) speaks a standardized language. Knowing how to read the codes — even if you can't fix the car yourself — keeps the conversation with the shop honest.
What the letters mean
Every OBD-II code is 5 characters: a letter, then 4 digits.
- P — Powertrain (engine, transmission). Most common, including check-engine codes.
- B — Body (interior systems, lights, comfort)
- C — Chassis (brakes, steering, suspension)
- U — Network / Communication (the CAN bus that connects all the modules)
The second digit tells you whether the code is generic (SAE-defined, identical across manufacturers) or manufacturer-specific:
- 0 or 2 — Generic. Means the same thing in any car.
- 1 or 3 — Manufacturer-specific. Look it up in the OEM service manual; meanings vary by make.
The third digit is the subsystem (for P-codes):
- 0 — Fuel/air metering
- 1 — Fuel/air metering, injector circuit
- 2 — Fuel/air metering — injector circuit
- 3 — Ignition / misfire
- 4 — Auxiliary emissions (EGR, EVAP)
- 5 — Vehicle speed, idle control
- 6 — Computer & auxiliary outputs
- 7-8 — Transmission
The last two digits identify the specific fault.
The 10 most-Googled OBD-II codes
Some codes show up on every shop floor. The big hits, with what they actually mean:
- P0420 — Catalyst system efficiency below threshold (Bank 1). Often misdiagnosed as "you need a new cat" — actually a failing downstream O2 sensor about 40% of the time, an upstream sensor or exhaust leak another 20%.
- P0171 — System too lean (Bank 1). Vacuum leak is the most common cause; weak fuel pump or dirty MAF sensor are runners-up.
- P0300-P0306 — Cylinder N misfire. Worn coil, worn plug, or failed injector. Cheaper to diagnose than P0420 — swap a coil to a different cylinder and see if the misfire follows.
- P0455 / P0442 — EVAP large/small leak. The most common cause is a loose gas cap. Tighten it, drive a few cycles, the code may clear itself.
- P0700 — Transmission control system malfunction. The trans-control module logs its own codes — pull those for the actual diagnosis.
- P0335 / P0340 — Crankshaft / camshaft position sensor circuit. Often a $60 sensor; sometimes a stretched timing chain (much more expensive).
- U0100 — Lost communication with ECM/PCM. Usually a wiring issue or a failing computer.
Severity tiers
Not every code means stop driving. Rough mechanic categories:
- Drive on, address soon — Most EVAP codes (P0440-P0457), some emissions codes. Tighten the gas cap, see if it clears.
- Address before next long drive — Catalyst codes (P0420/P0430), sensor codes (P0171/P0172), most ignition codes. Driving with these doesn't strand you but extended driving risks reduced fuel economy or escalation.
- Address now — avoid driving — Misfires (P0300-P0306, especially severe), transmission codes (P0700+), crankshaft sensor (P0335). Continued driving may damage the catalytic converter, internals, or transmission.
Look up codes without a scanner subscription
If you have an OBD-II scanner (or borrowed one from AutoZone — most chains let you borrow free), you've got the code. Now you need the meaning. Most apps that pair with cheap Bluetooth scanners gate the lookup behind a $40-80/year subscription.
Buncha's OBD-II Code Lookup covers ~70 of the most-looked-up SAE generic codes (P0xxx, U0xxx, B/C codes). Type the code, get the description, system, likely causes, and severity tier. For codes outside the curated list, the prefix decoder still tells you which system it belongs to.
It's the kind of thing where having the answer in your pocket changes the dynamic at the shop. Knowing P0420 isn't always a $1,200 cat job — that the downstream O2 sensor at $60 is the more common culprit — keeps the diagnosis honest.
Manufacturer-specific (P1xxx) codes
If the second digit is 1, the code is OEM-specific. The Buncha lookup doesn't cover these because their meanings vary by make. Resources:
- Free: AutoCodes.com, OBD-Codes.com, the manufacturer's owners' forum (Subaru: NASIOC; Honda: Honda-Tech; etc.)
- Cheap: $10-20 service-manual-extract sites for older vehicles
- Authoritative: ALLDATA, Mitchell1 — these are professional-tier and cost real money, but they're what shops use
For most consumer purposes, the generic codes covered in the lookup tool handle 80%+ of check-engine scenarios.