The last thing you want to see for any of your vehicles is a Diagnostic Trouble Code (DTC).

Trucks, cars, and other vehicles use onboard diagnostic systems to warn drivers of potentially hazardous vehicle malfunctions, from tire pressure to high engine temperature and ABS brakes. DTCs are part of a critical safety infrastructure meant to ensure proper and safe operation of the vehicle.

If you’ve ever paged through the hundreds of pages of a truck or car manual, you know that DTCs can get complicated. And it can be one of many warning lights on a dashboard, which is why most fleet safety management software integrates directly with onboard diagnostic systems — so fleet managers can rest easy knowing they’ll get an alert anytime something goes wrong with a vehicle.

Here’s what you need to know about DTC codes the next time you get an alert on your fleet management software:

What is a DTC code?

DTC codes, also known as DTC faults or check engine codes, indicate a part of the vehicle is malfunctioning. These codes specify a particular problem area so technicians can accurately diagnose the problem and solve it. These DTC codes can only be accessed through interfacing directly with the onboard diagnostic system — so while a driver might see the check engine light, tire light, or oil light, only a mechanic or integrated fleet management system would be able to see the specific code causing the malfunction.

Vehicle manufacturers first introduced DTC codes in 1996 in response to the Clean Air Act of 1995 and new regulations from the EPA, which required a computer to monitor emission levels to ensure compliance. Today, all vehicles come equipped with an onboard diagnostic system computer that monitors every element of the vehicle, not just emissions.

How do DTC codes work?

Vehicles come with several types of DTC codes:

  • OBD-I codes work in automobiles from before the 1990s, and are generally not used today. They’re directly connected to the console of your vehicle.
  • OBD-II codes work in automobiles and light trucks and have more accurate, detailed diagnostic capabilities so mechanics can pinpoint specific issues with a vehicle’s operation.
  • J1939 codes are similar to OBD-II codes, but they work for commercial vehicles and heavy-duty trucks.

Regardless of which overall kind of vehicle diagnostic code is operating in your fleet, they’re a set of standard codes designed for any mechanic or technician to interpret to quickly and easily fix whatever is malfunctioning in  your vehicle. When the onboard diagnostic system detects a problem, it triggers the corresponding DTC code — a series of numbers and letters — which show as warning lights or codes on the dashboard for the driver. If you’re using a fleet management system like Netradyne, then you’ll be able to automatically see any triggered DTC code in your dashboard.

Within the OBD-II and J1939 engine diagnostic codes, you have critical codes and non-critical codes:

  • Critical codes indicate immediate action is necessary. These are urgent malfunctions that can cause serious damage to the vehicle or harm the driver or passengers. Most codes that start with “P” or “C” (see below) are identified as critical systems, such as engine overheating, brake failure, or fuel leaks.
  • Non-critical codes still require you to take action, but don’t necessarily require a vehicle to be towed or resolved immediately. Examples of non-critical codes are codes that refer to emissions issues or internal systems like the radio or A/C unit that offer comfort.

As part of your fleet safety management program, train your drivers never to ignore warning lights. While fleet managers may be able to see DTC codes and other warning lights with real-time diagnostics through a DTC scanner, it’s still important for driver safety and vehicle maintenance to stay on top of any warning lights and address them as quickly as possible.

How do you interpret DTC codes?

What does each DTC stand for? DTC codes look slightly different based on whether it’s the OBD II or J1939:

How to interpret OBD-II DTC codes

DTC codes are five characters long, starting with a letter that indicates the overall problem area of the malfunction:

  • P refers to the powertrain, which includes the engine, transmission, and fuel systems
  • C refers to the chassis, which includes steering, suspension, and brakes
  • B refers to the body, which includes systems inside the car, such as A/C 
  • U refers to the network, which includes all onboard computer systems

The Society of Automotive Engineers created a standard DTC list that every manufacturer uses, so you’ll always be able to understand what to do immediately should a vehicle malfunction. However, it’s important to know that manufacturer-specific DTC codes do exist, so be sure to have the correct manual based on the make and model of every vehicle in your fleet, so you can more easily interpret them.

