> ## 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.

# Sessions & races

> How timing sessions, races, and operators relate.

A **timing session** is the unit of timing work for race day. One session covers one timing setup — typically one race, or for brackets, all rounds of one bracket.

## Hierarchy

```
event
  ├── race "Cat 1 Men"  ──────────┐
  ├── race "Cat 2 Men"  ──────────┼── timing session "Morning XC"
  └── race "Open Women" ──────────┘
```

A session belongs to one event and references one or more `raceIds`. Operators record finishes scoped to a specific race (via the race tab at the top of the operator screen), so the same session timer can serve multiple categories that race together.

## Why multiple races in one session

In practice many disciplines run multiple categories on one clock:

* A criterium where Cat 1/2/3 start together.
* An XC race with three category waves but the same finish line.
* A dual-slalom bracket whose "races" are seeding + bracket rounds.

The session owns the clock, the operator screen, and the event log. The race tab decides which race a given finish belongs to.

## Session types

* `standard` — one operator, plate-input or tap-to-finish driven. 95% of races.
* `dualSlalom` — multi-device, lane-driven. See [Dual slalom](/timing/operating/dual-slalom).

## Session lifecycle

```
idle ──▶ running ──▶ stopped ──▶ finalized ──▶ published
              │
              └─▶ paused ──▶ running
```

* **idle** — created, nothing recorded yet.
* **running** — the clock is alive; operators are recording.
* **paused** — see [pauseSemantics](#pause-semantics) below.
* **stopped** — the clock is stopped but the session is still editable.
* **finalized** — locked. No more events accepted.
* **published** — visible on the public results page.

<img src="https://mintcdn.com/time2bike/gd86sIECJkXq3-wr/images/timing/status.png?fit=max&auto=format&n=gd86sIECJkXq3-wr&q=85&s=665cc9d0011deb2dd80917956d6631fb" alt="Status" width="1814" height="110" data-path="images/timing/status.png" />

## Pause semantics

Set per session at creation:

* **frozenClock** — pause stops elapsed time for everyone. Best for slalom and "we have a course hold" pauses.
* **softPause** — wall clock keeps going; pause just hides controls. Best for "I'm pausing because the volunteer is on a snack break".
