When you scan your vehicle with an OBD2 scanner, you may see codes labeled as pending and others labeled as confirmed or stored. The difference between pending vs. confirmed OBD2 codes tells you exactly how certain the vehicle’s computer is about a fault, whether the check engine light should be on, and what action you need to take. They describe the same diagnostic system working at two different stages of fault verification.
My obd2 scanner different codes than mechanic covers this step by step.
My wired vs bluetooth obd2 scanner covers this step by step.
My my guide on read live data for misfire diagnosis covers this step by step.
My obd2 diagnostic link connector dlc explained covers this step by step.
My a j2534 pass thru device explained covers this step by step.
My obd2 modes explained modes 1 through 10 covers this step by step.
My what are obd2 pids and how do they work covers this step by step.
My a bidirectional obd2 scanner explained covers this step by step.
My my guide on reset injector coding covers this step by step.
My my guide on bleed abs brakes covers this step by step.
My why does check engine light come on after oil change covers this step by step.
About the author: Hello! I’m Kamil Siegień, founder of OBD2 Scout. My diagnostic experience started with an engine rebuild on a 2014 Skoda Superb 1.8 TSI, where tuning from 160 to 222 hp required mastering live data and ECU behavior that basic code readers cannot handle. I am a former BMW and MINI employee and regularly use diagnostic scanners on my own Audi A4 2.0 TFSI.
There is also a third type that most drivers have never heard of: permanent codes. These cannot be cleared by any scanner and exist specifically to close a loophole in emissions testing. Understanding all three types, and knowing which OBD2 service mode stores each one, will change how you read your scanner results and how you respond to them.
My obd2 electric vehicles ev diagnostics covers this step by step.
Pending vs. Confirmed OBD2 Codes at a Glance
The table below shows the key differences between all three code types at once. The rest of the article explains each one in depth.
| Feature | Pending Code | Confirmed Code | Permanent Code |
|---|---|---|---|
| Check engine light | Off | On | On |
| Trips required to set | 1 | 2 (typically) | Set after confirmed code |
| Clearable by scanner | Yes | Yes | No |
| OBD2 service mode | Mode $07 | Mode $03 | Mode $0A |
| Can self-clear? | Yes, if fault does not repeat | No, requires scanner or repair | Yes, only after repair and drive cycle |
| Vehicles affected | All OBD2 (1996+) | All OBD2 (1996+) | 2010 and newer |
What a Pending Code Means
A pending code is set on the first trip when the vehicle’s ECU detects a sensor reading or system behavior that falls outside its expected range. The ECU registers the fault internally but does not yet commit to it as a confirmed problem. The check engine light stays off. The code sits in Mode $07 waiting to see if the same fault happens again. My Innova 3100RS hands-on review covers whether this budget scanner accesses Mode $07 to display pending codes alongside stored ones and what the interface looks like when both code types are present.
The reason for this waiting period is practical. Temporary conditions cause false readings all the time. A loose fuel cap briefly disturbs the EVAP system. A bump in the road momentarily disrupts a wiring connection. Moisture on spark plug wires causes a one-time misfire. If the ECU triggered the check engine light for every single abnormal reading, drivers would be chasing phantom faults constantly. The pending stage filters out those glitches. My guide on what OBD2 is and how the fault detection system works covers what the ECU is monitoring, how it determines that a reading is outside the acceptable range, and how the confirmation cycle fits into the broader OBD2 fault detection design.
A pending code can resolve itself. If the ECU runs the same monitor on the next qualifying drive and the fault does not repeat, the pending code is automatically removed from memory. No scanner action required. If the fault repeats, the code progresses to confirmed status and the check engine light comes on. My guide on how to use an OBD2 scanner covers how to navigate to both the pending and confirmed code lists, what menu labels to look for across different scanner brands, and the steps to follow after finding either type.
What a Confirmed Code Means

