Skip to content
Back to home

Free reference

How to read a fuel map

You opened your tuning software, clicked the file open, and now you're staring at a 16x16 grid of numbers with axis labels you half-recognise. Maybe it's called “VE”. Maybe it's called “Injector Pulse Width”. Maybe it's just labelled “Fuel”. Either way, nobody told you what the numbers mean.

This page explains what a fuel map is, what the axes represent, and how to read the numbers in the cells without breaking anything. It is conceptual — not a step-by-step for any specific ECU. Where things vary between platforms, we say so.

Get the one-page checklist

A printable reference: how to identify what kind of fuel map you're looking at, what to check before editing a cell, and common mistakes. PDF, no account, instant.

We'll email a few short follow-ups about reading and editing ECU tables. Unsubscribe anytime.

What a fuel map actually is

A fuel map is a lookup table. The ECU runs hundreds of times per second, and on each cycle it needs to answer one question: how much fuel should the injectors deliver right now? It can't compute that from first principles fast enough, so instead the tuner gives it a table of pre-computed answers indexed by two variables. The ECU reads the current value of each variable, finds the cell that matches, and uses whatever number is in that cell.

That's the entire concept. The grid of numbers is just an answer key. Most of the difficulty in reading a fuel map comes from understanding what question that particular table is answering — because different ECUs answer it in different ways.

The two axes — load and RPM

On almost every modern ECU, the fuel map is indexed by engine load on one axis and engine speed(RPM) on the other. RPM is straightforward. Load is where people get confused, because “load” isn't one thing.

Depending on the platform, the load axis might be:

  • MAP (manifold absolute pressure, in kPa) — common on speed-density ECUs
  • MAF (mass air flow, often expressed as a calculated load percentage) — common on OEM petrol ECUs
  • Throttle position — common on older or simpler ECUs, and on some motorcycle ECUs
  • Calculated load (a normalised 0–100% or 0–200% figure derived from airflow) — common on modern OEM ECUs

These are not interchangeable. A cell at “100 kPa, 3000 RPM” on a speed-density ECU is not the same operating point as “75% load, 3000 RPM” on a MAF-based ECU. Before you read a single number, confirm what your load axis actually represents. The axis label is your first clue, the ECU's documentation is the second, and the units printed on the axis are the third.

The reason these two variables are used is simple: how much air the engine is ingesting (load) and how fast it's ingesting it (RPM) together determine how much fuel it needs. Everything else — temperature, barometric pressure, transient corrections — is layered on top as a modifier.

What the numbers in the cells represent

This is the part that varies most between platforms, and the part most beginners get wrong. The number in a fuel map cell can mean very different things:

  • VE (Volumetric Efficiency). A percentage describing how well the cylinder fills with air at that operating point. The ECU combines VE with measured conditions to compute fuel. Common on aftermarket ECUs and some modern OEM ones. You are describing the engine, not the fuel.
  • AFR or Lambda target.The mixture you want at that point — e.g. 14.7:1 in cruise, 11.5:1 at WOT. Often a separate table from the fuelling table, often called the “target” or “commanded AFR” map. You are describing the desired mixture, not how to achieve it.
  • Injector pulse width. The time (in milliseconds) the injector is held open. Direct, literal, and platform-specific to the injector size. Less common as the primary fuel table on modern ECUs.
  • Mass of fuel. Some ECUs request a mass per cycle (mg/stroke) and let the injector driver work out the pulse width.
  • A correction or trim.Some “fuel” tables aren't the primary fuelling map at all — they're multipliers or offsets applied to a base calculation.

Before you touch a cell, you need to know which of these you're looking at. Editing a VE table the way you'd edit an AFR target table is a fast route to a lean engine.

How to identify what kind of fuel map you're looking at

Three checks, in order:

  1. Read the axis labels and units.If the cell values are in the 60–110 range with no units, you are probably looking at VE (a percentage). Values in the 10–18 range almost certainly mean AFR. Values in the 0.7–1.1 range are Lambda. Values in the 1–20 range with “ms” on them are pulse width.
  2. Check the table's name in the software. Most tuning software labels tables explicitly: “VE Table”, “Target AFR”, “Primary Fuel”, etc. Don't assume — read it.
  3. Find the documentation for your ECU or definition file. If you're using a community XDF/A2L/definition, the table description usually says what the units are and how the ECU uses the value. If it doesn't, slow down before editing.

