Appearance
Position Quality
What this chapter covers
A tracker's raw stream arrives noisy: positions jump, clocks drift, parked trucks report phantom crawl speed, and messages stored during a dead zone arrive hours late in a burst. This chapter explains the quality ladder — how every stored row is graded, from a clean trusted fix down to an audit-only reject — and why that grade governs everything the engine does next. The rule underneath it all: only telemetry the engine actually trusts is allowed to move the truck's state.
The picture
The behavior
Every fix that survives the pipeline is assigned one grade. The grade is what the rest of the platform reads.
- Accepted (trusted). A clean fix. It renders on the authoritative trail and it can advance every part of vehicle state.
- Jitter (degraded). An accepted-but-lower-confidence fix. It is kept because stop and trip detection still benefit from it, but it is filtered out of the clean map trail.
- Spike. A structurally valid message whose position is unusable — a cell-tower fallback location or a jump implying an impossible speed. It is stored for audit and replay but never allowed to change state.
- Filtered. A fix hard-rejected before classification because it fails a basic physical sanity check. Stored for audit only.
- Late. A fix that arrived after a newer row had already been processed — a dead-zone backfill or a post-reconnect flush. Kept distinctly so it stays observable and replayable, but excluded from the live trail.
- No-fix. A status frame with no coordinates — never classified, because there is nothing to grade.
Only accepted and jitter rows advance the vehicle's movement state. Spike, filtered, and late rows are inert: they never open a trip, close a stop, resolve a gap, advance a mission, or raise an alert.
The pre-filter: basic physical sanity
Before a fix is graded in detail, it must clear a coarse filter that rejects the physically impossible:
- missing or impossible coordinates, including the null island (0, 0)
- a timestamp more than 5 minutes in the future
- a timestamp more than 30 days in the past
- a speed above 300 km/h, or a negative speed
A row that fails becomes filtered. It can be stored for the audit trail, but it is barred from touching operational state.
Classification: earning or losing trust
Surviving fixes run a first-match ladder of checks, each of which can pull a fix down from trusted. The checks look for, among other things:
- a duplicate or out-of-order capture timestamp
- the device's own "this fix is invalid" signal
- CAN bus evidence that the truck is stationary while GPS claims speed
- movement reported while the ignition is off
- jitter: a position wandering within a tight window (about 30 m of displacement over a 60-second window) that betrays a stationary truck's GPS drift rather than real travel
- an implied speed between fixes above 200 km/h — physically impossible on the corridor
- reported speed that disagrees with the distance actually covered
- suspicious null-speed and very-low-speed readings
A fix that trips a serious check becomes a spike; a fix with milder imperfections becomes jitter; a clean fix stays accepted.
Buffered delivery
When a truck drives through a cellular dead zone, its tracker stores readings and flushes them in a burst once it reconnects. That burst is real history — but it is old history, and it must never be mistaken for a live signal. Korido detects buffered delivery three ways:
- the device itself flags the record as buffered — taken as authoritative
- the device's clock drifted far enough from the network's that its capture time cannot be trusted as live
- the delivery reached Korido more than 5 minutes after the network first received it, meaning the ingress path itself backlogged
A buffered row still runs the full classification and state-machine logic, so the engine can faithfully reconstruct what happened during the dead zone. What it does not do is advance the live clocks. This is the crucial guarantee: a delayed flush can prove a truck's past, but it can never make the truck look currently connected. If buffered data advanced the live clocks, a truck that drove into a dead zone and stopped reporting would appear online every time a stale batch finally caught up.
No-fix rows
A status frame persists as a no-fix row: a real telemetry record with an empty position and no quality grade — a legitimate record that simply has no coordinates to grade. It advances the truck's heartbeat and ignition memory, feeds fuel detection, and contributes evidence when a signal gap is being resolved, while every map-and-geometry machine steps over it.
How quality shapes everything downstream
The quality grade is the gate to all higher meaning:
- Only trusted movement opens a trip — and only once the truck has genuinely left a 200 m stationary-noise radius, so a burst of parked GPS jitter opens nothing.
- Stops, gaps, distance, mission progress, and Route Guard all read accepted (and, where useful, jitter) rows and ignore the rest.
- Spike, filtered, and late rows exist purely as an audit and replay record.
- The clean map trail shows only accepted fixes; degraded jitter is kept for detection but held off the authoritative trail.
The whole point of the ladder is that one bad GPS point can never rewrite the dashboard, close a stop, advance a mission, or trigger a reroute.
Edge cases
- A parked truck emits Doppler speed-noise. A stationary truck can report 5–7 km/h with its position jittering within ~25 m. The jitter check and the 200 m departure radius together reject it, so those seconds of noise open no phantom trip.
- Two readings inside the same millisecond. The capture timestamp is preserved to microsecond precision, so two genuinely distinct same-millisecond readings both survive the duplicate check instead of one being silently absorbed.
- A dead-zone flush arrives hours late. It is graded buffered: fully classified so the history is reconstructed, but barred from advancing the live clocks, so it cannot make a long-silent truck look live.
- A device clock jumps into the future. The future-tolerance limit and a clamp on the live clock stop a single corrupt future timestamp from permanently suppressing that truck's offline detection.
- A cell-tower fallback location. Reported when GPS is unavailable, it lands as a spike — stored for audit, never allowed to move the truck on the map.
Known limitations
The quality ladder is a filter. It decides how far to trust each fix; it cannot manufacture accuracy the satellite signal never had.
- Consumer GPS error is physical, and the ladder mitigates rather than eliminates it. Jitter around a parked truck and the occasional wild spike are inherent to how a low-cost GPS receiver works. The checks catch the cases that break a physical rule — impossible speed, drift within a tight radius, a disagreement with CAN — but a wrong position that happens to violate no rule can still be graded accepted. The ladder makes a bad point rare and inert, not impossible.
- A cell-tower fallback is rejected, so a GPS-starved truck shows no fresh position. When a device cannot get a satellite fix it may report a coarse tower-based location; the ladder grades that a spike and holds it off the map. The trade is deliberate — a truck in a long GPS-dead stretch is shown at its last trusted position rather than jumped to an unreliable one — but it means no live position is drawn for that window.
How it connects
- Before: The ingestion pipeline — how rows reach the grader.
- Next: Liveness — how graded fixes and heartbeats become the live driving / parked / Sans GPS / offline states.
- Trips, stops, and signal gaps — the structures built from accepted rows — are covered in Part 3 — The fleet engine.