A confirmed code, also called a stored code or active DTC, means the ECU has detected the same fault across multiple drive cycles and is now certain enough to alert the driver. The check engine light activates. The code is stored in Mode $03 and stays there until a scanner clears it or the battery is disconnected. My guide on when and how to clear OBD2 codes covers the correct sequence for clearing a confirmed code, why clearing without repairing guarantees the code returns, and the four situations where clearing is and is not the right move.
When a confirmed code is set, the ECU also captures a freeze frame. This is a snapshot of the engine conditions at the exact moment the code confirmed: engine speed, load, coolant temperature, fuel trim values, and sensor readings. Freeze frame data is one of the most useful diagnostic starting points because it shows you what the engine was doing when the fault was verified, not just what the fault code number is. My guide to reading and using OBD2 freeze frame data covers every parameter in that snapshot, how to read the operating scenario before interpreting individual values, and how to use the freeze frame to form a hypothesis before touching live data.
A confirmed code does not fix itself. Clearing it with a scanner without addressing the underlying cause will cause it to return, typically within the same or next drive cycle. The code number is the starting point for diagnosis, not the diagnosis itself. My guide on live OBD2 diagnostic data covers the parameters that turn that starting point into an actual diagnosis — what normal looks like for each one and which reading patterns point to the real cause.
The Two-Trip Detection Strategy
Most emission-related faults follow what the OBD2 standard calls a two-trip detection strategy. On the first trip, the ECU detects the fault and logs it as a pending code in Mode $07. On the second trip, if the same monitor runs under similar conditions and the same fault appears again, the code confirms: it moves to Mode $03 and the MIL activates. If the second trip does not reproduce the fault, the pending code clears automatically. Trax owners working through pending codes can find the recommended diagnostic tools for their model in my recommended OBD2 scanners for the Trax.
A “trip” in OBD2 terms is not simply turning the ignition on and off. A trip is a complete drive cycle in which the specific monitor responsible for that fault has run and completed its checks. Different monitors have different enabling conditions. The catalyst efficiency monitor, for example, only runs after the engine has reached full operating temperature and the vehicle has held a steady highway speed for a defined period. If those conditions are not met, the monitor does not run, and the trip does not count toward confirmation. My guide to running the OBD2 monitor reset sequence covers what a trip actually requires in OBD2 terms and why repeating the same short commute never satisfies the enabling conditions for most non-continuous monitors.
One important nuance most articles miss: not every fault waits for two trips. Some severe faults, particularly those involving serious misfires or direct sensor failures that pose an immediate emissions risk, can confirm in a single trip and skip the pending stage entirely. The two-trip strategy applies to most emission monitors, but it is not a universal rule for every code. My reference guide on what OBD2 codes are and how they are structured covers the full five-character format, how generic and manufacturer-specific assignments differ, and why those distinctions affect what the code number means for a specific vehicle.
Permanent Codes: The Third Type

Permanent diagnostic trouble codes (PDTCs) were introduced on 2010 and newer vehicles under OBD2 regulations to close a well-known loophole. Before permanent codes existed, a driver could clear stored codes with a scanner the night before an emissions inspection, temporarily turning off the check engine light. The vehicle would pass even though the underlying emissions fault had not been repaired. My guide on how different scanner tiers handle stored and pending codes covers what to expect from each capability level and why the display format matters for accurate diagnosis.
Permanent codes are written to non-volatile memory. A scan tool cannot erase them. Disconnecting the battery cannot erase them. The only way to clear a permanent code is to repair the underlying fault and then complete the required drive cycle so the relevant OBD2 monitor runs and passes. Once the ECU verifies through normal driving that the fault no longer exists, it removes the permanent code on its own.
My my guide on verify repair fixed obd2 covers this step by step.
My guide to how long before the check engine light turns off after clearing a permanent code covers the typical drive cycle count for each fault category and which monitors must complete before the ECU removes the permanent code on its own.
Common faults that generate permanent codes include catalyst efficiency failures (P0420) and large EVAP leaks (P0455). On vehicles manufactured before 2010, Mode $0A either returns empty or is unsupported entirely. If your scanner shows nothing under permanent codes, that is normal for older vehicles. My guide to OBD2 code categories and structure covers which code types support permanent status — only P-codes tied to emissions monitors — and why B, C, and U codes never generate PDTCs regardless of how many times the fault confirms.
History Codes: What Most Competitors Skip
A history code, sometimes called a past code or historical DTC, is a confirmed code that was once active but is no longer triggering the check engine light. This happens either because the fault became intermittent and the ECU stopped detecting it, or because someone cleared codes previously and the fault has not yet re-confirmed. My detailed Foxwell NT630 Plus walkthrough covers a mid-range scanner that displays history codes in a separate list, so the diagnostic trail from a previous session remains visible even after the code was cleared.
History codes do not activate the MIL. They remain stored as a diagnostic trail. A technician reviewing history codes can see patterns: which systems have faulted in the past, whether the same code has appeared and cleared multiple times, and whether a current driveability complaint connects to a past fault. For intermittent problems, history codes are often more useful than confirmed codes because they show what happened before the customer brought the vehicle in. My complete Autel MaxiSYS Elite II Pro review covers a professional scanner where confirmed, pending, permanent, and history codes are displayed in separate organized views — the format that makes a multi-code vehicle readable rather than overwhelming.
Not all scan tools display history codes separately. Full-featured OBD2 scanners and professional diagnostic tools typically differentiate between active, pending, history, and permanent codes. Basic code readers may group everything under “stored codes” or show nothing for codes that are no longer active. My guide to full-system OBD2 scanner options covers the models that separate confirmed, pending, permanent, and history codes into distinct views — and which systems beyond powertrain support the same multi-tier code access.
What Your OBD2 Scanner Actually Shows