Reading a typical map: cruise, WOT, idle, transients

Once you know what kind of table you're looking at, the shape of the numbers starts to tell a story. Most fuel maps break down into recognisable zones:

  • Idle zone. Bottom-left corner — low load, low RPM. Numbers here are typically smaller (low VE, leaner target, short pulse width) and the cells often look noisier than the rest because idle is sensitive and gets tuned cell-by-cell.
  • Cruise zone.The diagonal band running from low-load/low-RPM up through mid-load/mid-RPM. This is where the engine spends most of its life. On a target-AFR table you'll see values around 14.7 (stoichiometric) here; on a VE table you'll see a smooth gradient that rises with load.
  • WOT (wide-open throttle) zone. Top of the map — high load across the RPM range. Targets here are richer (typically 11.5–13.0 AFR depending on platform, fuel, and how aggressive the tune is). VE values usually peak somewhere in the mid-RPM range and taper at redline.
  • Transient regions.The cells between zones. The ECU interpolates between cells when the engine moves through them quickly, so values that jump sharply between neighbours cause rough transitions you can feel from the driver's seat.

A healthy fuel map looks smooth. Values change gradually from cell to cell. Sudden jumps — a 95 next to a 70 next to a 90 — almost always indicate either a tuning mistake or a region that's never been hit by the engine and was left at default.

The fuel map and the AFR target table

On most modern ECUs, fuelling is split across at least two tables: a VE (or airflow) table describing the engine, and a target AFR/Lambda table describing the mixture you want. The ECU uses both, plus measured conditions, to calculate the actual injector pulse width.

This separation matters because the two tables answer different questions:

  • The VE table is a model of the engine. If it's wrong, the ECU's fuelling math is wrong and the closed-loop trims have to fight it.
  • The target AFR table is a request. It says “at this load and RPM, aim for this mixture”. The ECU uses the VE table to figure out how to deliver that.

When commanded AFR doesn't match measured AFR, the fix is almost always in the VE table, not the target table. Changing the target asks for a different mixture; correcting the VE table fixes the model so the ECU can actually hit any target you set. Some ECUs roll both into a single table, in which case this distinction doesn't apply — check your platform.

Interpolation and blending — when cells affect each other

The engine almost never sits exactly on a cell's coordinates. At 2,847 RPM and 84 kPa, the ECU is between four cells, and it interpolates — typically a bilinear weighted average of the surrounding values. This means:

  • Editing one cell affects the engine's behaviour in the surrounding region, not just at that exact point.
  • A spike or dip in a single cell drags the interpolated values of all four cells around it.
  • Smoothness across cells matters as much as the value of any individual cell.

Some ECUs also use a separate “high-octane” or compensation table that's blended with the primary table based on a learned trim. If your numbers don't behave the way you expect, check whether a second table is being mixed in before you start editing.

Common mistakes when reading or editing a fuel map

  • Assuming the load axis on one ECU means the same thing as on another
  • Editing cells the engine never visits, then wondering why nothing changed
  • Editing a single cell without smoothing the neighbours, leaving a step in the table
  • Treating a VE table as if it were a target AFR table (or vice versa)
  • Ignoring the AFR target table and trying to chase mixture by editing VE
  • Reading numbers without checking units — a value of 95 means very different things if it's a percentage versus a kilopascal
  • Changing values without a datalog to verify the result

The honest summary

Reading a fuel map is mostly about three things: knowing what the axes mean, knowing what the cell values represent, and recognising the shape of the zones. None of that is hard once you've seen a few maps. What is hard — and what no article can do for you — is building the judgement to decide what a specific number should be on a specific engine. That comes from datalogs, time, and not skipping steps.

Want this as a one-page reference?

Drop your email and we'll send the printable PDF version of this guide plus a few short follow-ups on common fuel-map mistakes.

This page covers how to read a fuel map. The full reasoning behind editing one — what to change, why, in what order, and how to verify the result — lives in Module 3 of the Tuning Logic guide. See what's in the full guide →