Fault Tree

OBD-II differential diagnosis

A trouble code is a symptom report from one sensor, not a diagnosis, but it gets read as one. P0420 says catalyst efficiency below threshold and the driver is quoted $1,400.00 for a converter, when the cause is more often a $118.00 oxygen sensor. This takes a code plus the freeze frame the ECU captured when it set, and produces a ranked differential with prices attached.

Code structure decoder

SAE J2012 codes are structured, not arbitrary: the letter is the system, the first digit says whether the definition is generic or manufacturer-specific, and the third character selects the subsystem. Any well-formed code decodes even when no repair data is loaded for it.

Diagnosis

P0171 moderate will fail emissions
System too lean (bank 1)
The engine is getting more air than the computer thinks it is, so it is adding fuel to compensate and has run out of adjustment range. Almost always unmetered air getting in after the sensor.
Vehicle
2014 Ford Escape SE · 1.6L EcoBoost · 96,118 mi
Complaint
rough idle, worse when cold
Scanned
2026-07-24 04:35
Code family
Powertrain · generic SAE
Subsystem
Fuel and air metering

Most likely cause, given the freeze frame

Vacuum leak (intake gasket, PCV, hose) — 44% likely
Smoke test the intake. Trims that improve at high RPM point to a leak, since the leak is a smaller fraction of total flow.
▸ combined fuel trim +25.8% is consistent with unmetered air
parts $38.00 + labour 1.1h @ $142.00/h = $194.20

Full ranked differential

CausePriorUpdatedRepair
Vacuum leak (intake gasket, PCV, hose)
combined fuel trim +25.8% is consistent with unmetered air
38% 44% $194
Dirty or failing mass air flow sensor
combined fuel trim +25.8% fits a MAF under-reporting
26% 39% $153
Leaking or restricted fuel injector 12% 7% $415
Failing upstream O2 sensor 10% 6% $231
Weak fuel pump or clogged filter
trims this high at idle argue against a delivery restriction
14% 5% $437
The prior column is what the code alone tells you. The updated column is after conditioning on the freeze-frame values below. Green moved up on the evidence, red moved down.

What the diagnosis is worth

Work the ranked path, stop when fixed $401 expected
Replace weak fuel pump or clogged filter first $437
Expected cost sums each cause's probability against the cumulative cost of reaching it in order. On this scan the ranked path expects $401 against $437 for going straight at the expensive component, which is the quote most people are handed.

Freeze frame — sensor state when the code set

PIDParameterValue
MAF Mass air flow rate 2.6 g/s
RPM Engine RPM 780 rpm
SPEED Vehicle speed 0 km/h
O2_B1S1 O2 sensor, bank 1 sensor 1 0.18 V
O2_B1S2 O2 sensor, bank 1 sensor 2 0.44 V
LONG_FT1 Long-term fuel trim, bank 1 16.4 %
SHORT_FT1 Short-term fuel trim, bank 1 9.4 %
ENGINE_LOAD Calculated engine load 21 %
INTAKE_TEMP Intake air temperature 31 °C
COOLANT_TEMP Engine coolant temperature 88 °C