Relay Legs & Sub-Legs

Platform: 🖥️ Desktop only

See also: Creating and editing events, Classes, courses, and maps, Forking

Normal legs

Each leg has one runner. The first leg runner gets the team's start time, and each subsequent leg's start time is the previous leg's finish time (changeover).

Sub-legs

Sub-legs split a single leg position into parallel courses where multiple runners start simultaneously. For example:

  • Leg 1: one runner
  • Leg 2.1 and 2.2: two runners start at the same time on different courses
  • Leg 3: one runner

Timing logic:

  • Sub-leg runners' start time: Comes from the corresponding finisher on the previous leg. If the previous leg also had sub-legs, the first finisher's time goes to sub-leg 1, the second to sub-leg 2, etc.
  • Leg time calculation: A single sub-leg can have multiple runners. From each sub-leg, the fastest finisher is considered. The leg time is calculated from the latest start time to the moment when each sub-leg has its fastest runner finished.
  • Next leg's start time: The next leg begins when all sub-legs have at least one finisher. The start time is the finish time of the last completed sub-leg.

Examples

Example 1: Normal 3-leg relay

Leg Runner Start time Finish time Leg time
1 Runner A 10:00:00 10:32:15 32:15
2 Runner B 10:32:15 11:05:40 33:25
3 Runner C 11:05:40 11:38:55 33:15

Team total time: 1:38:55.

gantt
    title Normal 3-leg relay
    dateFormat HH:mm:ss
    axisFormat %H:%M
    section Legs
    Leg 1 (A)     :a1, 10:00:00, 10:32:15
    Leg 2 (B)     :a2, 10:32:15, 11:05:40
    Leg 3 (C)     :a3, 11:05:40, 11:38:55

Example 2: Sub-legs (legs 1, 2.1, 2.2, 3)

Leg Runner Start time Finish time Leg time
1 Runner A 10:00:00 10:32:15 32:15
2.1 Runner B 10:32:15 11:01:30 29:15
2.2 Runner C 10:32:15 11:05:40 33:25
3 Runner D 11:05:40 11:38:55 33:15

Sub-leg runners 2.1 and 2.2 both start at leg 1's finish time (10:32:15). Leg 3 starts when BOTH sub-legs have a finisher — the later finish time (11:05:40 from runner C) becomes leg 3's start time.

gantt
    title Sub-legs
    dateFormat HH:mm:ss
    axisFormat %H:%M
    section Legs
    Leg 1 (A)       :a1, 10:00:00, 10:32:15
    Leg 2.1 (B)     :a2, 10:32:15, 11:01:30
    Leg 2.2 (C)     :a3, 10:32:15, 11:05:40
    Leg 3 (D)       :a4, 11:05:40, 11:38:55

Example 3: Two runners on the same leg

A single leg has multiple runners (e.g. a mass start leg). The fastest runner determines the next leg's start.

Leg Runner Start time Finish time Leg time
1 Runner A 11:00 12:00 1:00:00
2 (runner 1) Runner B 12:00 12:30 0:30:00
2 (runner 2) Runner C 12:00 13:00 1:00:00
3 Runner D 12:30 14:00 1:30:00

Both leg 2 runners start at the same time (12:00). The FASTER runner (B, finishing at 12:30) determines leg 3's start time. Runner C's slower time does not affect the next leg.

gantt
    title Two runners on the same leg
    dateFormat HH:mm
    axisFormat %H:%M
    section Legs
    Leg 1 (A)          :a1, 11:00, 12:00
    Leg 2 - runner 1 (B) :a2, 12:00, 12:30
    Leg 2 - runner 2 (C) :a3, 12:00, 13:00
    Leg 3 (D)          :a4, 12:30, 14:00

Example 4: Consecutive sub-legs

When sub-legs follow sub-legs, each finisher feeds the corresponding next sub-leg in order.

