> ## Documentation Index
> Fetch the complete documentation index at: https://docs.time2.bike/llms.txt
> Use this file to discover all available pages before exploring further.

# Live Timing overview

> Run race-day timing on a phone or laptop — even offline.

**Live Timing** is Time2Bike's race-day timing surface. It runs in any modern browser, records finishes locally first, and reconciles to the server when you're online. You can use it for everything from a small group ride to a dual-slalom bracket with four operators.

<img src="https://mintcdn.com/time2bike/gd86sIECJkXq3-wr/images/timing/home.png?fit=max&auto=format&n=gd86sIECJkXq3-wr&q=85&s=2ba84a76974cf8b9d7dd8a6d8247cabb" alt="Live Timing" width="2522" height="1620" data-path="images/timing/home.png" />

## Why it exists

Race day phones are outdoors, in bright sun, on flaky LTE, and often handed to volunteers who aren't org admins. Live Timing is built around those constraints:

* **Offline-first**. Finishes are written to IndexedDB before they ever hit the network. Network is a sync target, not a dependency.
* **Idempotent**. Every event has a client-generated UUID; resending the same event is a no-op.
* **Absolute timestamps**. We never store "seconds since start"; we store wall-clock + clock-offset and reduce later.
* **Multi-device**. Four phones on the same session merge cleanly because the reducer is the same client-side and server-side.
* **Audit-friendly**. The event log is append-only, including deletes.

## How to navigate the docs

* New volunteer? Start with [Operator quickstart](/timing/operator-quickstart).
* Setting up your first session? Read [Concepts](/timing/concepts/sessions-and-races) first.
* Running a bracket? See [Dual slalom](/timing/operating/dual-slalom) and [Brackets](/timing/operating/brackets).
* Using an RFID pad? See [RFID](/timing/hardware/rfid).
* Done racing? See [Finalize & publish](/timing/finishing/finalize-and-publish).
