Quote Originally Posted by Mr. P.
An O2 sensor only reports the amount of oxygen present in the exhaust stream - NOT the amount of 'unburnt fuel' or 'observed AFR'
What Mr. P. said... this is the key.

Quote Originally Posted by Mr. P.
Pretend example - If the WBO2 voltage is reporting that it's 3.5% rich, then the ACTUAL AFR is either:

a) 1.035 * 14.63 = 15.14 (in the case of pure pump gasoline fuel);
b) 1.035 * 17.2 = 17.80 (in the case of LNG natural fuel);
c) 1.035 * 15.5 = 16.04 (in the case of LPG propane fuel);
d) 1.035 * 9.0 = 9.315 (in the case of E100 ethanol fuel);
e) 1.035 * 14.6 = 15.11 (in the case of diesel fuel);
f) 1.035 * 14.1 = 14.50 (in the case of E10 pump gas fuel);
g) 1.035 * 10.0 = 10.35 (in the case of E85 fuel);
h) 1.035 * 13.8 = 14.28 (in the case of Sunoco GT-Plus 112-unleaded fuel);
i) 1.035 * 15.0 = 15.53 (in the case of VP 110 race fuel);
...
Did you mean to divide by 1.035 rather than to multiply by 1.035...?
i.e. row a) would be 14.63 / 1.035 = 14.13...

1.035 is Equivalence Ratio... i.e. EQR or simply EQ... (which equals 1/Lambda)... as various people have observed, it seems that EQ is what the PCM uses internally (i.e. for determining commanded EQ from all the lookup/modifier tables...) and applies B3601 to the "calculation" only at the very last moment prior to calculating injector on time... GM even provided the pid GM.EQIVRATIO (commanded EQ).

I have learned to think in terms of EQ, and after doing it for a while it really does come naturally... there's no going back.