Zabudnuté heslo? Registrácia
Qualifications / Heats / Finals

This example looks at how you can manage events with qualification rounds and progressive heats in RACE RESULT 14. 

In this we show the core concepts of how to manage such events, but this example does not consider all possibilities, the basic methods shown here can be adapted to handle a range of requirements such as additional rounds, different genders, lap races and more. 

Event Format

In this event we have all participants registered in a single Contest and only use a single Gender. The event is based on a simple short race (modelled on a 1km cycling time trial), with a fixed start time and single detection for each round. We keep this example short with just 16 participants starting. 

The event starts with a Qualification round, where participants are assigned a unique individual start time.

From the Qualification round the best 8 will progress to the Semi-Finals, with 2 rounds of 4 participants. 

The Finals will be formed of the best 2 participants from each Semi-Final round. 

Timing Points

This setup uses a unique Timing Point for each, this isn't critical for this setup, but it makes it easier to understand the data later, especially if the event is spread out over multiple days

Results

The results setup here is kept as simple as possible. 

Given that T0 is irrelevant in this type of event where the same participant has multiple starts, we do not subtract this in our settings.

For each round we have a start time, which is a fixed time and a single finish detection at the relevant Timing Point, which is simply the first time after the start, and then for each round we calculate the individual participant's time.

We also calculate the number of rounds each participant has completed and their best time of the 3 rounds. 

For the qualification we set the times using the Adapt Data - Single Start feature which sets a static time for each participant at set intervals according to the sorting criteria. This could alternatively be calculated directly in the result or imported with the participant data. 

The Semi-Finals time uses a Choose() function based on the heat number (which we will calculate later) which then returns a time for each heat.  

Since the Finals are a single round we use a fixed time. 

Note that for both the Semi-Finals and Finals the times are in square brackets, this ensures that the software knows to convert this to a time that is internally stored as a decimal value in seconds. 

Rankings

For this we need 3 main ranks, one for each round, and also produce a final overall ranking which helps put everybody in one output list later on. 

Each of the round ranks filters on TimeX.Positive, so only those with a time in the round are ranked, the Semi-Finals additionally groups by the HeatNumber so that we only compare those of the same heat for the progression to the finals. 

Our final overall rank is based on the number of rounds completed from largest to smallest (so those who qualified for the Finals will have 3 rounds whereas those knocked out during Qualification will only have 1. We then sort based on their Finals time, Semi-Finals time and lastly the Qualification time. 

Round Progression

The most important part of this setup is how participants progress from Qualification to Semi-Finals to Finals. This is calculated automatically and dynamically using 2 User-Defined Fields.

Each User-Defined Field looks at the relevant rank to return a heat number for the next round.

For the SemiFinalHeat we take their Qualification rank as an input and return the heat number based on this using a Choose() function. 

Choose([QualificationRank];1;2;1;2;2;1;2;1)

To understand this, here is the mapping of the ranks to heats. 

Rank Heat   Rank Heat
1 1   5 2
2 2   6 1
3 1   7 2
4 2   8 1

Those with a Qualification Rank of 9 or higher therefore do not receive a SemiFinalHeat and do not progress.

For the Finals we can simplify this and use a simple If() statement to only take those in the top 2 of their Semi-Final heat, we need to also check that the rank is greater than 0, since those who are not ranked will return a rank of -1. 

If([SemiFinalsRank]<=2 AND [SemiFinalsRank]>0;1)

Outputs

Start Lists

For each round we produce a Start List of participants, for the Semi-Finals and Finals this is filtered to only qualified riders, and within each heat participants are sorted by their time from the previous round. 

For the Semi Finals we group by Contest and then concatenate "Semi Final " and their heat number, then sort by decimal value of their qualification time. 

The filter is used to only take those who have a SemiFinalHeat assigned. 

The Finals Start list applied the same logic but simply groups by "Finals" and filters on the FinalsHeat.

Results Lists

For results we want to show for each round the participants' times and also who has qualified to move on to the next round. 

Each round's result list is filtered and sorted by the corresponding rank, so they are only shown if they have completed the round. We also apply the same grouping / filtering logic from the Start Lists to group by the round / heat number. 

To show who has qualified we add a column which looks at the relevant rank and if this is less than or equal to the maximum rank to qualify shows a Q, for qualification this is the top 8.

We also created an overall results list, which uses the overall rank setup earlier. With this as the main sorting criteria we can then also easily and clearly show who qualified for each round, and we also show their best time in an additional column. 

  • Qualification_SemiFinals_Finals.ses
×

Máte otázku?

Náš tím vám rád osobne poradí.

Kontaktuj nás!

Tím v RACE RESULT rád posúdi vaše individuálne potreby, vyrieši existujúce problémy a zodpovie všetky vaše otázky. Neváhajte nás kontaktovať prostredníctvom poskytnutého formulára.

Ak máte otázku podpory, pridajte svoje ID udalosti!

Prečítal som si ochrana dát.