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
- 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 happened | What it looks like | How it is caught |
|---|---|---|
| Transposed digits | 84,213 becomes 84,231 | A small backwards jump next time |
| Dropped a digit | 84,213 becomes 8,421 | An enormous backwards jump |
| Added a digit | 84,213 becomes 842,133 | An impossible distance in one fill |
| Entered the trip meter | 84,213 becomes 312 | Value far below every previous reading |
| Entered the litres | 84,213 becomes 54 | Two fields with suspiciously similar values |
| Same as last time | 84,213 twice | Zero 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
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