Decode a code

P, B, C or U: What OBD-II Code Prefixes Actually Mean

That letter at the start of a trouble code is not decoration. It tells you which part of the car the ECU is watching, and it gives you an immediate sense of how serious the fault is likely to be.

The Four Code Categories

P: Powertrain

P codes cover the engine, transmission, and their supporting systems: ignition, fuel delivery, emissions controls, variable valve timing, and everything else that moves the car. This is by far the largest category and the one you are most likely to encounter.

Most check engine lights come from P codes. P0171, P0300, P0420, and the other codes you see most often are all in this family. When someone says "my car threw a code," they almost always mean a P code.

B: Body

B codes cover everything inside and around the passenger compartment that is not directly related to driving: airbags, seat belt pretensioners, power windows, power seats, climate control, and similar systems. A B code rarely causes a traditional check engine light. Instead it usually triggers a warning specific to that system, like an airbag warning light or a message about a seat belt malfunction.

B codes can be serious. An airbag-related B code means the SRS system may not deploy correctly in a collision. These should not be ignored even if the car feels fine to drive.

C: Chassis

C codes cover the brake system (including ABS and stability control), steering, and suspension. A C code almost always triggers a specific warning light rather than the check engine light. Common examples include ABS faults, traction control failures, and issues with electronic stability control sensors.

Many C codes are drivable short-term, but you may lose ABS or traction control functionality while the fault is present. Check the specific code before deciding how urgently you need to act.

U: Network and Communication

U codes mean one of the car's control modules is not communicating correctly with the others. Modern vehicles have a network of modules talking to each other over a CAN bus. If a module drops off the network or sends bad data, a U code appears.

U codes can be tricky to diagnose because a single failed module can generate a cascade of apparently unrelated faults. A U0100 (lost communication with ECM/PCM) may be accompanied by body and chassis codes that are all downstream effects of the same network problem. Fix the communication issue and the other codes often clear on their own.

Generic vs. Manufacturer-Specific Codes

The second character in the code (the first digit) tells you who defined it:

Second characterMeaning
0Generic (SAE standard, applies to all makes)
1Manufacturer-specific
2Manufacturer-specific (some overlap with generic)
3Manufacturer-specific

A P0xxx code means the same thing on a Toyota as it does on a Ford. A P1xxx code varies by manufacturer. Toyota uses P1xxx for some hybrid system faults. Ford uses the same range for different engine management faults. Always confirm what a P1 code means for your specific brand before acting on it.

What the Remaining Digits Mean

For P codes, the second digit (after the 0 or 1) points to the system within the powertrain:

  • P01xx: Fuel and air metering
  • P02xx: Fuel and air metering (injector circuit)
  • P03xx: Ignition system and misfires
  • P04xx: Auxiliary emission controls
  • P05xx: Vehicle speed, idle control, and auxiliary inputs
  • P06xx: Computer output circuits
  • P07xx: Transmission

This is why P0300 through P0308 are all misfire codes (ignition system), and P0420 through P0432 are all catalyst-related (auxiliary emission controls). The numbering is not random.

Putting It Together

When you pull a code you have never seen before, the prefix tells you where to start. A P code points you to the engine or transmission. A B code sends you to the body electrical systems. A C code means check the brakes and chassis. A U code means something on the car's internal network has gone quiet. Use the CarCodeHub code lookup to go from the code number to a plain-English explanation of what is failing and what it will cost to fix.


Back to Blog