By ServiceSage Auto. Published October 9, 2026; last updated October 9, 2026. Data as of: sources read October 9, 2026.
A code tells you which test failed. Live data tells you why. Three common check-engine codes - a lean bank (P0171), a dead downstream O2 heater (P0141) and a tired catalytic converter (P0420) - each leave a different fingerprint in the same handful of numbers any live-data scanner can show: short and long term fuel trim, and the voltage of the oxygen sensors before and after the converter. Here is how to read them, and what the published references actually say is normal.
The short answer P0171: long term fuel trim on bank 1 sits well positive - the computer is adding fuel because it sees a lean mixture - and in most cases that means unmeasured air, not a fuel problem. P0141: an electrical fault in the heater of the sensor behind the converter; the fix starts with a fuse and a meter, not with fuel trims. P0420: the downstream sensor, which should be fairly steady, has started copying the fast switching of the upstream one.
The EPA describes OBD as "additional computer software that monitors the emission control and emission-related components/systems" and turns on the check-engine light when it finds "a malfunction or deterioration that can affect emissions." The list of systems it must watch includes catalyst efficiency, oxygen sensor response and heater, and the fuel delivery system - the three systems behind the three codes in this article.[1]
The way a scan tool asks for that information is standardized in SAE J1979 (ISO 15031-5), the protocol generic OBD-II scanners use. "Live data" is the J1979 service that returns current values by parameter ID (PID). These are the PIDs this article is about, with the scaling a scanner applies to the raw bytes:[2, 3]
| PID (hex) | What it is | Range a scanner shows |
|---|---|---|
| 01 | Monitor status since codes were cleared (includes readiness) | complete / not complete per monitor |
| 03 | Fuel system status (open or closed loop) | status code |
| 06 / 07 | Short / long term fuel trim, bank 1 | -100% (removing fuel: too rich) to +99.2% (adding fuel: too lean) |
| 08 / 09 | Short / long term fuel trim, bank 2 | same as bank 1 |
| 14 - 1B | Oxygen sensors 1-8: voltage (and that sensor's short term trim) | 0 to 1.275 V |
Many newer engines use a wideband air-fuel ratio sensor upstream, reported through different PIDs as an air-fuel equivalence ratio (lambda) or a current rather than a switching voltage. Everything below about "0.1 to 0.9 V" applies to the conventional switching sensor.
Sensor naming: bank 1 is the side of the engine with cylinder 1, and in NTK's words, "Sensor one (1) will always be upstream of the three-way catalyst, while sensor two (2) will be downstream." So "bank 1 sensor 2" - the sensor in P0141 - is the one behind the catalytic converter on the cylinder-1 side.[4]
The engine computer meters fuel from what its sensors say about airflow, then corrects the result using the upstream oxygen sensor. Short term fuel trim (STFT) is that correction happening right now, moving constantly; long term fuel trim (LTFT) is the correction the computer has learned and applies all the time. Bosch states the basic rule: "In case of rich mixtures, the amount of fuel is reduced. With lean mixtures, it is increased." On a scanner that shows up as a sign:[5]
There is no single legal trim limit. The CARB regulation that defines OBD II requires a fuel-system fault when "the adaptive feedback control has used up all of the adjustment allowed by the manufacturer" - so where the code sets is the manufacturer's calibration, and the 20-25% figure above is a rule of thumb, not a number from the regulation.[8]
Trims only mean something in closed loop. Until the upstream sensor is hot enough to produce a signal, the engine runs open loop on its base map. A trade article on OBD-II oxygen sensors notes that until the sensor produces voltage, "the fuel control system remains in open loop." PID 03 (fuel system status) tells you which state the engine is in; judge trims on a fully warm engine.[9, 3]
P0171 means bank 1 has run out of the fuel correction it is allowed. On live data that is a large positive long term trim on bank 1. The useful part is how it behaves as airflow changes:
The full step-by-step - from flexing the intake boot to a smoke test and fuel-pressure check - is on the P0171 code page, along with P0174 and the opposite case, P0172 (running rich).
A conventional (switching) zirconia sensor produces a voltage from the oxygen in the exhaust. NTK: it "generates 800-1000 mV when the exhaust gas air/fuel ratio is rich" and "100-200 mV when the exhaust gas air/fuel ratio is lean," and it becomes operational at approximately 350 degrees C (650 F). Bosch's test values for a warm, idling engine describe the upstream (control) sensor:[4, 5]
The downstream sensor has a different job. Bosch: "The air/fuel mixture is optimized by a control sensor upstream of the catalytic converter, its effectiveness by a diagnostic sensor downstream of it." A working converter stores oxygen and smooths out the upstream swings, so the downstream signal is much steadier - and "The lower the voltage boost of the diagnostic sensor, the better the condition of the catalytic converter."[5]
Not every upstream sensor switches. NTK describes the air-fuel ratio (AFR) sensor as "A linear 4 wire oxygen sensor which actually measures air fuel ratio rather than producing a switching voltage." If your scanner shows an upstream reading that barely moves or is reported as lambda or current, check whether your engine uses one before you condemn it as "lazy."[4]
CARB requires the OBD system to "monitor the catalyst system for proper conversion capability." In practice the computer judges that by comparing the two sensors. As the converter loses its ability to store oxygen, the downstream signal stops being smooth and starts to follow the upstream switching - and P0420 (bank 1) or P0430 (bank 2) sets.[8, 5]
More on what to check before paying for a converter: P0420 and P0430.
Got one of these codes right now? Each code page gives the meaning, whether it is safe to drive, typical costs and the parts that usually fix it, step by step. Look up my code
The oxygen sensor has to be hot to work, and exhaust heat alone is slow and unreliable that far back. So it has its own electric heater: Bosch describes a separate heater that brings the element above 350 degrees C, with more current supplied at first "to ensure quick operational readiness." CARB requires the system to "monitor the heater for proper performance," and NTK notes the computer watches "heater light-off time and heater resistance." P0141 is that heater circuit failing on bank 1 sensor 2.[5, 8, 4]
The full repair walk-through, costs and sensor socket advice are on the P0141 code page; the upstream twin is P0135.
Clearing codes with a scanner also resets the readiness status of every monitor. The regulation requires the system to report "complete" or "not complete" for each monitored system "since the fault memory was last cleared" - so immediately after a repair, the catalyst, oxygen sensor and heater monitors read "not complete" until the car has been driven enough for each test to run again. Some monitors (gasoline misfire and the comprehensive component monitor) always report complete.[8]
Two practical consequences. First, an emissions inspection may turn the car away with monitors not ready, even with no codes stored - drive normally until the monitors report complete before you go. Second, PID 01 is how you confirm a fix: when the catalyst and O2 monitors report complete and the code has not come back, the repair has passed the same test that failed.[3]
A basic code reader tells you the code. These are what let you see the patterns described above and confirm the fix.
Affiliate Disclosure: ServiceSage Auto participates in the Amazon Services LLC Associates Program. We earn a small commission from qualifying purchases at no extra cost to you. This helps us keep our content free and up-to-date.
Fixed it? Keep the record Log the repair with its date, mileage and cost, and get an email before the maintenance that helps keep these codes away - air filter, spark plugs and the rest of the factory schedule - comes due. Free for up to 3 vehicles. Track my car free