A pending code is a fault the car's computer has seen once but not confirmed. A stored (confirmed) code is a fault it has seen again and confirmed, which turns on the check engine light. A permanent code is a copy of a confirmed code that a scan tool or battery disconnect can't erase; only the car clears it, after the fault is gone.

Key takeaways

  • Pending ($07): seen once, usually on a single drive. The light stays off. It's erased if the next drive where that test runs is clean.
  • Stored or confirmed: seen again on the next drive. The light comes on.
  • Permanent: a copy of the confirmed code kept in memory that survives clearing. The car erases it only after confirming the fault is gone.
  • Clearing codes doesn't clear permanent ones. California's BAR says so plainly.
  • Inspection: California's Smog Check fails 2010-and-newer cars with a permanent code, unless enough driving has happened since the last clear.

Three Lists, Three Requests

An OBD-II engine computer doesn't keep one list of codes. It keeps several, and a scan tool reads each with a separate standard request, called a mode or service:

ListWhat it holdsCheck engine light
PendingFaults detected during the current or last drive, not yet confirmed (California's rule calls this request Mode $07)Off
Stored (confirmed)Faults that have been confirmedOn while the fault is active
PermanentConfirmed codes kept in memory that can't be clearedUsually on when first stored

A separate request clears codes and stored values. It wipes the pending and stored lists. It does not touch the permanent list.

Good scan tools label which list a code came from. Basic readers sometimes show only stored codes, or mix the lists together, so it's worth checking your tool's labels. If you're new to the code format itself, read what a DTC is first.

Pending Codes ($07): Seen Once

California's OBD regulation defines a pending code as the code "stored upon the initial detection of a malfunction (e.g., typically on a single driving cycle) prior to illumination of the MIL."

In plain terms, the computer saw something wrong once and wrote it down, but it isn't sure yet. The light stays off.

What happens next depends on the next drive where that same self-test runs:

  • The fault shows up again: the light comes on and the code becomes confirmed.
  • The fault doesn't show up: the regulation says the pending code "shall be erased at the end of the driving cycle."

Pending codes are useful early warnings. They're also handy after a repair: if you fix something, clear codes and a pending code appears on the next drive, the fix didn't take.

Some monitors take longer to confirm. California's rule allows manufacturers, with approval, to use statistical protocols that take up to 12 driving cycles on average for the smallest EVAP leak, the kind behind codes like P0456.

Stored Codes: Confirmed

A confirmed code is, in the regulation's words, the code "stored when an OBD II system has confirmed that a malfunction exists (e.g., typically on the second driving cycle that the malfunction is detected)." At that point the check engine light comes on.

This is what most people mean by "the code": the thing a parts store reader shows, and what a federal OBD inspection reads with a standard request.

A stored code goes away in one of two ways:

  • Cleared with a scan tool or by disconnecting the battery. This also turns the light off and resets the readiness monitors. See how to clear the check engine light.
  • Erased by the car itself. The light goes out after three driving cycles without the fault, and the code is erased after 40 engine warm-up cycles without it. Until then you can have the light off with the code still stored, which is covered in check engine light off but code still there.

Permanent Codes: The Ones You Can't Clear

California's regulation defines a permanent code simply as "a confirmed fault code that is stored in NVRAM," meaning memory that survives losing power. California's Bureau of Automotive Repair (BAR) adds the part that matters to owners: permanent codes "cannot be erased by clearing the DTCs with a scan tool or by disconnecting the vehicle's battery."

The point of a permanent code is to stop a fault from disappearing just before an inspection. Clearing the light doesn't clear the evidence.

How a permanent code does clear. Only the car's computer erases it, and only after it confirms the fault is gone. The regulation describes two paths:

  1. If the light is on: the permanent code is erased when the light goes out on its own. That is, after the monitor that set it runs on three drives in a row without finding the fault.
  2. If someone cleared the codes: the permanent code is erased at the end of a drive where the monitor that set it runs and finds no fault. For some monitors, including misfire and fuel system, the rule adds extra driving conditions before that drive counts.

So the way to get rid of a permanent code is to fix the cause, then drive normally until the matching self-test runs and passes. There's no shortcut with a scan tool.

Which monitor matters? The permanent code tells you. A permanent P0420 clears when the catalyst test runs and passes; a permanent P0442 needs the EVAP test, which has narrow run conditions. The gas cap guide explains those conditions.

The Life of a Code, Start to Finish

Here's how one fault moves through the lists. Take a small EVAP leak as the example.

StagePendingStoredPermanentLight
Drive 1: test runs, leak foundYes——Off
Drive 2: test runs, leak found againYesYesYesOn
Owner clears codes with a scan tool——YesOff
Next drive where test runs, leak still thereYes—YesOff, then on again once confirmed
Leak repaired; test runs and passes——ErasedOff

Two lessons come out of that table:

  • Clearing doesn't reset the story. The permanent code stays, and an unrepaired fault comes straight back.
  • The fix is confirmed by driving. Only a passing self-test removes the permanent code.

If you have several codes moving through these stages at once, the multi-code tool shows which is likely the primary one.

What This Means for Inspection

Rules vary by state, but the federal OBD inspection rule (40 CFR 85.2222) sets the baseline:

  • Stored codes with the light on fail. The rule says codes "resulting in MIL illumination" mean the vehicle "shall fail."
  • Not-ready monitors can fail too. 1996–2000 models may have two unset monitors and 2001-and-newer models one. Clearing codes resets monitors, and Ohio's E-Check program rejects cars that aren't ready.

California goes further. Since July 1, 2019, BAR has included permanent codes in Smog Check failure criteria for 2010-and-newer vehicles. There's one built-in allowance: BAR ignores a permanent code once the car "has completed at least 15 warm-up cycles and been driven at least 200 miles since its OBD information was last cleared."

What this means in practice:

  1. Fix the fault first.
  2. Drive normally, with a mix of conditions, until the monitors read ready and the permanent code clears. Check both with a scan tool.
  3. Then go for the test.

Clearing codes the morning of an inspection is the one approach that reliably doesn't work. For the bigger picture on the check engine light, see the check engine light guide.