17 August 20238 minute read

Understanding DTC Codes for Delivery Vehicles


Quickly overcome delays from vehicle breakdowns and finish deliveries on time with Circuit for Teams.

When your delivery vehicle’s check engine light (CEL) turns on, DTC codes are the language your vehicle’s computer uses to tell you what’s wrong. 

They’re standard in all delivery vehicles — from compact SUVs to commercial cargo vans.

DTC is short for “diagnostic trouble codes.” 

And you might find them called engine trouble codes, check engine codes, or fault codes.

Different DTCs could trigger your check engine light (technically called the malfunction indicator lamp or MIL). 

Triggers can range from critical issues — like the engine overheating or brake failure — to minor problems, like an air conditioning malfunction or a loose gas cap. 

The light alone doesn’t tell you what’s happening.

So, what should you tell your driver to do when that ominous check engine light turns on?

First of all, don’t freak out. 

The car isn’t about to blow up (probably…), and you both have some time to address the problem.

I explain how DTC codes work, which types of DTC codes you might find, and what to do once you’ve got a DTC code from your vehicle.

Circuit for Teams is a simple software for optimizing routes with multiple drivers.

What is a DTC code?

Diagnostic trouble codes (DTCs) are the five-digit alphanumeric codes triggered by a vehicle’s onboard diagnostics (OBD) computer when the vehicle experiences a malfunction.

An example might be P0420 (which I’ll explain later in the article).

OBD systems are built into most vehicles to give early warnings about car troubles.

Vehicle manufacturers of the Society of Automotive Engineers (SAE) designed the first standardized DTCs to monitor a vehicle’s emissions and trigger alerts if emissions rose higher than legal levels.

Today’s vehicles have even more DTCs — everything from the powertrain to the passenger compartment.

When one or more DTCs are triggered, the vehicle’s check engine light lights up to let you know about the fault in the vehicle. 

You can then read the specific DTC code(s) to diagnose the issue.

How are DTC codes generated?

The vehicle’s OBD system is responsible for DTCs, which consist of a “black box” computer and a collection of connected sensors.

There are two types of OBD systems:

  • OBD-I systems are found in vehicles built in the early 1990s. They are responsible for two-digit DTCs that vary from brand to brand.
  • OBD-II systems were made standard for all US cars in 1996. These use standardized DTC codes. Some manufacturers still add their own codes, but the OBD-II standard DTC codes are mandated by law.

The OBD computer receives signals from connected vehicle sensors. 

Then, it analyzes those signals to determine whether they should trigger a DTC.

If a minor fault is detected for a second or two, the OBD will sense that fault but not always come up with a DTC code. 

This is because the OBD has built-in “debouncing” rules that help prevent the check engine light from being triggered by bogus trouble codes.

For example, when you start the vehicle’s ignition, the engine needs time to start up. 

You wouldn’t want the OBD to report a DTC just because it detected a slight delay in one of the car’s components at startup. 

The OBD prevents this by using rules that only trigger a DTC code if the OBD detects faults for a certain length of time or a certain number of times.

When a true fault passes the OBD’s debouncing rules, that verified fault is stored in the OBD’s memory and triggers your check engine light. 

The DTC fault data stays in the OBD’s memory and keeps your check engine light turned on until the fault is repaired.

That means when you see your check engine light turn on, it’s not just a fluke (unless your check engine light is malfunctioning, but that’s another issue for another post).

And since your OBD can come up with multiple DTCs at once, sometimes the check engine light means you have even more than one message waiting for you in your OBD scan tool (more on that below).


Types of DTC codes

DTC codes are nicely categorized into four groups — designated by the code’s first character.

First character – system letter

  • P (powertrain): Codes relate to the engine, transmission, fuel system, ignition, and other drivetrain components, such as the vehicle’s throttle.
  • B (body): Codes relate to the safety and comfort mechanisms of the driver’s passenger compartment area, like the seat belts, airbags, and air conditioning.
  • C (chassis): Codes relate to the mechanical framework of the vehicle, including the steering system, suspension, tires, and brakes.
  • U (network): Codes relate to the vehicle’s onboard computer (OBD) and its connected network sensors, including the wiring.