The second letter of the DTC code indicates whether or not the code is a standard or manufacturer-specific code. 

  • 0 indicates a standard code across all vehicles
  • 1, 2, or 3 indicates a manufacturer-specific code, with 2 and 3 relatively rare occurrences

Once you know what section of the car you’re dealing with, and whether it’s a standard error code or a manufacturer code (and so, which type of manual you need), the third letter determines the subsystem:

  • 1 or 2 indicates an issue with fuel or air metering
  • 3 indicates an issue with the ignition
  • 4 indicates an issue with the emissions system
  • 5 indicates an issue with vehicle control or speed
  • 6 indicates an issue with computer circuitry
  • 7 and 8 indicate issues with the transmission

The fourth and fifth letters in the code are actually read together, as a two-digit number. So if you see a code that says P0246, you would actually read it as P-0-2-46. This identifies the exact issue happening with the vehicle, so you know which system to check, which subsystem to check, and what’s causing the malfunction down to a rubber hose or clogged valve. 

Let’s put it all together with an example. Say you receive a notification on your fleet management system that one of your vehicles triggered the DTC code P0300. “The letter “P” tells you right away that something is wrong with the engine, transmission, or fuel. 0 means it’s a standard DTC code, and 3 identifies the ignition as the issue, while 00 refers to the cylinders. P0300 DTC code meaning is “Random or Multiple Cylinder Fires Detected” and is often triggered in conjunction with codes from P0301-P0308, which indicate the specific cylinders that are misfiring.

Here’s a common ECU fault code list:


CodeIndicates Issues With
P0420 or P0430Catalytic converter 
P0141Oxygen sensor
P0445 or P0446EVAP system
P0101Air flow
P0171 or P0174Fuel consumption
C0221ABS/Wheel speed sensor


How to interpret J1939 DTC codes

J1939 codes are four characters long, with each character representing a system that, taken together, points you toward the specific problem for your vehicle.

This includes:

  • Suspect Parameter Number (SPN) represents the overall system affected by the malfunction, which corresponds to a standard set of numbers.
  • Failure Mode Identifier (FMI) represents the nature and type of the error.
  • Occurrence Counter adds up the number of times this error occurs for every SPN.
  • SPN Conversion Method (CM) represents the byte alignment for the DTC code.

How to read DTC codes in your vehicle step-by-step

The good news? Neither you nor your drivers need to memorize any DTC codes. Whether they’re manufacturer-specific or a standard code, they’re easy to look up —  you’ll automatically have a definition handy.

If you’re not using a fleet management system and you have vehicles with a check engine light, here’s how to read the specific DTC code to diagnose the problem:

  1. Insert an OBD scanner tool to the OBD port, generally located under the driver’s side dashboard or near the pedals.
  2. The scanner tool will power up and should immediately show a series of letters and numbers. This is your DTC code. 
  3. It may flash through multiple codes and include some definitions and translations of the DTC code. Write down the codes in the order they are displayed.
  4. Use the code to determine which system and fault is occurring.

You may also see codes like HRT and INC on your code reader or through your fleet management system. “HRT” refers to the oxygen sensor heater monitor, and you may see other codes that reference specific sensors, like HCAT (Heated Catalyst Monitor) or AIR (Secondary Air System Monitor). You may also see status updates on your scanner, like “READY” or “INC.” INC refers to “Incomplete” which means the diagnostic system has not completed a full check of the system.


Netradyne provides cutting-edge technologies in AI, ML and Edge Computing to help reduce accidents by creating a new safe driving standard for commercial vehicles. Our industry solutions reduce driving incidents and protect against false claims. We empower drivers by providing them with more awareness of risky driving behavior and reward safe driver decision-making.

Watch the Recent Webinar with Idelic!

Reducing Fleet Liability: Acting on Your Driver Data
July 15, 2021 at 2pm EST
Watch Now
profile Image


Web Admin