Decode any trouble code

Quick answer

A trouble code has five characters. The letter gives the system, P for powertrain, B for body, C for chassis and U for network. The first digit says whether the code is a generic SAE definition (0) or a manufacturer defined one (1). The second digit names the subsystem, and the last two digits identify the specific fault within it.

Decode any trouble code Worked example below
Code P0420
SystemPowertrain: engine and transmission
ScopeGeneric, defined by SAE and identical on every manufacturer
SubsystemAuxiliary emission controls
Specific fault index20

This is a generic code, so its definition is the same on every vehicle. The fault behind it is not: several different faults set the same code, and that is what diagnosis is for.

How it decides: letter = system, digit 1 = generic or manufacturer, digit 2 = subsystem, digits 3 and 4 = specific fault

Generic codes mean the same thing on every manufacturer. Manufacturer defined codes do not, and looking one up in a generic list is how people end up chasing the wrong system entirely.

The tool this page assumes you have

TOPDON TopScan Lite OBD2 Scanner, Bidirectional Scan Tool, 8 Resets & AI

Live data and full system access are what most of the answers above depend on. A basic reader gives you the code number and nothing to check it against.

$51.99Check pricePrices change often

Coverage varies by tool and by model year, so check a specific tool against a specific vehicle before buying.

Tools that read what you decoded

Common questions

What is the difference between a P0 and a P1 code?

A P0 code is a generic definition set by the SAE standard, so it means exactly the same thing on every manufacturer. A P1 code is manufacturer defined, which means the same number can describe completely different faults on two different makes. Looking up a P1 code in a generic list is a common way to end up diagnosing the wrong system.

Why can my scanner not read a B or C code?

Generic OBD-II is an emissions regulation, so what it guarantees access to is emissions related powertrain data. Body, chassis and network modules sit outside that guarantee. Reading them requires a tool with full system access, which is a real capability step rather than a marketing difference, and it is the main reason to move past a basic reader.

Does the last part of the code tell me which part failed?

No. The final digits identify a specific fault condition within a subsystem, such as a circuit reading low or a sensor disagreeing with another. They describe what the computer observed, not which component caused it. A circuit low code is set just as reliably by a corroded connector as by a failed sensor.

Are codes the same on cars sold outside the United States?

The generic SAE definitions are widely shared, and the European EOBD system uses the same code structure. What differs is which codes are mandated, which manufacturer-specific ranges are used and how the readiness monitors behave. The decoding structure here applies, but availability of any particular code does not.

What does a pending code mean?

A pending code is one the computer has seen on a single drive cycle but has not yet confirmed. Most emissions monitors need the fault to appear on two consecutive drive cycles before the lamp comes on and the code becomes stored. A pending code is genuinely useful: it is an early warning that is often still cheap to act on.