Disclosure
Auto Toolbox Guide is a participant in the Amazon Services LLC Associates Program. As an Amazon Associate, we earn from qualifying purchases.
An OBD2 trouble code starts with one letter naming the system: P (powertrain), B (body), C (chassis) or U (network). The second character is a digit: 0 or 2 means a generic SAE-defined code, 1 or 3 means a manufacturer-specific code. The third character names the sub-system, and the last two digits are the specific fault number.
The table decodes each character position of a standard 5-character OBD2 code. Read left to right: letter for system, digit for generic versus manufacturer, digit for sub-system, then the two-digit fault number.
Number of OBD2 code letters by vehicle system
| Code position | Character value | Meaning |
|---|---|---|
| 1st character | P | Powertrain: engine, transmission, emissions |
| 1st character | B | Body: airbags, seats, climate, lighting |
| 1st character | C | Chassis: ABS, steering, suspension |
| 1st character | U | Network: CAN bus and module communication |
| 2nd character | 0 | Generic code defined by SAE (e.g. P0xxx) |
| 2nd character | 1 | Manufacturer-specific code (e.g. P1xxx) |
| 2nd character | 2 | Generic code defined by SAE (e.g. P2xxx) |
| 2nd character | 3 | Manufacturer-specific code (e.g. P3xxx) |
| 3rd character (P) | 0 | Fuel and air metering, auxiliary emissions |
| 3rd character (P) | 1 | Fuel and air metering |
| 3rd character (P) | 2 | Fuel and air metering, injector circuit |
| 3rd character (P) | 3 | Ignition system or misfire |
| 3rd character (P) | 4 | Auxiliary emission controls |
| 3rd character (P) | 5 | Vehicle speed and idle control |
| 3rd character (P) | 6 | Computer output circuits |
| 3rd character (P) | 7 | Transmission |
| 3rd character (P) | 8 | Transmission |
| 4th-5th characters | 00-99 | Specific fault number within the sub-system |
- Generic SAE-defined code, same meaning on most vehicles
- Manufacturer-specific code, meaning varies by make and model
- Position or value descriptor
- OBD2 codes are 5 characters: 1 letter, 3 digits, then a 2-digit fault number
- First letter P = powertrain, B = body, C = chassis, U = network
- Second digit 0 or 2 = generic SAE code; 1 or 3 = manufacturer-specific
- Third digit splits the system into sub-systems numbered 0 to 8
- Generic P codes use sub-system digits 0-3; manufacturer P codes use 0-3 as well
How Do You Read an OBD2 Trouble Code Prefix Chart?
An OBD2 trouble code prefix chart is read left to right, because each of the five character positions carries a separate meaning. The chart’s columns list the code position, the allowed character value, and the meaning of that value, so you match each character in your code to its row.
Step-by-Step Reading
- Read the first letter to identify the system: P is powertrain, B is body, C is chassis, and U is network.
- Check the second digit to see who defined the code: 0 or 2 means a generic SAE code, while 1 or 3 means a manufacturer-specific code.
- Match the third digit against the sub-system rows, which run from 0 to 8 for P codes.
- Read the last two digits as the specific fault number, running from 00 to 99 within that sub-system.
The two thresholds that matter most are the second and third characters. A second digit of 0 or 2 tells you the code is generic and defined by SAE, while 1 or 3 means you need the manufacturer’s service data to interpret it. The third digit then narrows the fault to a sub-system, such as ignition or transmission on P codes.
As an Amazon Associate I earn from qualifying purchases.
Best budget pick: ANCEL AD310 Classic Enhanced Universal OBD II Scanner. The page explains OBD2 code prefixes, and this classic universal OBD II scanner is a straightforward way to read and clear the codes those prefixes describe on most vehicles.
- CEL Doctor: The ANCEL AD310 is one of the best-selling OBD II scanners on...
- Sturdy and Compact: Equipped with a 2.5 foot cable made of very thick...
What Factors Change the Values in an OBD2 Trouble Code Prefix Chart?
The prefix chart itself is fixed by the SAE J2012 / ISO 15031-6 standard, so the letter and digit meanings do not change from vehicle to vehicle. What shifts is how those values are applied in the real world: which codes a vehicle can actually set, how they are read, and how they are interpreted.
Vehicle Age and Model Year
Model year determines which code ranges a vehicle can actually report, because the standard has been expanded over time. Older vehicles built near the 1996 mandate use a narrower set of generic codes, while later vehicles can populate more of the sub-system digits and the P2xxx range. The chart’s values stay constant; the number of populated rows grows with newer vehicles.
Manufacturer-Specific vs. Generic Codes
The second digit is the single biggest variable in practice, because a 1 or 3 moves the code out of the SAE-defined set entirely. The same five-character format then maps to a fault that only the vehicle maker’s service data can decode. Generic codes (0 or 2) read the same across all makes; manufacturer codes do not.
Scan Tool and Protocol Support
Measurement method affects which codes you can retrieve, since a basic reader may only pull generic powertrain codes. Enhanced tools that support all protocols can access body, chassis, and network codes that a simple reader never displays. The chart lists four letters, but the tool determines how many of them you will actually see.
Operating Conditions at the Time of the Fault
Temperature and load affect whether a fault matures into a stored code, because many monitors only run under specific conditions. A code may appear as pending and never set until the enabling criteria are met. The prefix meaning is unchanged, but the code’s presence in memory depends on those conditions.
What Are the Most Common Mistakes When Using an OBD2 Trouble Code Prefix Chart?
Most misreads of an OBD2 trouble code prefix chart come from treating the five characters as a single number instead of four separate fields. Each position carries its own meaning, so a single slip in the second or third digit sends you to the wrong system or the wrong service procedure.
Errors to avoid
- Ignoring the second digit’s origin. A 1 or 3 in the second position marks a manufacturer-specific code, not an SAE generic one. Check that digit before searching a generic database, or look the code up in the maker’s service data instead.
- Reading the prefix as the fault itself. The letter and first three digits only identify the system and sub-system. The last two digits are the specific fault number, so always quote the full five characters when diagnosing.
- Assuming P sub-system digits apply everywhere. The 0-to-8 sub-system numbering shown for P codes does not carry over to B, C or U codes. Use the sub-system table that matches the letter you are reading.
- Confusing B and C systems. B codes cover body functions such as airbags and climate control, while C codes cover chassis functions such as ABS and steering. Match the letter to the correct system before ordering parts.
- Overlooking U codes as communication faults. A U prefix points to the network and module communication rather than a mechanical failure. Treat it as a wiring or bus issue first, not an engine problem.
Notes & Assumptions
- Values follow the SAE J2012 / ISO 15031-6 diagnostic trouble code definition standard
- Code format assumes the standard 5-character OBD2 code used from model year 1996 in the US
- Sub-system digit meanings shown are for P codes; B, C and U codes use their own sub-system numbering
- Manufacturer-specific codes require the vehicle maker's service data to interpret
Recommended Products
Autel AL319 Professional OBD2 Scanner Enhanced Code ReaderBest enhanced code reader
After learning how prefixes distinguish generic from manufacturer-specific codes, an enhanced code reader helps you pull and interpret the trouble codes your chart describes.
- 【TURN OFF CEL】 This AL319 car scanner diagnostic tool supports Reading...
- 【EXTENSIVE APPLICATION】 Autel AL319 Compatible with 7 languages...
FOXWELL NT301 OBD2 Scanner Live Data Diagnostic Code ReaderBest live data option
The chart teaches you what each code prefix means; this scanner adds live data so you can observe sensor behavior while diagnosing the codes you identify.
- 【Diagnose Check Engine Light in Seconds – No Mechanic Needed】The...
- 【Clear & Reset CEL with Confidence】Unlike cheap code readers that just...
OBDLink MX+ OBD2 Bluetooth Scanner for iPhone AndroidBest Bluetooth adapter
A Bluetooth OBD2 scanner lets you read codes on iPhone or Android, handy for looking up the prefixed codes from the chart while sitting in the vehicle.
- Turn your iPhone, Android device, or Windows PC into a professional grade...
- Recommended adapter for FORScan, Torque, BimmerCode, Dashcommand, AlfaOBD...
What Is the main point From an OBD2 Trouble Code Prefix Chart?
The single most useful rule is that every OBD2 code is exactly 5 characters: one letter, three digits, then a 2-digit fault number. The first letter names the system (P, B, C or U), and the second digit tells you whether the code is generic SAE-defined (0 or 2) or manufacturer-specific (1 or 3). Reading those first two characters correctly tells you where to look and which service data you need.
Frequently Asked Questions about Obd2 Trouble Code Prefix Chart
How do you read an OBD2 trouble code prefix chart?
Read the 5-character code left to right: the first letter names the system, the second digit tells generic versus manufacturer-specific, the third digit names the sub-system, and the last two digits are the fault number. For example, P0301 is a generic powertrain misfire code for cylinder 1.
What do the letters P, B, C and U mean in an OBD2 code?
P means powertrain (engine, transmission, emissions), B means body (airbags, seats, climate, lighting), C means chassis (ABS, steering, suspension) and U means network (CAN bus and module communication). The letter is always the first character, so it tells you which vehicle system to investigate first.
What is the difference between a generic and a manufacturer-specific OBD2 code?
A second digit of 0 or 2 marks a generic SAE-defined code, while 1 or 3 marks a manufacturer-specific code. Generic codes share the same meaning across brands, but manufacturer-specific codes need the vehicle maker's service data to interpret correctly.
Which third digit values apply to generic P codes?
Generic P codes use sub-system digits 0 to 3, covering fuel and air metering, injector circuits, ignition and misfire. Manufacturer P codes also use 0 to 3, so the third digit alone does not tell you whether a code is generic or manufacturer-specific.
Can I look up a manufacturer-specific code with a generic chart?
No, a generic prefix chart only explains the character positions, not the exact fault. Codes with a second digit of 1 or 3 vary by maker, so you need that manufacturer's service information to get the real definition and repair steps.
What are the most common mix-ups when reading OBD2 code prefixes?
The most common mix-up is confusing the second digit (generic versus manufacturer-specific) with the third digit (sub-system). Another is assuming B, C and U codes use the same sub-system numbering as P codes, which they do not.