Drop in an MHD, JB4, bootmod3, or EcuTek CSV log. It finds your WOT pulls and grades knock, boost control, AFR, intake temps, trims, and fuel pressure. Everything runs in your browser, the log never leaves your computer.
A datalog is the closest thing to ground truth your car gives you. Dynos flatter, butt-dynos lie, but the log shows what the ECU actually did. Here is what this page looks for and why it matters:
The knock sensors are the canary. Small corrections (up to about -1.5°) on one cylinder here and there are normal adaptation, especially on pump gas in summer. Repeated pulls of -3° or more, or several cylinders correcting at once, means the tune is past what the fuel can support. The fix is usually better fuel, less boost, or less timing, in that order of preference.
The tune requests a boost target and the wastegate tries to deliver it. Overshoot of more than ~2 psi on tip-in points at wastegate preload or PID tuning. Boost that sags away from target up top usually means the turbo is out of breath, a boost leak, or a clogged filter. Never hitting target at all is classic underboost: check couplers, diverter valves, and the wastegate arm before blaming the tune.
Most turbo street cars target lambda 0.78-0.85 (about 11.5-12.5 AFR on gas) at full load. A sustained lean reading past lambda 0.90 while the engine is genuinely loaded is the scariest thing a log can show, because lean + load = heat + knock. But where the lean shows up matters: lean only at low airflow points at an unmetered-air leak (vacuum, charge-pipe, or a loose aux bung), not the fuel system, so this tool sorts the two before telling you to stop. When it is a real loaded lean, common causes are a failing LPFP, undersized injectors at high duty, or a tune scaled for different fuel than what is in the tank. The injector calculator will tell you if you are out of headroom.
Intake air temps climbing hard during a pull means the intercooler cannot shed heat fast enough. Modern DI motors quietly pull timing as IAT climbs, so two identical pulls can make very different power. If your IATs start high and climb 25°F+ per pull, an intercooler upgrade buys you real, repeatable power.
Combined fuel trims beyond ±10% mean the ECU is correcting for something: a vacuum leak, a weak pump, or bad MAF scaling. High-pressure rail dips below ~1500 psi (DI cars) under load mean the HPFP is maxed. These show up in logs long before they show up as a misfire code.
For a useful WOT log: pull from ~2500 RPM to redline on a steady road with the AC off, and log the same gear every time so runs are comparable. The accurate gear is the 1:1 (direct-drive) gear - 6th on a BMW ZF8 - but 6th runs the road speed too high for most people and most dynos, so we recommend 5th. A taller gear also keeps the engine loaded longer, which gives the virtual dyno more data to work with. One clean pull beats five ragged ones.
CSV exports from MHD, JB4, bootmod3, and EcuTek work out of the box, and most other tools (Cobb, ProTune, generic OBD loggers) work too as long as the CSV has an RPM column plus throttle or pedal position. Column names are matched loosely, so "Boost (psi)", "ecu_psi", and "Charge air pressure" all land in the right slot. The file is parsed in your browser and never uploaded.
Isolated corrections of about -1.5 degrees or less on a single cylinder are normal adaptation, especially on pump gas in heat. Repeated corrections of -3 degrees or more, or several cylinders pulling at once, means the tune is on the edge for the fuel in the tank. Back the boost or timing off and look at fuel quality, IAT, and plugs before pushing harder.
Most tuned turbo street cars target lambda 0.78 to 0.85 at full load, which is roughly 11.5 to 12.5 AFR on gasoline. Leaner than lambda 0.88 under full boost raises combustion temps and knock risk. Direct-injection BMWs can tolerate slightly leaner targets than port-injection cars, but a reading past lambda 0.95 at WOT is worth investigating.
Short-term and long-term fuel trims show how far the ECU is correcting fueling away from what the map predicted. Combined trims within about plus or minus 10 percent are healthy. Large positive trims mean the engine is running lean and the ECU is adding fuel - often a vacuum leak, a weak low-pressure pump, or optimistic MAF scaling. Large negative trims mean it is pulling fuel out, usually a leaking injector, high fuel pressure, or a dirty MAF. Trims that peg at their limit mean the ECU has run out of correction authority and the real mixture is now drifting.
Look at where the lean reading happens. A lean spike only at low airflow - light throttle, low load, early in the pull - points to unmetered air sneaking in past the sensor: a vacuum line, a cracked charge pipe, or a loose bung. A lean reading that appears when the engine is genuinely loaded, at high boost and high RPM, points at the fuel system: a failing low-pressure pump, injectors out of headroom, or a tune scaled for different fuel. This analyzer gates on real cylinder load before calling a lean event a fuel emergency, exactly so it does not confuse the two.
Most loggers display AFR on a gasoline scale even when the tank is full of ethanol, but some widebands report true-fuel AFR, where stoichiometric E85 is about 9.8 instead of gasoline's 14.7. If your log uses the true-fuel scale, healthy E85 cruise numbers look alarmingly low until you realize the reference point moved. The analyzer works out which scale your log is on from the closed-loop cruise data and the logged ethanol content, then judges everything in lambda so the fuel never skews the verdict.
No. The CSV is parsed entirely in your browser using JavaScript - it is never sent to a server and nothing is stored. When you share a report, the graded results are packed into the link itself, not uploaded to a database, so the raw log stays on your machine. You can confirm this by analyzing a log with your network disconnected; it still works.
Related Calculators