A petrol engine rarely runs on its base fuel map alone. While you drive, the engine control unit (ECU) checks the exhaust and nudges injection quantity up or down so the mixture stays where the catalytic converter needs it. Those corrections are fuel trims, and they are among the most useful live-data values in any diagnostic session. Here is how short-term and long-term trims are calculated and learned, and what they reveal about an engine and its calibration.

Closed-loop fuelling in brief
The ECU calculates a base injection quantity from the measured or modelled air mass (MAF, or MAP plus intake temperature and rpm) and a target air-fuel ratio, normally lambda 1 at idle and part load on a warm engine. The upstream lambda sensor reports whether combustion came out lean or rich, and the ECU corrects the next injections. That is closed-loop operation. The loop is typically opened during cold start, full-load or component-protection enrichment and overrun fuel cut.
Short-term fuel trim (STFT)
STFT is the fast correction. With a narrowband sensor the signal flips between lean and rich, so the ECU ramps fuel up while it sees lean and steps back when it sees rich; on a healthy engine STFT oscillates around zero. A wideband sensor tells the ECU how far from target it is, allowing smoother correction. Positive values mean fuel is being added because the exhaust reads lean; negative values mean fuel is being removed.
Long-term fuel trim (LTFT) and adaptive cells
When STFT holds the same offset for a while, the ECU transfers it into long-term fuel trim, stored in memory and applied from the next start. Many systems learn separately by operating zone:
- Additive (offset) adaptation, learned mainly at idle and low airflow, where a fixed amount of missing or extra fuel matters most, such as a small air leak or injector opening-time deviation.
- Multiplicative (factor) adaptation, learned at part load, suited to errors that scale with flow, such as a MAF reading error or wrong fuel pressure.
Naming and cell layout differ between manufacturers, but separate idle and part-load learning is common.

Reading trims in live data
Add STFT and LTFT to get total trim and compare it on a fully warm engine at idle, at a steady 2,500 rpm without load, and on a load test. On V and boxer engines compare bank 1 (the side with cylinder 1) with bank 2. A commonly cited rule of thumb: totals within roughly ±10% are usually unremarkable, while values approaching ±20–25% are where many ECUs start setting lean or rich codes. Use the manufacturer’s limits where you have them.
What lean or rich trims point to
- Lean at idle, improving with rpm: unmetered air from vacuum hoses, PCV, brake-booster lines or intake gaskets.
- Lean everywhere, worse under load: fuel delivery, such as a weak pump, blocked filter or low pressure.
- Lean, often more at higher airflow: a contaminated MAF under-reporting air.
- One bank only: an injector, intake leak or exhaust leak on that side. An exhaust leak ahead of the sensor can make the ECU add fuel while the engine actually runs rich.
- Rich: leaking injectors, high fuel pressure, or a purge valve stuck open, which shows most at idle and can swing either way with canister vapour load.
- Temperature errors: a falsely cold coolant sensor adds warm-up enrichment and can delay closed loop.
After the repair: reset adaptations
Learned values still hold the old correction after a fix. Use the scan tool’s adaptation reset where available, clear codes, drive at idle and part load to relearn, then confirm trims have settled near zero.

Cars, gas-fuelled vans and trucks, machines and motorcycles
Cars and vans report trims through standard OBD live data. On LPG and CNG conversions, compare petrol-ECU trims on gas with trims on petrol; a large difference points to the gas calibration. Dedicated gas engines in trucks and vans usually run their own lambda control. Petrol agricultural and utility machines vary: EFI UTVs, generators and some small engines run closed loop, many simpler engines do not. Fuel-injected motorcycles often limit closed loop to idle and steady cruise, and header leaks or aftermarket exhausts upset the sensor.
Fuel trims and tuning
A good calibration should not depend on large trims. If LTFT moves a long way after a remap, the airflow or fuel model needs attention, or a mechanical fault was already present. Check trims before and after any file change, and log a wideband sensor at full load, where trims do not act. ECUFileMarket’s engineered files follow that principle; checksum correction, where required, is a separate paid option and is not included in file prices.
Related fault codes (DTCs)
Generic OBD-II codes per SAE J2012 (bank 1 / bank 2 pairs shown together). Wording and setting conditions vary by manufacturer.
| Code | Meaning | Typical causes |
|---|---|---|
| P0170 / P0173 | Fuel Trim Malfunction (Bank 1 / Bank 2) | Trims beyond the learned limit: air leak, fuel delivery, MAF or sensor fault |
| P0171 / P0174 | System Too Lean (Bank 1 / Bank 2) | Vacuum leak, contaminated MAF, low fuel pressure, restricted injectors, exhaust leak ahead of the sensor; both together suggest a shared cause |
| P0172 / P0175 | System Too Rich (Bank 1 / Bank 2) | Leaking injector, high fuel pressure, purge valve stuck open, MAF over-reading |
| P2177 / P2179 | System Too Lean Off Idle (Bank 1 / Bank 2) | Fuel delivery limits, MAF under-reading, restricted injectors |
| P2178 / P2180 | System Too Rich Off Idle (Bank 1 / Bank 2) | High fuel pressure, leaking injectors, MAF over-reading |
| P2187 / P2189 | System Too Lean at Idle (Bank 1 / Bank 2) | Vacuum, PCV or brake-booster hose leaks, intake gasket |
| P2188 / P2190 | System Too Rich at Idle (Bank 1 / Bank 2) | Purge vapour at idle, leaking injector |
| P0101 | Mass or Volume Air Flow Circuit Range/Performance | Contaminated or failing MAF, air leak after the MAF, plausibility error against the airflow model |
| P0130 | O2 Sensor Circuit (Bank 1 Sensor 1) | Upstream sensor or wiring fault, so trims chase a false signal |
| P0133 | O2 Sensor Circuit Slow Response (Bank 1 Sensor 1) | Ageing or contaminated upstream sensor, nearby exhaust leak |
| P0441 | Evaporative Emission System Incorrect Purge Flow | Purge valve stuck or leaking, blocked or split purge lines |
| P0496 | Evaporative Emission System High Purge Flow | Purge valve stuck open, often with rich or erratic idle trims |
| P0087 | Fuel Rail/System Pressure Too Low | Weak pump, blocked filter, faulty regulator or high-pressure pump |
Closing
Fuel trims show how hard the ECU is working to correct the mixture. Read them by load, by bank and by trend, and they point to the fault before any parts are swapped.
Need an engineered tuning file for a car, van, truck, tractor or bike? Upload your original ECU read at ECUFileMarket.