Leg Runner Start time Finish time Leg time
1 Runner A 11:00 12:00 1:00:00
2.1 Runner B 12:00 12:30 0:30:00
2.2 Runner C 12:00 13:00 1:00:00
3.1 Runner D 12:30 14:00 1:30:00
3.2 Runner E 13:00 13:30 0:30:00
4 Runner F 14:00 15:00 1:00:00

Sub-leg 2.1 finishes first (12:30) → its finish time becomes sub-leg 3.1's start time. Sub-leg 2.2 finishes second (13:00) → its finish time becomes sub-leg 3.2's start time. Leg 4 starts when BOTH 3.1 and 3.2 are finished — the later time (14:00 from leg 3.1) determines leg 4's start time.

gantt
    title Consecutive sub-legs
    dateFormat HH:mm
    axisFormat %H:%M
    section Legs
    Leg 1 (A)     :a1, 11:00, 12:00
    Leg 2.1 (B)   :a2, 12:00, 12:30
    Leg 2.2 (C)   :a3, 12:00, 13:00
    Leg 3.1 (D)   :a4, 12:30, 14:00
    Leg 3.2 (E)   :a5, 13:00, 13:30
    Leg 4 (F)     :a6, 14:00, 15:00

Example 5: Sub-legs from sub-legs

A complex setup where sub-legs feed further sub-legs and the first-finisher rule chains.

Leg Runner Start time Finish time Leg time
1.1 Runner A 11:00 12:00 1:00:00
1.2 Runner B 11:00 12:30 1:30:00
2.1 Runner C 12:00 13:00 1:00:00
2.2 Runner D 12:00 12:30 0:30:00
3.1 Runner E 12:30 14:00 1:30:00
3.1 Runner F 12:30 13:30 1:00:00
4 Runner G 13:30 15:00 1:30:00

Sub-legs 1.1 and 1.2 start simultaneously. The first finisher (1.1 at 12:00) determines sub-legs 2.1 and 2.2's start time. Sub-leg 2.2 finishes first (12:30) → feeds sub-leg 3.1's start time. Sub-leg 3.1 has two runners — the faster one (F, 13:30) is considered. Leg 4 starts based on the fastest 3.1 runner's finish time (13:30).

gantt
    title Sub-legs from sub-legs
    dateFormat HH:mm
    axisFormat %H:%M
    section Legs
    Leg 1.1 (A)   :a1, 11:00, 12:00
    Leg 1.2 (B)   :a2, 11:00, 12:30
    Leg 2.1 (C)   :a3, 12:00, 13:00
    Leg 2.2 (D)   :a4, 12:00, 12:30
    Leg 3.1 (E)   :a5, 12:30, 14:00
    Leg 3.1 (F)   :a6, 12:30, 13:30
    Leg 4 (G)     :a7, 13:30, 15:00

Example 6: Changeover closing time and restart

  • Changeover closing time: 11:00:00
  • Restart time: 11:02:00
  • Leg 1 runner finishes at 11:03:00 (after the closing time)
  • Since the calculated start time (11:03:00) is after the closing time, the system uses the restart time (11:02:00)
  • Leg 2 runner gets a start time of 11:02:00 and their status changes to "On course"

Restart times can also be set manually from the monitoring Restarts tab.

Changeover closing time

In relays, you can set a Changeover closing time for each class. If a runner has not started their leg by this time, they are given a restart time. This is configured in the class settings under Restarts. See Example 6 for a concrete scenario.

See also: Monitoring — Restarts tab, Forking

Putting it together: Setting up a 4-leg relay with sub-legs

A relay where legs 2 and 3 each have two parallel sub-legs:

  1. Create a relay event and add a class (e.g. H21 Relay)
  2. Set the number of legs to 4 in the class settings
  3. Define legs 2 and 3 as sub-legs (2.1, 2.2 and 3.1, 3.2)
  4. Define courses for each leg and sub-leg in Classes, courses, and maps
  5. Define forking if runners on the same sub-leg need different course variations
  6. If needed, set the changeover closing time and restart time for the class
  7. Monitor changeovers in the event monitor — the system calculates all start times automatically according to the rules above