# Leaderboard

![Interactive leaderboard from real-time geolocations; switch contests & stages, optimized for mobile usage](/files/JOLkDtyCizEt7l6vmvzn)

**Samples:**&#x20;

* Live sample, 100km-Duathlon around Dresden, one team starts every minute \
  <https://edge.racemap.com/timing/100KmDuathlon2018_Repeat>
* Past sample, SoloRunJena, six-month permanent race, participants join the challenge over an extended period <https://edge.racemap.com/timing/lobdeburg_2021>
* Past sample, Damloop Home Edition with 2,000+ participants, 24-hour virtual race, participants contribute activities from everywhere <https://edge.racemap.com/timing/dam-tot-damloop-home-edition-10em_2020>

### Features and advantages of GPS timing

**Scales to the largest events** with 5,000+ participants.

**Effortless results**: With virtual splits or checkpoints and with geo data of participants, no need for complex timing hardware and RFID tags.&#x20;

**Flexible splits**: Adjust settings (add a new checkpoint, move start split, etc.) of a live event or even of a past event, and refresh results with new parameters within seconds.

**Live scoring:** Data is processed in real-time, and results are available right away.

**Proof of activities**: Athletes contribute their activities using any device.

* [Racemap Tracking App](https://racemap.com/apps)
* [GPS live trackers ](https://docs.racemap.com/hardware-for-live-tracking)
* [Upload recorded activities](https://docs.racemap.com/how-to-use-live-tracking/activity-upload) from fitness trackers and wearables after the activity

{% hint style="success" %}
Join the decentral, permanent race "Easy QR Code Run" (passcode 6G615L).

* Leaderboard: <https://racemap.com/timing/qrcode-test>
* Tracking map: <https://racemap.com/player/qrcode-test>

You can either contribute your recorded activity [racemap.com/upload?key=6G615L](https://racemap.com/upload?key=6G615L) or you can connect Racemap App for live tracking of this event:&#x20;

* Press the link <https://racemap.app/redeem_key?key=6G615L> or
* Scan the QR code (the QR code is equal to the above link) \
  &#x20;<img src="/files/HrjvV95YDNCn7DtCOAyx" alt="" data-size="original">&#x20;
  {% endhint %}

#### Data APIs with timestamps

Query Racemap Data APIs to retrieve geofence passings for use in your applications, such as processing timestamps within your timing software. This integration allows for seamless transfer of event-related data.

{% tabs %}
{% tab title="\*/times API " %}
Raw data: All detections at geofences.

{% content-ref url="/pages/-MZHS89A2\_1gjjvVpUfO" %}
[\*/times, reads and raw data](/api/times.md)
{% endcontent-ref %}
{% endtab %}

{% tab title="\*/ranks API" %}
Results: Data from a specific leaderboard.

{% content-ref url="/pages/-MZHQpwp749Eg0tOuYuX" %}
[\*/ranks, ranking and results](/api/ranks.md)
{% endcontent-ref %}
{% endtab %}
{% endtabs %}

#### Integrate 3rd party result lists

Embed 3rd party results such as RACE|RESULT instead of showing a Racemap leaderboard. \
Sample: [https://racemap.com/player/sample-integrated-results](https://racemap.com/player/sample-integrated-results#color=C41011)&#x20;

![](/files/1aL1pYvH1U3QFEnvzmOU)

### Information in the leaderboard

#### Columns in the result list

* (Live)rank,
* Race number,
* Name and
* Finish- and split results.
* Filter tags such as Status: DNF, DNS, DSQ or Class: Men, Mixed, Woman, Orga \
  Disable specific tags to hide associated devices—for example, exclude Orga from the leaderboard. <br>

  <figure><img src="/files/UDmkbAc9INnAF7VzAwBz" alt=""><figcaption></figcaption></figure>

#### Customize the leaderboard and select elements

* <img src="/files/-M8eDL5Mjc41wa0L70cU" alt="" data-size="line"> Progress with current distance,
* <img src="/files/-MUDnAQe60g4vXqO3cUU" alt="" data-size="line"> Link to tracking map with the selected participant,
* <img src="/files/-MM-vTsmoeRUl28YxIbR" alt="" data-size="line"> Live status shows if a participant is currently active.
* <img src="/files/3apkkgOFNTw0oAyo6aRI" alt="" data-size="line"> or <img src="/files/MXaXd1Xa1OEEZ3WD56z3" alt="" data-size="line"> Select split name, distance, and icon (or nothing) for the column's head.&#x20;
* Active duration: The time within the start- and end time of an event when the device transmits coordinates and exceeds a speed of 1 km/h. &#x20;
* Rest duration: The time during an event when the device sends location data and moves at a speed less than 1 km/h. &#x20;
* Team challenge where participants collectively aim to achieve a set distance across all contributed activities, e.g. <https://racemap.com/timing/virtual-race>\
  &#x20;<img src="/files/-MYzYpOalK7LhYtgpa4w" alt="" data-size="original">&#x20;

#### Settings

Open the settings in the leaderboard with the <img src="/files/AOxzqo7CcHOdM8rizTbX" alt="" data-size="line">-button.

&#x20;![](/files/GK4DFtboJlqZKXFp04Ke)

* Start times: Opens an extra column with the timestamp when the start geofence was crossed. Showing the start time is useful for permanent timing events.&#x20;
* Delta times: The duration measured from the previous split, as opposed to the time difference from the event's start.
* Online participant: If our system receives live data from a specific participant. For running events only.&#x20;
* Upload activity: For participants to import recorded activities afterward.

#### Filter categories

Open filter options in the leaderboard with the <img src="/files/DlUtRfrYhvcIOTxjAZbI" alt="" data-size="line">-button. The categories are defined with `tags` in the participant data.

{% content-ref url="/pages/-M3ehZR5FRb3OtNJtvds" %}
[Import participant data](/api-import-and-export-data.md)
{% endcontent-ref %}

![Filter participants and show the ranks per each category](/files/PkPs1kuB1qjIhHLHQpu6)

### Flexible application

#### Comparison of activities

Assessing and contrasting activities is not bound by time or location restrictions. The leaderboard dynamically compares location data based on the event settings, considering geofences and participant location data to provide flexible results.

{% tabs %}
{% tab title="Anytime" %}
Two scenarios:

* Regular event: Participants start nearly simultaneously.
* Virtual race or permanent timing: Participants start at various times.
  {% endtab %}

{% tab title="Everywhere" %}
Two scenarios:

* Regular event: Participants follow a defined race course, moving from the start point to the finish line.&#x20;
* Virtual race: Participants provide activities from any location, without the constraints of a specific race course.
  {% endtab %}
  {% endtabs %}

#### Leaderboard geodata processing

* Net results: Time difference from the timestamp at the start geofence
* Auto-update of the leaderboard every ten seconds
* Results of one second accuracy

<table><thead><tr><th width="157.33333333333331">Feature</th><th>Participants move on given track</th><th>Without race track (virtual race)</th></tr></thead><tbody><tr><td>Mapping of geolocations</td><td>Projection of device locations on the shadowtrack within <em>Max Mapping Distance</em>, according to <em>Min-</em> and <em>Max Speed Filter</em> (advanced event settings) </td><td>-</td></tr><tr><td>Detection of start split</td><td><strong>A:</strong> LAST coordinate at the start split during the event <br><strong>B:</strong> MISSING coordinates at start: speed from 1st ten coordinates following the start, extrapolation back for determination of the timestamp of start passing <br><strong>C:</strong> MISSING coordinates at start: provide start timestamp <br>c1 <code>First Time</code> in <a href="/pages/-M3ehZR5FRb3OtNJtvds">participant list</a> of event <br>c2 <code>startTime</code> in <a href="/pages/-MBKork_GNvfGpnpwShV">CSV import</a> <br>c3 <code>times.start</code> in <a href="/pages/-LTq5TdE6GKt2S6dgesz">generic import</a></td><td>FIRST coordinate during the event</td></tr><tr><td>Detection of intermediate splits</td><td>Linear interpolation between the two closest mapped geolocations</td><td>Device covers the distance of corresponding split</td></tr><tr><td>Detection of finish split</td><td><strong>A:</strong> FIRST geolocation at the coordinate of finish split <br><strong>B:</strong> MISSING coordinates at finish: provide finish timestamp <br>b1 <code>Last Time</code> in <a href="/pages/-M3ehZR5FRb3OtNJtvds">participant list</a> of event <br>b2 <code>endTime</code> in <a href="/pages/-MBKork_GNvfGpnpwShV">CSV import</a> <br>b3 <code>times.end</code> in <a href="/pages/-LTq5TdE6GKt2S6dgesz">generic import</a></td><td>Device covers distance of finish</td></tr><tr><td>Target</td><td>Distance = length of shadowtrack (needed duration is calculated)</td><td>Distance (duration is calculated) OR duration (achieved distance is calculated) </td></tr><tr><td>Speed filters</td><td>-</td><td>Segments that do not fit <em>Min-</em> and <em>Max Speed Filter</em> are not considered</td></tr><tr><td>Segmentation</td><td>No segmentation: participants provide activities from the start to the finish geofence following the shadowtrack</td><td><strong>A:</strong> Participants contribute multiple activities to accumulate the total activity (Monday workout + Wednesday training etc.) <br><strong>B:</strong> With keys: sum up activities (Racemap App + upload) to an aggregated activity <br><strong>C:</strong> If the aggregated activity > target, detection of finish from the fastest segment corresponding to the set target<br><strong>D:</strong> Breaks without geolocations (duration &#x26; distance between two locations) are ignored eg. stop recording activity or rest between two activities </td></tr></tbody></table>

### Accuracy

Comparison of the leaderboard solution and a professional timing solution at the [100km-Duathlon](http://100km-duathlon.de/), extensive [description of this project in our blog](https://racemap.com/blog/transponder-timing-powers-gps-tracking).

* R[esults of GPS timing](https://racemap.com/timing/100km-duathlon_2018-05-05) corresponding to data of GPS Live Trackers
* P[rofessional scoring](https://my.raceresult.com/96221/?lang=de#1_438FA5) corresponding to active transponders

The comparison shows:

* The leaderboard provides results from geolocations and virtual splits with low effort, no timekeeping system is needed.
* The same scoring with leaderboard and with professional timing solution.
* Accuracy depending on tracking interval of GPS device, deviation < 1 min.

### Best practice

#### Leaderboard for an event with a given route

**Prevent unintentional start- and finish reads:** If participants wait before starting their race and the GPS device already sends locations close to the start geofence, then the "start" detection can be triggered too early. To prevent unintentional reads of start and finish just move the location of the start split 100 m following the shadowtrack (100 m behind real start area). Finish split: 100 m upfront the real finish area.&#x20;

**Combining RFID timing data with intermediate geofences:** To enhance long-distance event timing as for ultra trails or rallies, you can combine precise start and finish detections with extensive flexible splits. Integrate start- and finish times from the timing system into a comprehensive leaderboard, including intermediate splits at geofences. Learn how to import start and finish reads from your timekeeping system:

* [Using Racemap import](https://docs.racemap.com/api-import-and-export-data/import-basics/metadata-api)&#x20;
* [With CSV upload](https://docs.racemap.com/api-import-and-export-data/import-data-from-csv)&#x20;
* [Using RACE|RESULT simple API](https://docs.racemap.com/api-import-and-export-data/import-basics/metadata-import-via-rr)&#x20;

#### Leaderboard for a virtual race without a given race course

Comparison of activities for an event without a given racetrack like a virtual race or an activity challenge:

* Leaderboard <https://racemap.com/timing/virtual-race>
* Activity map from raw geodata <https://racemap.com/player/virtual-race>
* Map showing the progress virtually on a track (from the same location data): <https://racemap.com/player/virtual-race-pin-on-track>

Participants contribute their exercises at any time and from everywhere. Provide a leaderboard comparing the individual workouts of every participant and a tracking map showing the current location or progress.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.racemap.com/live-tracking/gps-timing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
