How to Read an HP Tuners Datalog
A datalog is the single most honest piece of feedback your tune will ever give you. The tune file is what you *asked* the engine to do; the datalog is what actually happened when you opened the throttle. HP Tuners datalog analysis is the skill of turning a wall of logged channels into a short list of confident, specific decisions: this cell is lean, pull two degrees here, the wideband disagrees with the commanded AFR by four percent across the board.
The trouble is that VCM Scanner can log hundreds of channels, and a fresh log can look like noise. The good news is that for fueling and spark safety, the same handful of channels tell you almost everything, and they tell it the same way on a naturally aspirated truck, a boosted four-cylinder, or an LS swap. This guide walks through exactly which channels to watch, how to read them, the order to make changes in, and the safety rules that keep a pull from ending in a melted piston.
We will also show where TuneVault fits: you can drop in a screenshot of a VE table or a scanner histogram and get the cells read back, an audit of whether your commanded fueling and timing are in safe territory, and the exact change to make next — without guessing.
Key takeaways
- ✓Commanded is never delivered — the only truth about in-cylinder fueling comes from a wideband, so verify every fuel change against it and never lean a target or add boost on a commanded number alone.
- ✓Fuel before spark, always: get part-throttle fuel trims near zero and WOT lambda on target first, because timing tuned over a lean error is unsafe.
- ✓For fueling, line up three channels — commanded AFR, measured (wideband) AFR, and fuel trims; trims near zero mean an accurate base table, large trims tell you exactly where it's lean or rich.
- ✓Treat repeatable, load-correlated knock retard as real detonation: pull timing until it stops. Sustained heavy knock can destroy pistons in minutes.
- ✓Change one thing, log, and look before the next edit — and keep a safety cushion (around 0.80–0.85 lambda at WOT, conservative timing) until the data earns more.
- ✓Most U.S. fuel is E10, so set the correct stoichiometric constant for your fuel before reading cells, or a global offset will corrupt your whole analysis.
- ✓TuneVault reads tables and scanner histograms from screenshots, audits them for lean and knock-prone cells, and proposes the exact change — compressing the analysis without replacing the wideband-validated safety workflow.
What a datalog actually is — and why commanded never equals delivered
Every modern PCM runs closed-loop math: it commands a fuel quantity and a spark angle, then a network of sensors reports back what resulted. A datalog is just a time-stamped recording of those commands and those sensor readings, sampled many times per second. When you open a log in VCM Scanner, each row is one slice of time and each column is one channel — engine speed, manifold pressure, commanded air-fuel ratio, measured air-fuel ratio, spark advance, knock retract, and so on.
The most important mental model in all of tuning is this: commanded is not delivered. The PCM can command lambda 1.0 (14.7:1 on straight gasoline) all day, but injector lag, fuel-pressure droop, a sticky MAF, or simply a wrong VE table means the cylinder may actually see something richer or leaner. The only channel that tells you what truly happened in the combustion chamber is a wideband oxygen sensor reading the actual mixture. That is why every fueling change you make should be validated against a wideband, and why you never assume a commanded number is the delivered number — especially before adding boost, where a lean error turns from a small power loss into engine damage in seconds.
Set up the log right before you trust it
Bad data produces bad tunes. Before analyzing anything, confirm the log was captured cleanly. Use a logging configuration that includes, at minimum: RPM, MAP or MAF, throttle position, commanded AFR/lambda, wideband AFR/lambda, short- and long-term fuel trims, spark advance, knock retard (and individual cylinder knock if available), intake air temp, coolant temp, and injector duty cycle or pulse width.
Log at a healthy sample rate — a thin channel list logs faster and gives you cleaner resolution on transients. Get the engine to operating temperature first; cold-start enrichment will pollute your fuel numbers. Then capture meaningful operating points: steady-state cruise at several loads for part-throttle fueling, and clean wide-open-throttle (WOT) pulls in a single gear (third or fourth) for power tuning. One good third-gear pull is worth ten ragged ones. Note the fuel you ran, because it changes the math: nearly all U.S. pump gasoline is E10, which shifts the stoichiometric target away from the textbook 14.7:1, and that affects how you read every fuel cell.
Reading fueling: commanded AFR, wideband AFR, and fuel trims
Fueling analysis is a three-channel conversation. Line up commanded AFR, wideband (measured) AFR, and the fuel trims, and the story writes itself.
In closed-loop part throttle, the PCM is actively correcting fuel using the oxygen sensors, and the correction shows up as short-term fuel trim (STFT) and long-term fuel trim (LTFT). If trims sit near zero, your base fuel table (VE or MAF) is accurate. If LTFT reads +12%, the PCM is adding 12% fuel because your table is lean there — bake that correction back into the table and the trim returns toward zero. If it reads -8%, the table is rich. Map the trims against RPM and load to see where the error lives.
At wide-open throttle most tunes run open-loop, so trims stop correcting and the wideband becomes your sole source of truth. Compare commanded lambda to measured lambda cell by cell. Lambda is the universal yardstick here: lambda 1.0 is stoichiometric for any fuel, below 1.0 is rich, above 1.0 is lean. If you command 0.83 lambda (a typical safe WOT target) but the wideband shows 0.92, that cell is dangerously lean of command and needs more fuel before you trust it under load.
Reading spark: advance, knock retard, and the sound of trouble
Spark is where datalog reading gets unforgiving. The two channels that matter most are commanded spark advance and knock retard. Advance is how far before top dead center you are firing the mixture; more advance generally makes more power, right up until the end-gas in the cylinder auto-ignites and you get knock (detonation).
Knock retard is the PCM pulling timing because a knock sensor heard something. A few sporadic counts of one to two degrees on a rough road can be noise. But repeatable, load-correlated retard — say four to six degrees that appears at the same RPM and MAP on every pull — is real knock, and it is telling you your timing table is too aggressive in those cells. The fix is to pull timing there until the retard stops, not to ignore it. Detonation is not benign: combustion engineers note that the same engine can run quiet at one rate of cylinder-pressure rise and knock destructively at a slightly higher one, and sustained heavy detonation can wreck pistons, ring lands, and head gaskets in minutes. When in doubt, pull timing. Power you can add back later; a piston you cannot.
A repeatable analysis workflow
Work in a fixed order so you never chase your own tail. First, fuel, then spark — always. A spark table tuned over a lean fueling error is built on sand.
1) Scan the whole log for safety flags first: any lean spike at high load, any sustained knock retard, any intake-air or coolant temp climbing into trouble. Address show-stoppers before fine-tuning. 2) Fix part-throttle fueling using fuel trims: copy the trim error back into the VE or MAF table, re-log, confirm trims fall toward zero. 3) Fix WOT fueling using the wideband: adjust the open-loop commanded table and the underlying VE so measured lambda matches your safe target. 4) Only now tune spark: add advance in small steps (one to two degrees) where knock retard is clean, and pull it where retard appears. Re-log after every change. 5) Re-validate. One change, one log. Stacking five edits into one pull means you cannot tell which one helped or hurt.
This is also exactly the workflow TuneVault is built around: paste a scanner histogram or table screenshot and it reads the cells, flags the lean and knock-prone areas, and proposes the specific numeric change for that cell — so you spend your time validating, not deciphering.
Common patterns and what they mean
A handful of signatures show up again and again. Lean at the top of a WOT pull with rising fuel-trim-like behavior usually means fuel-system limitation — injectors near 100% duty cycle or fuel pressure dropping, so the cylinder cannot get the fuel you commanded. Check injector duty before adding fuel you physically cannot deliver.
Fuel trims that are fine warm but ugly during tip-in often point at transient (acceleration) enrichment, not the base table. Knock that appears only when intake air temps are high is heat-soak: your timing is fine on a cold table but marginal once the intake warms, which is an argument for a conservative IAT timing-retard table rather than aggressive base timing.
A wideband that reads steadily richer or leaner than commanded everywhere — a constant offset — usually means a wrong stoichiometric constant for your fuel (you are running E10 or E85 but the tune assumes pure gasoline) or a wideband calibration mismatch. Fix the global offset before you touch a single cell, or you will chase a ghost across the entire table.
Safety discipline that keeps engines alive
Three rules are non-negotiable. First, commanded is never delivered — verify fueling with a wideband, and never add boost or lean out a target based on a commanded number alone. Second, when fueling and spark conflict, fueling wins: never advance timing into a cell you have not first confirmed is getting enough fuel. Third, change one thing, log, and look before changing the next.
Build margin in on purpose. WOT fuel targets of roughly 0.80–0.85 lambda on pump gas give you a safety cushion against a lean cell you missed, fuel-pressure droop, or a hot day. Keep timing conservative until the data earns the advance. Watch intake-air and coolant temps; a tune that is safe at 80°F intake can knock at 130°F. And treat any repeatable knock retard as the engine telling you the truth — it is cheaper to leave two degrees of power on the table than to replace a short block. A datalog is your early-warning system; the whole point of reading it well is to catch the lean spike or the knock count before it becomes a repair bill.
How TuneVault speeds up datalog analysis
Reading a datalog well is a skill, and it is a slow one to build alone. TuneVault is an HP Tuners copilot designed to compress that learning curve without replacing your judgment. Drop in a screenshot of a VCM Scanner histogram, a VE table, or a spark table and it reads the values out of the image, so you are not transcribing cells by hand. It then audits the data against safety norms — flagging WOT cells that are lean of a sane target, timing that looks aggressive for the load, and knock retard that correlates with specific operating points.
Most usefully, it does not stop at 'this looks lean.' It proposes the exact change: which cell, which direction, how much, and why — framed so you can sanity-check it against your own wideband before you write it to the PCM. The discipline stays the same as everything above: fix fuel before spark, validate every change against a wideband, and re-log after each edit. TuneVault just removes the grunt work of reading the tables and turns a daunting grid of numbers into a short, specific to-do list you can act on with confidence.
Frequently asked questions
What channels should I log first for fuel and spark tuning?
At minimum: RPM, MAP or MAF, throttle position, commanded AFR/lambda, wideband (measured) AFR/lambda, short- and long-term fuel trims, spark advance, knock retard, intake air temp, coolant temp, and injector duty cycle. That set tells you almost everything about fueling and spark safety. Keep the channel list lean so the log samples faster and gives cleaner resolution on transients.
Why doesn't my wideband AFR match the commanded AFR?
Because commanded is never the same as delivered. The PCM commands a fuel quantity, but injector lag, fuel-pressure droop, a wrong VE or MAF table, or the wrong stoichiometric constant for your fuel all change what the cylinder actually sees. The wideband reads the real mixture. A constant offset everywhere usually means a fuel-constant or wideband-calibration mismatch; a load-specific gap means a base-table error in those cells.
How much knock retard is safe to ignore?
A few isolated counts of one to two degrees on a rough road are usually sensor noise. Repeatable retard that appears at the same RPM and load on every pull — typically four degrees or more — is real knock and means your timing is too aggressive there. Pull timing in those cells until the retard stops. Sustained heavy detonation can destroy pistons in minutes, so always err toward pulling timing.
Should I tune fuel or spark first?
Fuel first, always. A spark table tuned over a lean fueling error is built on a false foundation — once you correct the fuel, the safe timing changes. Get part-throttle trims near zero and WOT lambda on target with the wideband, then add or pull spark in small one-to-two-degree steps and re-log after each change.
What's a safe WOT air-fuel target on pump gas?
Roughly 0.80–0.85 lambda is a common safe range for naturally aspirated and lightly boosted setups on pump gasoline, because it builds in margin against a lean cell you missed, fuel-pressure droop, or a hot day. The exact best target depends on your engine and fuel, but the principle is to leave a cushion and verify it with a wideband before adding load or boost.
Can TuneVault read my datalog or table screenshots?
Yes. You can paste a screenshot of a VCM Scanner histogram, a VE table, or a spark table, and TuneVault reads the cell values out of the image, audits them for lean or knock-prone areas, and proposes the specific numeric change to make next. You still validate against your own wideband and re-log after each edit — it speeds up reading and decision-making, it doesn't replace the safety workflow.
Does running E10 change how I read fuel cells?
Yes. Nearly all U.S. pump gas is E10, whose stoichiometric ratio is lower than the 14.7:1 of pure gasoline. If your tune assumes pure gasoline, your fuel trims and commanded-vs-measured comparison will carry a built-in offset. Set the correct stoichiometric constant for your fuel before fine-tuning individual cells, or you'll chase a global error across the whole table.
Sources
Put this into practice on your own car.
TuneVault reads your HP Tuners tables from a screenshot and tells you the exact, safety-checked change to make.
Open the Copilot