Second character – type number

This number indicates whether the code is a standardized SAE code (0) or specific to the manufacturer (1). 

If your DTC code indicates that it’s a manufacturer-specific code (1), you’ll need to refer to the manufacturer’s information for further details on the rest of the code’s meaning.

Third character – subsystem number

When the code’s second character (see above) is a 0 — meaning your DTC code is standard — the third character in the code (0-8) indicates which subsystem in the vehicle is affected:

  • 0 – fuel and air metering, plus auxiliary emission control
  • 1 – fuel and air metering
  • 2 – injector circuit malfunctions in fuel and air metering
  • 3 – ignition system or misfire issue
  • 4 – emission control system
  • 5 – vehicle speed control, idle control system, auxiliary inputs
  • 6 – computer circuits
  • 7-8 – transmission

Fourth and fifth characters – 2-digit fault index number

The last two characters in the DTC are read together as a two-digit number called the fault index number, which indicates the exact issue within the vehicle’s subsystem. 

Numbers range from 0 to 99.

Examples of DTC codes

Powertrain (P) codes are the most common, so let’s look at two powertrain DTCs that might come up during your time as a delivery manager or dispatcher.

P0420 or P0430

These two DTC codes indicate a problem with the vehicle’s catalytic converter.

Here’s a breakdown of their characters:

  • P – Powertrain
  • 0 – Standard SAE Code
  • 4 – Emission Control System
  • 20 – Catalyst System Efficiency Below Threshold (Bank 1)
  • 30 – Catalyst System Efficiency Below Threshold (Bank 2)

The bank number indicates which side of the engine the fault was detected on.

Both the P0420 and P0430 codes indicate that the catalytic converter has stopped efficiently converting harmful emission gasses into acceptable emission gasses. 

You will need to fix your catalytic converter to avoid failing a vehicle emissions inspection, but you don’t need to worry that your vehicle will go kablammy on the way to wherever your driver is headed next — no crazy tow truck fees are needed!

(See our post on how to understand and improve CSA scores for more info on vehicle inspections.)

Other powertrain DTC codes you might see include:

  • P0101 – Mass Air Flow (MAF) Circuit/Performance Malfunction
  • P0110 – Intake Air Temperature Sensor Circuit Malfunction
  • P0113 – Intake Air Temperature Circuit High Input (Sensor 1)
  • P0118 – Engine Coolant Temperature Sensor Circuit High
  • P0135 – O2 Sensor Heater Circuit Malfunction (Bank 1, Sensor 1)
  • P0141 – Oxygen Sensor Heater Circuit Malfunction (Bank 1, Sensor 2)
  • P0171 – Fuel System Too Lean (Bank 1)
  • P0232 – Fuel Pump Secondary Circuit High
  • P0325 – Knock Sensor Malfunction (Sensor 1, Bank 1)
  • P0340 – Camshaft Position Sensor Circuit Malfunction
  • P0351 – Ignition Coil Malfunction
  • P0401 – Exhaust Gas Recirculation (EGR) Flow Insufficient
  • P0410 – Secondary Air Injection System Malfunction
  • P0442 – Evaporative Emission Control System Leak Detected (Small Leak)
  • P0448 – Evaporative Emission (EVAP) Vent Control Short Circuit
  • P0462 – Fuel Level Sensor Circuit Low Input
  • P0507 – Idle Control System RPM Higher Than Expected
  • P0558 – Brake Booster Pressure Sensor Circuit High
  • P0605 – Internal Control Module Read Only Memory (ROM) Error
  • P0620 – Generator Control Circuit Malfunction
  • P0654 – Engine RPM Output Circuit Malfunction
  • P0700 – Transmission Control System Malfunction
  • P0705 – Transmission Range Sensor Circuit Malfunction
  • P0745 – Pressure Control Solenoid Malfunction
  • P0894 – Transmission Component Slipping

