Platform
Trips, stops and idle
How positions become trips, and what counts as idle.
Trip detection is displacement-based, not time-based, so a tracker with an irregular schedule or a cache flush still yields one clean trip.
Rules
- A trip starts when a vehicle moves out of the stop radius around its resting position.
- It continues while the vehicle keeps moving; a gap in reporting does not end it.
- It ends when the vehicle stays inside the stop radius for the stop time. That dwell becomes a stop.
- Positions inside a trip while the vehicle is not moving accrue idle time only when the ignition is reported on. An explicit ignition-off is never idle; no ignition signal at all means idle is not counted.
- Where the ignition is reported, ignition-off also closes the trip.
The radius and dwell are settings: trips.stop.radius.m and trips.stop.min.seconds. The movement threshold movement.speed.kmh decides moving versus not.
Out-of-order and cached data
Positions carry the device's own timestamp. A tracker that was offline and later uploads its cache is placed where it belongs in time and stitched into one trip.
Distance
Measured displacement between fixes, refined by matching the track to the road network where map matching is available. Phones indoors produce GPS scatter; the stop radius absorbs most of it, and raising it for phone-tracked vehicles helps.