GPS Fleet Time Anchoring & Drift Detection
GPS trackers drift. Cellular gateways buffer. By the time a geofence event reaches your database, "when did this actually happen?" has three different answers. temporalBLOCK gives your fleet one certified time anchor over plain HTTPS — no atomic clock, no PTP hardware — and stores every event with a Spiral coordinate you can query by time-of-day phase.
Forward Traccar events straight into the event store
Running a self-hosted Traccar server? Point its event forwarding at /api/v1/ingest/traccar. Each geofence entry/exit and motion event becomes a tracked-object event — Spiral-stamped server-side at the device's fix time, tenant-scoped to your account, with latitude/longitude preserved. Re-delivered events are idempotent, and unmapped housekeeping events are acknowledged without creating junk rows. Standard tier or higher.
# Point your Traccar server's event forwarding (JSON mode) at # temporalBLOCK. Each geofence or motion event is Spiral-stamped # server-side at the device's fix time and stored under your account. # traccar.xml <entry key='event.forward.enable'>true</entry> <entry key='event.forward.url'> https://api.temporalblock.com/api/v1/ingest/traccar </entry> <entry key='event.forward.header'>X-API-Key: YOUR_KEY</entry> # Mapping: geofenceEnter → enter · geofenceExit → exit # deviceMoving → move · deviceStopped → dwell # Everything else is acknowledged and skipped — no retry storms.
Detect device clock drift without atomic hardware
The SDK's ClockAnchor helper samples the public anchored-now endpoint on an interval, applies the classic RTT-midpoint correction, and tracks the trend: the current offset between the device clock and the NTP/NTS-disciplined server anchor, a confidence radius bounded by observed round-trip time, and a drift rate in parts-per-million. Alert when a tracker's clock starts running away — before its timestamps poison your event history.
import { ClockAnchor } from "temporalblock";
// Estimate each device's clock offset against the disciplined server
// anchor — RTT-midpoint corrected, with a drift trend in ppm.
const anchor = new ClockAnchor({
baseUrl: "https://api.temporalblock.com/api",
intervalMs: 30_000,
onSample: (sample, state) => {
if (state.driftPpm !== null && Math.abs(state.driftPpm) > 50) {
console.warn("clock drifting:", state.driftPpm.toFixed(1), "ppm");
}
},
});
anchor.start();
// Timestamp outgoing GPS fixes with the corrected clock:
const fixTime = anchor.correctedNow();Honest limits: this is a software estimate over ordinary HTTPS — typically tens of milliseconds of confidence. It is built for drift detection and fleet-level consistency, not for hard-real-time control or sub-microsecond envelopes. For those, dedicated deployments offer PTP hardware timestamping.
Query fleet history by time-of-day phase
Stored events land in the same store as Vision Block tracking events, so GET /v1/events (Pro+) works out of the box — including the Spiral-proximity scan. Ask "show me every geofence entry that happened around this time of day in the last month" with a single query: the hr rung cycles once per day, so anchoring on it filters by time-of-day phase across calendar days.
// Query stored fleet events back — including a Spiral-proximity scan
// for "same time-of-day" recurrences across days (Pro+).
const res = await fetch(
"https://api.temporalblock.com/api/v1/events?" +
new URLSearchParams({
fromCoord: String(Date.now() - 30 * 86_400_000),
toCoord: String(Date.now()),
proximityAnchorMs: String(Date.now()),
proximityRungs: "hr", // hr rung cycles once per day
proximityTolerance: "0.02", // ±~29 minutes of time-of-day
}),
{ headers: { "X-API-Key": process.env.TBLK_API_KEY } }
).then((r) => r.json());
// Each item carries the device id (actorNames.actor1), the event type
// (actorNames.actor2), geo lat/lon, and the stored Spiral coordinate.- Geofence audit trails — every enter/exit stored with a certified stamp at the device's fix time, idempotent under webhook retries.
- Drift-based maintenance flags — a tracker whose offset trend exceeds a ppm threshold gets flagged before its data becomes unusable.
- Recurring-pattern analysis — proximity queries surface same-time-of-day or same-weekday recurrences without date arithmetic.
- Mixed fleets — Traccar-forwarded events and direct Vision Block
trackingEventsshare one store, one tenant scope, one query surface.
Anchor your fleet today
The anchored-now endpoint and ClockAnchor helper work on every tier. Traccar ingest requires Standard or higher; event queries require Pro. No credit card to start.
Related
Temporal Spiral is patent pending — U.S. Provisional Application No. 64/065,213 (filed 2026-05-14).