Skip to main content

Live Predictive Tracking

Live Predictive Tracking (LPT) is a Race Roster feature. Spectators see predicted progress on the course as you upload split times. RunScore does not compute the predictions. It uploads structured JSON with start times, finish times, race status, and one column per LPT split.

Unstructured (plain-text) uploads cannot drive LPT. For ordinary live results without tracking, see Publish Live Results.

Set up the Race Roster results race before or in parallel with RunScore. This section is the RunScore side: events, listing columns, and what you upload. For Race Roster dashboard steps, use the linked articles.

Splits must match

The listing Field Header must equal the Race Roster segment name. The event distance must match that segment, including at the mat/decoder. Event names can differ. One mismatch and that checkpoint does not drive tracking.


In this section​

PageDescription
Race Roster setupChecklist and links. Skip if the results race already has LPT and segments
RunScore setupSample race, events, and listing columns that match those segments
DecodersEach mat location is an LPT split
Publish Live Predictive Tracking@AutoResultsLPT, auto-run, and verify

What RunScore sends​

Every upload should include the same columns. Empty cell if that athlete has no value yet (not started, not finished, split not hit).

Without a dummy status time of 0, RunScore only posts people who already have a split or finish. LPT then shows nothing until the first mat. See RunScore setup. Add estimated finish time on those rows so Race Roster can plot start → first split.

ColumnRequiredRunScore source
Chip start local (HH:MM:SS.MS)Yes, if you have a start matField after Event To Database (do not list the raw start event)
Gun start local (HH:MM:SS.MS)Optional fallback when there is no start-mat readEvent GunStart or a gun field
Gun timeYesElapsed finish; field or Finish minus GunStart
Chip timeYesElapsed finish; field or Finish minus ChipStart
One column per LPT segmentYesField or Event. Field Header = RR segment name. Clock time or elapsed — match the Race Roster setting
Race StatusYesRUNNER STATUS from @CalcStatus (STARTING / IN_PROGRESS / COMPLETE) — see RunScore setup
Bib, name, and/or teamYesDatabase fields
Estimated finish timeOptional, send itRegistration question → Estimated field. Plots people before the first split (e.g. 1k)
Division, city, placesOptionalDatabase fields

Race Roster maps columns by header label, not by segment id.

Cumulative (most road races): split elapsed time is start line → this checkpoint. Interval (duathlon, laps): previous segment → this one. Some Race Roster races expect clock time of day instead. Send the same kind of value Race Roster is configured for.

Start-mat reads are noisy. Copy event → field, then upload the field. See RunScore setup.