OBD2 organizes its diagnostic data into numbered service modes. Each type of code lives in a different mode, and your scanner queries these modes when it performs a scan. Understanding which mode holds which data explains why two different scanners can show different results on the same vehicle. My guide to professional-grade OBD2 diagnostic tools covers the scanners where all service modes — including Mode $07 for pending codes and Mode $0A for permanent codes — are supported across every vehicle in the coverage list.
- Mode $03 returns confirmed (stored) DTCs. Active codes with the check engine light on live here.
- Mode $07 returns pending DTCs. First-trip faults the ECU has not yet confirmed live here.
- Mode $0A returns permanent DTCs on 2010 and newer vehicles. Regulatory codes that cannot be manually cleared live here.
- Mode $02 returns freeze frame data, the snapshot of sensor readings captured when a confirmed code was set.
- Mode $01 returns live data, the real-time sensor readings the ECU is seeing right now.
A basic OBD2 code reader typically queries only Mode $03. If there are pending codes in Mode $07, a basic reader returns no codes and the driver assumes nothing is wrong. A full OBD2 scanner queries all relevant modes in a single scan and labels each code with its status: pending, confirmed, or permanent. For intermittent faults that have not yet confirmed, a full scanner is the only way to see what the ECU has already flagged. My guide to entry-level OBD2 scanners that read pending codes covers which budget models access Mode $07 and display both code types in separate lists, so pending faults are visible before they confirm and trigger the light.
Which Systems Generate Pending Codes Most Often
My guide on the check engine light on with no codes stored covers why the ECU turns on the light before confirming a fault and how to find the pending code a basic scan misses.
Some systems are significantly more likely than others to generate pending codes before they confirm, because the faults they detect tend to be condition-dependent or intermittent by nature.
EVAP system: Small evaporative emissions leaks only show up under specific combinations of fuel level, ambient temperature, and barometric pressure. The EVAP monitor may attempt and fail multiple times before the conditions align for a full confirmation. EVAP pending codes can linger for days before progressing. My guide on OBD2 readiness monitor enabling conditions covers exactly why EVAP is the last monitor to complete and what fuel level, temperature, and ambient conditions the ECU requires before running the EVAP test.
Oxygen sensors and fuel trim: A marginal O2 sensor heater circuit may only perform outside its threshold during cold starts or at idle. The ECU catches it once but cannot reproduce the condition consistently on subsequent warm trips. Fuel trim codes driven by small vacuum leaks behave the same way. My guide on how to read and decode OBD2 trouble codes covers how to look up each code once it confirms — the lookup strategy for generic versus manufacturer-specific codes and how to use freeze frame to narrow the cause before replacing any parts.
Catalyst efficiency: A catalyst that is slowly degrading passes on some trips and fails on others. The efficiency monitor compares upstream and downstream oxygen sensor activity, and a borderline catalyst can flip back and forth across the threshold before finally confirming.
My my guide on test o2 sensor covers this step by step.
MAF and MAP sensors: A dirty mass airflow sensor or a small intake air leak produces inconsistent readings depending on engine load and temperature. The ECU may flag a pending code on a cold start that disappears once the intake warms up.
My my guide on read maf sensor data covers this step by step.
My my guide on read map sensor data covers this step by step.
Misfire monitoring: Borderline ignition components, low fuel quality, or moisture in the ignition system can cause intermittent misfires the ECU detects once but cannot reproduce reliably. These often generate pending misfire codes that owners discover only when they scan for a different reason.
My my guide on diagnose misfires covers this step by step.
What to Do for Each Code Type
When you find a pending code with no check engine light, record the code number and the driving conditions at the time of the scan. Do not clear it. Let the vehicle complete a few normal drive cycles and rescan. If the code disappears, the fault was likely a temporary glitch. If it progresses to confirmed, you have a real fault to diagnose. The key point: a pending code that has appeared even once is worth monitoring. If the pending code appears during a pre-purchase inspection rather than on your own vehicle, my guide to used car OBD2 inspection covers how to use any code type as a documented finding in the price negotiation.
When you find a confirmed code, pull the freeze frame data before you do anything else. The freeze frame tells you engine load, speed, temperature, and fuel trim at the moment of confirmation. Write down the code number, note the freeze frame data, and then begin diagnosing the root cause. Clearing the code without repairing the fault accomplishes nothing because the code will return as soon as the ECU runs the relevant monitor again. My guide on what a diagnostic visit costs covers how to use your code findings to arrive at the shop informed and avoid paying for work you can triage yourself.
When you find a permanent code, clearing it with a scanner is not an option. The only path is to repair the underlying fault and then drive the vehicle through the required drive cycle so the monitor can run and verify the repair. Most permanent codes clear within a few days of normal driving after a proper repair. Rescan afterward to confirm the permanent code is gone before taking the vehicle to an emissions inspection.
One rule applies across all three types: if the check engine light is flashing rather than solid, stop driving as soon as it is safe to do so. A flashing MIL almost always indicates an active misfire severe enough to damage the catalytic converter. A flashing light is not a code to monitor; it is a signal to stop and diagnose immediately.
My the malfunction indicator light mil explained covers this step by step.
This applies regardless of whether the dashboard reads ‘Check Engine’ or ‘Service Engine Soon’; my guide to the service engine soon vs check engine light comparison covers which manufacturers use that alternate name and confirms the flashing threshold and required response are the same across all variants.
My guide on the flashing check engine light vs solid explains the ECU mechanism behind the flash, the Type A misfire threshold that triggers it, and what the catalytic converter temperature reaches when you keep driving anyway.
Pending and Confirmed Codes at an Emissions Test
A pending code alone, with no check engine light, may not cause an immediate failure at an emissions inspection. Most state programs check whether the MIL is on, not whether Mode $07 contains pending codes. However, a pending code that confirms during the drive to the testing station will turn on the check engine light before you arrive, and that confirmation automatically fails the test.
Confirmed and permanent codes with an active MIL always result in a test failure. There is no workaround. Clearing confirmed codes with a scanner the night before the test does turn off the check engine light, but it also resets all OBD2 readiness monitors. Emissions inspectors check monitor completion status separately. Arriving with too many incomplete monitors is its own reason to fail or be turned away, depending on your state’s rules. The correct sequence is always: repair first, complete the drive cycle, verify monitors are ready, then test. My guide to the OBD2 pre-test scanner check covers the three criteria the inspector reads and how to work through each one before booking the appointment.
The Bottom Line
The difference between pending vs. confirmed OBD2 codes is the difference between the ECU raising a first suspicion and the ECU committing to a verified fault. Pending means the ECU saw it once and is watching. Confirmed means it saw it twice and is certain. Permanent means it was confirmed and will not leave until the repair is done and proven.
My guide on what makes confirmed codes reappear after a scanner clear covers the full reconfirmation sequence for each code type and how the permanent code category changes what repair completion actually means.
My guide on whether it is safe to drive with the check engine light on explains how code type determines drivability risk and the specific situations where a confirmed fault means stopping now versus scheduling a repair.
Treating all three as the same thing leads to missed faults, wasted repairs, and failed inspections. A scanner that reads all three OBD2 service modes gives you the full picture. A basic code reader that only reads Mode $03 leaves you blind to pending faults and permanent codes, which together can tell you as much about a vehicle’s condition as the confirmed codes most people focus on.
FAQs
Can a pending code go away on its own?
Yes. If the ECU runs the same monitor on a subsequent drive cycle and the fault does not repeat, the pending code is automatically removed from memory without any scanner action. This is the ECU filtering out temporary glitches. However, a pending code that disappears on its own but reappears repeatedly across multiple scans is telling you the fault is intermittent, not resolved. Intermittent faults that keep generating pending codes should be diagnosed before they confirm.
Does a pending code mean my car needs repair right away?
Not necessarily. A pending code with no check engine light and no noticeable change in how the vehicle drives can be monitored over a few drive cycles before acting. If it self-clears, the cause was likely temporary. If it confirms, you have a fault that needs attention. The exception is any symptom that accompanies the pending code: rough running, poor fuel economy, hard starting, or a flashing check engine light. Those warrant immediate diagnosis regardless of code status.
Why does my scanner show no codes when the check engine light is on?
This usually means the scanner is only reading Mode $03 (confirmed codes) and either the fault is still pending in Mode $07, or the scanner is not communicating correctly with the ECU. A full OBD2 scanner that queries all service modes will capture confirmed codes, pending codes, and permanent codes in a single scan. If the check engine light is on, a confirmed code should exist in Mode $03 on any scanner with proper ECU communication. If nothing appears, check whether the scanner supports the vehicle’s OBD2 protocol and whether the ignition is fully on during the scan.
What is the difference between a pending code and a confirmed code on a scanner readout?
On a scanner display, a pending code is typically labeled “Pending DTC” or listed under a separate pending codes section, while a confirmed code appears under “Stored DTCs,” “Active Codes,” or “Confirmed Faults.” Both use the same DTC number format (P0, B0, C0, U0), so the status label is the only visual distinction. Understanding the difference between pending vs. confirmed OBD2 codes on your scanner readout matters most when diagnosing intermittent faults, because a pending code with no check engine light is easy to overlook on a basic reader that does not separate the two lists.

