Short answer
A telematics record exists only when a trigger fires. Teltonika uses four at once, time, distance, angle and speed delta, and a zero disables each. So a report's timeline shows when values were written down, not when things happened, and the slope between two points belongs to the interval.
Key takeaways
- Teltonika writes a record when any of four triggers fires, time period, distance, heading angle or speed delta, and a zero value disables each one individually.
- A stationary vehicle satisfies neither the distance nor the angle trigger, so a parked tank depends entirely on the time period for any record to exist.
- The FMS standard puts the fuel level on the bus every 1,000 ms, but the tracker still decides which of those values it keeps.
- The same standard warns in its own words that "the mentioned resolution is not related to the accuracy of the signal", a step size is not a confidence.
- J1939 defines fuel level as a ratio of volumes, so every litre figure in a report depends on a configured tank capacity that may be wrong.
01A record is an event in its own right
The most common misreading of a fuel report is to treat its timeline as a record of what happened. It is not. It is a record of when a value was written down, and those two documents can diverge sharply. Teltonika writes a record when any of four criteria is satisfied simultaneously: a time period elapses, a distance is travelled, the heading turns through an angle, or the speed changes by a delta. Setting any of those to zero disables that trigger individually. So the density of points on a chart is a function of configuration and vehicle behaviour, not of what the fuel was doing. Two reports drawn from the same physical tank on the same day, by devices configured differently, can show different numbers of events, different durations and different rates, all correctly.
02Two of the four triggers go quiet exactly when you need them
The four triggers are not equally available in every situation, and the way they fail is systematic rather than random. A vehicle parked at a depot travels no distance, so the distance trigger never fires. It turns through no angle, so the angle trigger never fires. Its speed does not change, so the speed delta never fires. Only the time period remains, and if that has been set long, a very common economy, since a parked vehicle appears to have nothing to report, then a stop of two hours may produce two records with nothing between them. That is precisely the window in which a stationary theft would occur. So the configuration that seems most sensible for data cost is the configuration that blinds you during the interval of highest risk.
03The bus is fast; the recorder decides
It is reasonable to hope that a vehicle bus solves this, because a CAN message is far more frequent than a telematics record. The FMS standard specifies PGN 65276, which carries the fuel level in SPN 96, with a repetition rate of 1,000 milliseconds. The value is genuinely there once a second. But availability on the bus is not the same as presence in a report. The tracker reads the bus continuously and then applies its acquisition triggers to decide which readings become records, so a one-second bus rate becomes whatever the record interval is by the time a server sees it. The bus removes one excuse, the data existed, while leaving the recording decision exactly where it was. Configuring the bus is not configuring the report.
04The standard warns you not to trust its own precision
Two properties of the bus value deserve more scepticism than they usually get. First, SPN 96 has a gain of 0.4% per bit, so the transmitted level is quantised into steps of four thousandths of the tank's capacity, and no change smaller than one step can appear at all. Second, and more remarkable, the FMS standard states in its own words that the mentioned resolution is not related to the accuracy of the signal. That is a standards body telling implementers that its fine step size should not be read as confidence. A value reported to a tenth of a percent may be wrong by several percent, and the report will render it with the same number of digits either way. Precision in a display is a formatting decision, not a measurement property.
05What a ratio does to every litre figure
There is a further layer that decides the report before any timestamp matters. J1939 does not define fuel level as a volume. It defines it as the ratio of the volume of fuel to the total volume of the fuel storage container. Litres therefore never arrive from the bus; they are computed by multiplying that ratio by a tank capacity configured somewhere in the platform. If the configured capacity is wrong, a replacement tank, a mis-entered figure, a tractor swapped between trailers, every litre value in every report is wrong by the same proportion, consistently and invisibly, because the percentages remain perfectly plausible. This is the kind of defect that survives review for years, since nothing in the data looks anomalous. Only a physical fill measured against a delivery note exposes it.
06Why an apparent slope may belong to the interval
Now the consequence for a report. A chart draws a line between consecutive records, and a reader naturally interprets the steepness of that line as the speed of the change. But the line is an interpolation, and nothing was measured along it. A drop of 200 litres between a record at 14:00 and the next at 14:30 renders as a gentle half-hour decline whether the fuel left over the whole thirty minutes or in twenty seconds at 14:29. Since a coarse interval can only ever flatten a fast event and never steepen it, every rate computed from a long interval is a lower bound rather than a measurement. A gentle-looking slope is therefore consistent with a slow drain and equally consistent with a fast one that fell between two records.
07What to record so the report can be read
The remedy is mostly bookkeeping, and it is cheap relative to the confusion it prevents. Store the interval alongside every computed rate, so a reviewer can see whether a slope was measured over ten seconds or ten minutes. Store the movement state, which Teltonika evaluates every second, so a level comparison can be qualified rather than reconstructed later. Store the configured tank capacity as a versioned value with a date, because every litre figure descends from it. Set the time trigger short enough that a parked vehicle keeps producing records, since that is the interval the other three triggers cannot cover. And distinguish, in the interface itself, a point that was recorded from a line that was merely drawn between two points.
| Layer | Published behaviour | What it does NOT determine |
|---|---|---|
| Fuel level on the vehicle bus | PGN 65276 repeats every 1,000 ms | Which of those values ends up in a report |
| Bus value resolution | 0.4% of capacity per bit | The accuracy, the standard says so explicitly |
| Bus value units | A ratio, not a volume | Litres, those need a configured tank capacity |
| Tracker record triggers | Time, distance, angle, speed delta | Anything while a vehicle is parked, except time |
| Movement state | Evaluated every second | Whether it was stored beside the level |
| Smoothing filter | Steadies an unstable channel | When a real change began, it delays it |
| Line drawn between two records | An interpolation only | The actual rate, nothing was measured along it |
Figures and sources
- Teltonika record-acquisition triggers, a record exists only when one of them fires: four simultaneous methods: time (Min Period), distance, angle, speed delta; zero disables each (Source: Teltonika Telematics Wiki, FMB120 Data acquisition settings, as of 2026-08-31)
- Granularity at which movement state is evaluated, versus the record interval: movement criteria checked every second (Source: Teltonika Telematics Wiki, FMB120 Data acquisition settings, as of 2026-08-31)
- FMS/J1939 fuel level signal quantisation and broadcast rate: SPN 96: 0.4 % per bit gain, PGN 65276 repetition 1,000 ms (≈1.6 L per bit on a 400 L tank) (Source: FMS-Standard Interface Description Version 05 (07.07.2024), §1.1.2, as of 2026-08-31)
- FMS-Standard warning that the stated resolution is not a statement of accuracy: "The mentioned resolution is not related to the accuracy of the signal" (Source: FMS-Standard Interface Description Version 05 (07.07.2024), as of 2026-08-31)
- J1939 defines fuel level as a ratio, not a volume, so litres depend on a configured tank capacity: ratio of volume of fuel to the total volume of the fuel storage container (Source: FMS-Standard Interface Description Version 05, SPN 96 per SAE J1939, as of 2026-08-31)
- Teltonika warning that smoothing, applied to steady a channel, delays the appearance of a real change: "setting it too high could delay the response to real changes in fuel consumption" (Source: Teltonika Telematics Wiki, How to Fix Fuel Level Jumps in CAN or OBD Data, as of 2026-08-31)
- Capacitive fuel level sensor accuracy, stationary versus moving, the state a timestamp should carry: not more than 0.2% stationary; 1% for moving vehicles (Source: Technoton, Fuel level sensor DUT-E product specifications, as of 2026-08-31)
- OMNICOMM fuel level sensor response time on the ENTEK.AI catalogue, against the interval that governs it: response time < 1 second; RS-485 Modbus RTU (Source: ENTEK.AI product catalogue, as of 2026-08-31)
Questions
Why do my fuel records have gaps when the vehicle is parked?
Because three of the four record triggers depend on motion. A parked vehicle travels no distance, turns through no angle and changes no speed, so only the time period can produce a record. If that period is long, a two-hour stop yields two records with nothing between them.
Can I trust a fuel level reported to a tenth of a percent?
Not on the strength of its digits. The FMS standard states in its own words that "the mentioned resolution is not related to the accuracy of the signal". A step size of 0.4% per bit describes how finely the value can change, not how close it is to the truth. Precision in a display is a formatting choice.
Why do litre figures sometimes not match a delivery note?
Because J1939 sends a ratio of volumes, not a volume. Litres are computed by multiplying that ratio by a tank capacity configured in the platform, so a wrong capacity makes every litre value wrong by the same proportion while the percentages stay perfectly plausible. Only a physical fill checked against a document exposes it.
Is a gentle slope on a fuel chart evidence of a slow drain?
No. The line between two records is an interpolation and nothing was measured along it. A 200-litre drop between records thirty minutes apart looks identical whether the fuel left over the whole period or in twenty seconds near the end. A coarse interval can only flatten a fast event, never steepen it.

