Why is my AFR off?

A mixture that reads wrong is either genuinely wrong or being reported wrong, and the two need opposite fixes. Start with which way it is off.

Which way is the mixture off?

Lambda under 1.00 is rich, over 1.00 is lean. If you are reading AFR, remember the number means different things on different fuels.

When does it go lean?

Is the car actually running badly, or just reading rich?

What are the long-term fuel trims doing?

Positive trim means the ECU is adding fuel to correct a lean reading. Negative means it is pulling fuel out.

Classic unmetered air — hunt the leak

A leak downstream of the airflow sensor lets in air the ECU never counted. At idle there is little airflow, so a small leak is a large percentage and the mixture goes lean. Open the throttle and the leak becomes a rounding error, which is why it improves under load.

Check the intake boot for splits, every vacuum line and its tee, the brake servo hose, the PCV system, the dipstick tube seal and the intake manifold gasket. A smoke test finds in minutes what an afternoon of guessing does not.

AFR ↔ lambda calculator →

The fuel system is running out of capacity

Lean only at the top means supply, not measurement. Work down the delivery chain: fuel pressure under load rather than at idle, filter condition, pump capacity at your target power, and injector duty cycle.

Injectors above about 85% duty are effectively out of headroom, and past that the mixture goes lean exactly when you least want it to. Size the requirement properly rather than guessing.

Injector size calculator →

The ECU is compensating for air it cannot see

Strongly positive long-term trims are the ECU telling you it keeps having to add fuel to reach its target. Something is putting air in without being measured, or fuel is short.

Rule out the cheap causes first: intake leaks after the MAF, a dirty or failing MAF, an exhaust leak upstream of the oxygen sensor pulling in air and faking a lean reading, and low fuel pressure. Do not start with the sensor that is reporting the problem.

AFR ↔ lambda calculator →

Too much fuel is genuinely going in

Look for leaking injectors, excessive fuel pressure from a failed regulator or a blocked return, a coolant temperature sensor reading cold so the ECU stays in warm-up enrichment, or a restricted air filter.

Sustained rich running washes oil off the bores and fouls plugs, so this is worth chasing rather than tuning around. Best power on petrol sits near λ 0.85–0.88 — richer than that costs power as well as fuel.

AFR ↔ lambda calculator →

Suspect the measurement before the engine

When the car drives correctly and only the number is odd, check the number's source. A wideband sensor ages and drifts, and an exhaust leak near it lets in air that reads as lean regardless of what the engine is doing. Free-air calibrate the sensor if your controller supports it.

If you are reading a narrowband sensor, stop here: it is a switch, not a gauge. It sits near 450 mV at stoichiometric and saturates either side, so it can tell you "rich" or "lean" and nothing more precise. Tuning wide-open throttle from one is guessing.

AFR ↔ lambda calculator →

Your AFR target moved because the fuel did

Nothing is wrong. AFR is fuel-specific: stoichiometric is 14.7:1 on petrol and about 9.8:1 on E85, so the same mixture strength reads as a completely different AFR number.

An AFR of 12.5 is λ 0.85 on petrol — healthy at wide-open throttle — and λ 1.28 on E85, which is lean enough to hurt an engine under load. Switch your targets to lambda and the problem disappears, because λ 0.85 means the same 15% rich on every fuel there is.

AFR ↔ lambda calculator →