How to extract DTC codes

There are two main tools you can use to read DTC codes:

  • Code scan tool: OBD scanners are widely available and commonly used by mechanics to read a vehicle’s DTC codes. You or your driver can use one too. The scanner plugs into your vehicle’s OBD-II connector below the steering wheel and displays DTC information from the OBD computer. (Vehicles made before 1996 will likely need a special OBD-I scanner.)
  • Telematics: New vehicles often come with built-in telematics systems that can send you automatic DTC alerts through an online portal. Depending on your telematics software, you may see DTC codes along with details on their meaning and suggestions for how to take action.

OBD-II and J1939 compliance explained

Since Jan. 1, 1996, all light consumer vehicles made in the United States must be OBD-II compliant, meaning the vehicle needs an OBD-II computer and a compatible OBD-II port to plug into. 

In addition, all OBD-II-compliant vehicles display standardized DTC codes through OBD-II code scanners.

If your vehicle was built before 1996, it might have an older OBD-I system that uses old DTC codes and OBD-I scanners.

Commercial vehicles with diesel engines (like heavy-duty trucks, buses, tractors, and military tanks) are different. 

Instead of an OBD-II port, they use the J1939 protocol through the vehicle’s controller area network bus (CAN bus) for vehicle diagnostics.

In the early 1990s, the SAE introduced the J1708 protocol as the first version of commercial diagnostics, which worked for the next 15 years. 

However, vehicle manufacturers began adopting the upgraded J1939 protocol in the mid-2000s, allowing more data to be collected from more sensors in more advanced vehicles.

Today, J1939 is still used as the primary protocol for heavy-duty diesel vehicles.

However, two different J1939 connectors appear in vehicles based on their manufacturing date:

  • Black J1939 connectors are in 2015 and older commercial vehicles.
  • Green J1939 connectors are in 2016 and newer commercial vehicles.

The new green connectors can handle faster data speeds to support more traffic (sensor data) created by even more advanced vehicles.

If you have a J1939 code reader that fits into an older black connector, it won’t fit into a new green connector (unless you get an adapter). 

You’ll need a J1939 reader with a new green connector to plug into more recent vehicles.

Not sure if your vehicle is OBD-II or J1939 compliant? 

The best approach is to consider the manufacturing year of the vehicle. 

If that doesn’t help, check your vehicle’s manual, look online, or ask your dealership.

Easily manage your vehicles with Circuit for Teams

Understanding the DTC codes that triggered a check engine light can help you decide on the next steps to take for your ailing delivery vehicle.

But what about your customers?

When one of your commercial vehicles breaks down on the road, you’ll need to think fast about how to handle any packages in the back that still need to be delivered — or any pickups your driver is still scheduled to complete.

Don’t worry. We’ve got these little obstacles covered too. 

While your code reader takes care of your vehicle, Circuit for Teams helps take care of your sudden delivery hiccup.

Circuit makes it easy to rearrange delivery routes and driver schedules, even at the last minute. 

If a vehicle unexpectedly ends up out of service, for example, you can send another vehicle over right away to transfer the load and get those packages back on track for on-time delivery.

Circuit also lets you send estimated time of arrival (ETA) notifications, so if you need to let customers know their delivery is going to be a bit late, no problem.

Try Circuit for Teams for free

Circuit for Teams is a simple software for optimizing routes with multiple drivers.

About the author

Heather Reinblatt
Heather ReinblattContributor

Heather Reinblatt is a managing editor currently living in St. Louis, Missouri. She spends her free time reading, trying new recipes, and cuddling her cat Paisley. You can find Heather on LinkedIn.


Reduce your delivery costs by 20% with Circuit for Teams

Logistics map interface showing the New York afternoon delivery run with route lines and list of addresses