Skip to content

Part 2 of 7 · Fuel log auditor series ~5 min read

How a fill gets matched to a vehicle

Every fuel record claims to belong to a vehicle and a meaningful minority of them are wrong, in ways that produce alarming numbers on two records simultaneously.

Key takeaways

  • The card is assigned to a vehicle, and vehicles get swapped without the card moving.
  • Odometer typos have recognisable shapes: transposed digits, dropped digits, a stuck value.
  • A swapped pair shows up as one impossibly good record and one impossibly bad one.
  • Where the vehicle cannot be determined, say so rather than guessing.
  • Keep the raw transaction exactly as received, always.

The card is not the vehicle

How a fuel transaction is matched to a vehicleA vertical chain of five steps entered by a box labelled A fuel transaction with card, litres, time and site. Step one maps card to vehicle using the assumed mapping. Step two asks whether an odometer reading was given at the pump; if not it exits to No distance check, flagged as unverifiable. Step three asks whether it is plausible against the last reading, moving forwards and not absurd; if not it exits to Odometer query, usually a typo. Step four runs the tank capacity check, which is arithmetic. Step five records it as matched with a confidence. A note says the mapping in the first box is an assumption and is wrong more often than anybody expects.AWS ACCOUNTA fuel transactioncard, litres, time, siteCard to vehiclethe assumed mappingOdometer given?at the pumpNo distance checkflag as unverifiablenoPlausible against last?forwards, and not absurdOdometer querya typo, usuallynoTank capacity checkarithmeticMatchedwith a confidenceThe mapping in the first box is an assumption, and it is wrong more often than anybody expects.
Fig 1. How a transaction becomes an attributed fill. The first box is the weakest link and is usually treated as ground truth.
  • Compute
  • App integration
  • Machine learning
  • Management
  • Analytics
  • Front-end & mobile

Why the mapping drifts

A van goes in for repair and the driver takes the spare, with their own card. A card is reissued and the new number is not updated. Two drivers swap vehicles for a week and nobody tells anybody. A card lives in the glovebox of a vehicle that has been sold.

None of these are unusual and all of them produce fuel attributed to the wrong vehicle for a period. The system’s job is to notice when the attributed vehicle stops making sense, and the strongest signal is the odometer moving in a way that vehicle could not have.

Odometer typos have shapes

What happenedWhat it looks likeHow it is caught
Transposed digits84,213 becomes 84,231A small backwards jump next time
Dropped a digit84,213 becomes 8,421An enormous backwards jump
Added a digit84,213 becomes 842,133An impossible distance in one fill
Entered the trip meter84,213 becomes 312Value far below every previous reading
Entered the litres84,213 becomes 54Two fields with suspiciously similar values
Same as last time84,213 twiceZero distance with fuel purchased

The last row is the most common and the least obviously wrong. Somebody who cannot see the dashboard reading enters what they entered last time, which produces a record showing fuel bought and no distance travelled, and averaged over a month it quietly ruins the economy figure for that vehicle.

None of these need clever detection. They are arithmetic checks against the previous reading and they resolve with a one-line query: “the odometer for van 4 on Tuesday reads lower than the week before — can you check?”

The swapped pair

Two vans showing opposite fuel economy anomalies in the same weekA bar chart with four bars showing miles per gallon. Van seven normally achieves thirty-four. Van eight normally achieves thirty-three. In the week in question van seven shows eleven and van eight shows sixty-two. A note says one tank was recorded against the wrong van, and the pair moves in opposite directions.020406080~34Van 7, normally~33Van 8, normally~11Van 7, that week~62Van 8, that weekMiles per gallonOne tank recorded against the wrong van. The pair moves in opposite directions.
Fig 2. The signature of a mis-recorded fill. Two vehicles departing from their own norms in opposite directions in the same week is almost never two problems.

This pattern is worth detecting explicitly because it is common, because it looks alarming on the bad half, and because a system that flags van seven alone sends somebody to have a conversation about a problem that does not exist.

The check is simple: when a vehicle’s economy is anomalously poor, look for another vehicle with an anomalously good week in the same period, and mention the possibility in the query. “Van 7 and van 8 both look odd this week in opposite directions — was a fill recorded against the wrong one?” resolves it immediately.

When the vehicle cannot be determined

Sometimes there is genuinely no way to know, particularly with receipts submitted late with no odometer. Those records are marked unattributed rather than assigned to the most likely vehicle, and they appear in the fleet total but in no vehicle’s economy figure.

Guessing pollutes exactly the data the system exists to produce. An unattributed record is honest and its count is itself a useful metric: a fleet where fifteen per cent of fuel cannot be attributed to a vehicle has a process problem worth more than any individual query.

Next: what the economy figure actually means.

All posts