Round Robin
Overview
A Round Robin draw divides participants into groups where every participant plays every other participant within their group. Results are determined by tallying wins, losses, and other tie-breaking criteria rather than by single-match elimination.
In the factory, this draw type is represented by the constant ROUND_ROBIN. There is also a DOUBLE_ROUND_ROBIN variant where each participant plays every other participant twice.
Structure
- The draw uses a
CONTAINERstructure type that holds multipleITEMstructures (groups). - Each group is an independent round robin where every participant plays every other participant once.
- Group sizes are configurable (commonly 3 or 4 participants per group).
- Results within each group are determined by a tally policy.
Group A (4 participants):
Round 1: P1 vs P2, P3 vs P4
Round 2: P1 vs P3, P2 vs P4
Round 3: P1 vs P4, P2 vs P3
Group B (4 participants):
Round 1: P5 vs P6, P7 vs P8
...
Tally and Finishing Positions
Finishing positions within each group are determined by the roundRobinTallyPolicy. The default tally considers:
- Match wins/losses ratio
- Head-to-head results (when two participants are tied)
- Sets won/lost ratio
- Games won/lost ratio
- Points won/lost ratio (if applicable)
The tally policy is configurable. See the Round Robin Tally Policy documentation.
Use Cases
- Group stages of larger tournaments that feed into playoff brackets.
- Leagues and dual-format events.
- Small tournaments where every participant should play multiple matchUps.
- Qualifying rounds where group winners advance.
Generation
const { drawDefinition } = engine.generateDrawDefinition({
drawSize: 16,
drawType: 'ROUND_ROBIN',
structureOptions: {
groupSize: 4, // 4 participants per group (default)
},
});
Related
- Round Robin with Playoff -- Round robin groups followed by knockout playoffs
- Round Robin Tally Policy -- Configuring tally and tie-breaking rules
- Finishing Positions -- How finishing positions are determined
- Draw Types Overview -- List of all pre-defined draw types