Fuel Trims: Reading STFT and LTFT to Find Air-Fuel Faults

How to read fuel trims: STFT, LTFT, bank differences, idle vs elevated RPM, load influence, vacuum leaks, MAF bias, fuel pressure, injectors, purge and O2 feedback — and why one trim value is not the root cause.

General Diagnostic PrincipleTechnical Review CompleteLast reviewed 2026-08-12
Written by MechanIQ Editorial TeamTechnically reviewed by AutoLogic Diagnostics

Pressure, voltage, torque, pin and waveform values on this page are guidance only. Vehicle-specific verified specification required before acting on any test.

What this guide covers

Fuel trims — STFT and LTFT — as live-data evidence for air-fuel faults. How to read them, how they change with RPM and load, and how to use trim behaviour to separate vacuum leaks, MAF bias, fuel-pressure, injector, and purge causes. Pairs with P0171 (lean), P0172 (rich), and P0300 (misfire).

STFT and LTFT

  • STFT (Short-Term Fuel Trim) — the ECM's instant correction from the oxygen-sensor feedback. Swings quickly; should hover near 0% at closed loop.
  • LTFT (Long-Term Fuel Trim) — the learned correction stored so STFT can return to zero. Slow-moving; represents the system's adaptation.

When LTFT hits its calibrated limit without bringing the mixture back, P0171 (lean) or P0172 (rich) sets. The code means adaptation is exhausted — not that a specific part failed.

Bank differences

On V-engines, compare Bank 1 vs Bank 2:

  • One bank only → bank-localised fault (single-bank injector, intake leak, O2 on that bank)
  • Both banks → whole-engine issue (MAF, fuel pressure, purge, coolant sensor, intake leak after the MAF affecting all cylinders)

A whole-engine trim shift on both banks pushes the hypothesis away from a single injector or single O2.

Idle vs elevated RPM

This is the most useful trim test. Watch trims at idle, then at 2500 RPM (no load):

  • Lean at idle, normal at 2500 → vacuum leak (high idle vacuum pulls unmetered air; at 2500 the leak is a smaller fraction of total airflow)
  • Lean at 2500 / under load, normal at idle → fuel delivery (low pressure/volume) or MAF under-reporting
  • Lean everywhere → MAF, fuel pressure, or large leak

The RPM/load at which trims max out points to the system.

Load influence

Under real load (road test), demand rises. A fuel-volume shortfall that is invisible at idle shows as lean trims under load. Always confirm trims under the complaint condition, not just in the bay.

Vacuum leaks

Unmetered air after the MAF leans the mixture. Trims shift lean, especially at idle. Propane or smoke testing around the intake confirms. See P0171.

MAF bias

A contaminated MAF under-reports airflow → ECM delivers too little fuel → trims lean, often across the range and worse under load. Conversely, an over-reporting MAF runs rich. Compare MAF grams/sec to calculated load. See the MAF guide.

Fuel-pressure problems

Low fuel pressure/volume → lean trims under load (high demand exposes the shortfall). See the Fuel Rail Pressure guide and P0087.

Injector problems

  • Restricted injector → that cylinder/bank runs lean (trim shifts on that bank)
  • Leaking injector → rich (trim shifts negative on that bank)

An injector balance test separates flow-imbalanced injectors.

Purge influence

An EVAP purge valve stuck open adds unmetered fuel vapour → rich trims, often at idle. Command purge closed and watch trims. See P0172.

Lambda / O2 feedback

The trims are driven by the O2 sensor. Confirm the O2 is switching at closed loop (around its bias point). A stuck O2 (lean or rich) drives trims one way — but the O2 is usually telling the truth about a real mixture problem. A biased O2 is rare; confirm the mixture is genuinely off (e.g., exhaust leak ahead of the O2 adds oxygen and reads false-lean).

Why one abnormal value is not the root cause

A single trim reading is a symptom, not a cause. Lean trims can be a leak, the MAF, fuel pressure, an O2 issue, or an exhaust leak. Use the pattern (idle vs load, bank vs both, with MAF and rail-pressure data together) to rank hypotheses before testing.

Relationship to P0171 / P0172 / P0300

  • P0171 — LTFT lean limit reached (this guide's framework)
  • P0172 — LTFT rich limit reached
  • P0300 — lean/rich mixture can cause random misfire

Specification warning

Trim thresholds that set codes are calibrated per vehicle. There is no universal percentage. Use direction and trend, plus the vehicle's own limit. Vehicle-specific verified specification required for any pass/fail decision.

Common mistakes

  • Reading trims at idle only, missing load-related faults
  • Not comparing both banks
  • Treating a single trim value as the cause
  • Replacing the O2 sensor first (it is usually correct)
  • Applying a generic trim threshold across all vehicles

Related DTCs

Diagnosing this parameter on a real vehicle?

Start a MechanIQ diagnosis — import your scan data and let the evidence engine find the next best test.