← Dashboard

How KoB Works — Documentation

Everything you need to know about running a King of the Beach beach volleyball tournament.

How KoB Works

Basic Concept

King of the Beach (KoB) is a beach volleyball tournament format where players rotate partners each round while competing as individuals. Unlike traditional team-based tournaments, every player is ranked individually based on their performance across multiple rounds.

The system uses a round-robin rotation within each group where every player partners with every other player exactly once (in a 4-player group, this means 3 matches per round: A+B vs C+D, A+C vs B+D, A+D vs B+C). At the end of each round, players are redistributed to new courts based on their finish position, ensuring balanced competition throughout the tournament.

Example Tournament

Here's how a typical 16-player tournament (4 groups, 4 rounds) works:

Round Progression
Round 1:    [C1] [C2] [C3] [C4]  (random shuffle)
Round 2:    [C1] [C2] [C3] [C4]  (vertical seeding → ladder)
Round 3:    [C1] [C2] [C3] [C4]  (ladder: 2 up, 2 down)
Round 4:    [C1] [C2] [C3] [C4]  (ladder → Final)

16p is the special case where each tier (4 players) fills exactly one court.
		Winner = 1st place on Court 1 after final round.

Key Principles

  • Partner rotation — you play with and against everyone
  • Individual ranking — your score follows you, not your partner
  • Group position determines redistribution — finish higher, move up
  • Stable court tokens — share a QR code so groups can self-report scores

Tournament Formats

Random Seed Format

The first round is shuffled randomly. After that, players are sorted by finish position within their group and redistributed using vertical seeding (Round 1→2) followed by a ladder system (Round 2+). This format is flexible about round count and works well for casual tournaments.

Round 1 → 2: Vertical Seeding

After Round 1, all players are grouped by their finish position (all 1st places together, all 2nd places together, etc.). Within each tier, players are sorted by points descending, then by point differential descending. The flattened list is then distributed across groups in order.

Algorithm:
1. Group all players by finish position (1sts, 2nds, 3rds, 4ths)
2. Sort each tier by configured tie-breaking rules
3. Flatten: [1sts..., 2nds..., 3rds..., 4ths...]
4. Fill courts sequentially: top players → Court 1, next → Court 2, etc.

16 players (4 courts): Each tier has exactly 4 players
→ Court 1 = All 1st place (sorted)
→ Court 2 = All 2nd place (sorted)
→ Court 3 = All 3rd place (sorted)
→ Court 4 = All 4th place (sorted)

20 players (5 courts): Tiers cross boundaries
→ 1sts: top 4 → C1, 5th → C2
→ 2nds: top 3 → C2, next 2 → C3
→ 3rds: top 2 → C3, next 2 → C4, last → C5
→ 4ths: top 1 → C4, next 3 → C5

Round 2+: Ladder System

After Round 2, a ladder system takes effect. The top 2 players from each group move up (or stay), while the bottom 2 move down (or stay). This creates a continuous promotion/relegation dynamic.

Court 1: Keep 1st & 2nd, add 1st & 2nd from Court 2
Court 2: Add 3rd & 4th from Court 1, add 1st & 2nd from Court 3
Court 3: Add 3rd & 4th from Court 2, add 1st & 2nd from Court 4
Court 4: Keep 3rd & 4th, add 3rd & 4th from Court 3

Same logic extends for any court count ≥ 2.

Preseed Format

Players are seeded by their WVV points (or any numeric seed) using a snake draft. The tournament then follows a fixed bracket with recursive binary splits — similar to a tennis tournament bracket but with groups instead of eliminations.

Each round splits every bracket into a winner half (1st+2nd placements) and a loser half (3rd+4th placements). This continues until each group reaches its final position.

Bracket Tree Structure

The bracket tree is determined by the number of courts. Each round, every bracket of size N splits into two equal halves (Winners and Losers). Courts that complete their bracket path early become frozen.

16 Players (4 Courts, 3 Rounds):
Round 1:    [C1] [C2] [C3] [C4]     (snake seeding)
              ↓
Round 2:    [W1] [W2] | [L1] [L2]  (splitSize(4)=2 → 2W+2L, origin mixing)
              ↓          ↓
Round 3:  [F] [L(W)] | [TL] [BL]   (each bracket halves: 2→1F+1L(W), 2→1TL+1BL)

Winner bracket (C1,C2): 1sts+2nds → Court 1 (Gold), 3rds+4ths → Court 2 (Silver)
Loser bracket (C3,C4):  1sts+2nds → Court 3 (Bronze), 3rds+4ths → Court 4 (Iron)

32 Players (8 Courts, 4 Rounds):
R1→R2: splitSize(8)=4 → 4W + 4L
R2→R3: Each half of 8 splits independently (splitSize(8)=4 → 4W+4L in winners, same in losers)
R3→R4: Each quarter of 4 splits (splitSize(4)=2 → 2W+2L)

Frozen Groups

Frozen groups have completed their bracket path and will not be redistributed further. Their standings are final.

The freeze cascade depends on the group count. Lower groups tend to freeze earlier as they complete their bracket leaves.

Cascade freeze points (examples):
3 courts:  C3 after R2 (3→2W+1L, winners halve at R3)
4 courts:  C4 after R3 (4→2+2, then 2→1+1)
5 courts:  C5 after R2 (5→4+1, overflow freezes), C1-C4 after R4
7 courts:  C7 after R3 (7→4+3, losers 3→2+1), C1-C6 after R4
8 courts:  C8 after R4 (8→4+4, then 4→2+2, then 2→1+1)
16 courts: C16 after R5 (16→8+8, 8→4+4, 4→2+2, 2→1+1)

Frozen courts complete their bracket leaves early and don't participate in further splits.

Format Comparison

AspectRandom SeedPreseed
Round CountFlexibleFixed formula
RedistributionLadder (2 up, 2 down)Tiered binary split
SeedingRandom shuffleSnake by points
Player Count8–648–64
Best ForCasual / flexible schedulingCompetitive / structured brackets

Scoring Modes

Single Set

One set played to a target score (default 21, win by 2). Simple and fast — the most common choice for beach volleyball tournaments.

  • Target score: 21 points (configurable)
  • Win by 2 points
  • No cap — deuce continues indefinitely until a 2-point lead is achieved
  • Average duration: ~45 minutes

Best of 3

First to 2 sets wins. Each regular set is to 21 (win by 2). If a third set is needed, it's played to 15 (win by 2).

  • First to 2 sets wins the match
  • Regular sets to 21 points, win by 2
  • Deciding set to 15 points, win by 2
  • No cap on any set — deuce continues indefinitely
  • Average duration: ~55 minutes

Custom

Set your own point targets, set count, and deciding set points. Full flexibility for experimental or house-rule formats.

  • Set any number of sets to win
  • Set any regular set point target
  • Set any deciding set point target
  • Win by 2 always applies

Per-Group Overrides

Organizers can override the scoring mode for specific group types (e.g., use Best of 3 on standard 4-player groups but Single Set on 5-player or 6-player groups).

Overrides take effect from the next round. They do not retroactively change already-played matches.

Deuce-Aware Validation

When entering scores, the system validates that the winner reached the minimum points with the required win-by margin. Deuce rules are handled automatically.

If scores are tied at or above the target, play continues until one team leads by 2. The system accepts any valid deuce score.

Valid Score Examples

  • 21-19 (win by 2) ✓
  • 22-20 (deuce) ✓
  • 30-28 (extended deuce) ✓
  • 21-20 (win by 1) ✗ — rejected if win-by-2
  • 15-13 (deciding set) ✓

Tie-Breaking

Overview

Tie-breaking determines the final ordering of players within a group when they have the same total points. The system uses a configurable chain of factors to resolve ties.

Tie-Break Factors

IDIconLabelDescriptionDefault
round_pointsPPoints this roundPoints scored in the current round onlyEnabled
round_diff±Diff this roundPoint differential in the current round onlyEnabled
total_pointsΣTotal pointsTotal points scored across all roundsEnabled
total_diffΔTotal diffTotal point differential across all roundsEnabled
initial_order#SeedingOriginal seeding order (pre-determined)Enabled
dice🎲Dice (random)Random dice roll — fair but unpredictableDisabled
manualManual (organizer)Organizer can manually reorder tied playersDisabled

Icon Meaning

In the standings, each factor shows an icon indicating its role in resolving the tie:

P Tied — factor checked but did not separate players
P Deciding — this factor is currently the one separating players
P Won — player won on this factor
P Middle — player placed mid on this factor
P Lost — player lost on this factor

5p/6p Normalization

Non-standard group sizes (5-player and 6-player) use normalized scoring to ensure fairness compared to standard 4-player groups.

Round points are averaged per game played, and total points are normalized by dividing by 3 (the standard number of games per round).

Round points (5p/6p):
round_points = sum(matchPoints) / gamesPlayed

Total points (5p/6p):
Each round contributes roundRawPoints / 3
(3 = standard games per round, regardless of games actually played)

Example 5-player court:
Player A: 3 games, 39 pts → avg 13.0
Player B: 4 games, 48 pts → avg 12.0
Rank: A > B (higher average) even though B has more total points

Where Tie-Breaking Applies

ContextFactors Used
Group standingsAll enabled factors
Vertical seeding (Round 1→2)All enabled factors
Preseed redistributionAll enabled factors
Ladder rank picksAll enabled factors
Final positionsAll enabled factors

Configuring Tie-Breaks

Tournament organizers can configure the tie-break rules from the tournament dashboard:

  • Reorder factors by dragging them — higher factors are checked first
  • Disable factors you don't want to use
  • Choose the final tie-breaker (dice or manual) for ties that all enabled factors couldn't resolve

Group Types

Standard 4-Player Group

The standard configuration. 4 players play 3 matches per round, with each player partnering every other player exactly once.

3 matches per round:
Match 1: P1 + P2 vs P3 + P4
Match 2: P1 + P3 vs P2 + P4
Match 3: P1 + P4 vs P2 + P3

Ranking: Total points → Diff → playerId

3-Player Groups

When there are 3 leftover players, they form a 3-player group with a solo rotation format.

Each player takes a turn playing solo against the other two as a pair. This ensures everyone plays every possible matchup.

3 players: A, B, C
3 matches per round:
Match 1: A + B vs C
Match 2: A + C vs B
Match 3: B + C vs A

Solo player uses all 3 touches
Scoring: Same as 4p (default 21, win by 2)
Ranking: Total points → Diff → playerId (same games per player)

Timing: ~48 min (3 × 14 + 2 × 3 min)

5-Player Groups

When there is 1 leftover player (16 mod 4 = 0, but 17 mod 4 = 1), a 5-player group is created.

5-player groups use a parallel game system with 2 runs of 2 games each. One player plays 4 games while others play 3, with the role randomized each round.

How 5-Player Works

5 Players (A, B, C, D, E):
2 runs × 2 parallel games = 4 games total

Games 1 & 2 (Run 1) play interleaved: D and E swap every point.
Each point belongs to either Game 1 or Game 2.
The waiting player tracks their game's score AND service rotation.

RUN 1:
Side X: A+B stay on court (fixed team)
Side Y: C stays on court (fixed), D and E alternate every point
Game 1: A+B vs C+D (D on court, E tracks Game 2 off court)
Game 2: A+B vs C+E (E on court, D tracks Game 1 off court)

RUN 2:
Side X: D+E stay on court (fixed team)
Side Y: C stays on court (fixed), A and B alternate every point
Game 3: D+E vs C+A (A on court, B tracks Game 4 off court)
Game 4: D+E vs C+B (B on court, A tracks Game 3 off court)

Partnerships Formed:
Run 1: [A,B], [C,D], [C,E]
Run 2: [D,E], [C,A], [C,B]
(0 duplicate partnerships across the entire match)

Game count per player:
A: 3  |  B: 3  |  C: 4  |  D: 3  |  E: 3
(One player plays 4 games, roles randomized each round. Partnership rule strictly enforced)

Ranking: Average points per round → Total points → Diff → playerId

6-Player Groups

When there are 2 leftover players, a 6-player group is created.

6-player groups use a parallel game system similar to 5-player groups. Some players play 3 games and others play 2, with roles randomized each round.

How 6-Player Works

6 Players (A, B, C, D, E, F):
2 runs × 2 parallel games = 4 games total

Games 1 & 2 (Run 1) play interleaved: pairs swap every point.
Each point belongs to either Game 1 or Game 2.
The waiting pair tracks their game's score AND service rotation.

RUN 1:
Side X: A+B stay on court (fixed team)
Side Y: C+D and E+F rotate every point (pairs alternate)
Game 1: A+B vs C+D (C+D on court, E+F tracks Game 2 off court)
Game 2: A+B vs E+F (E+F on court, C+D tracks Game 1 off court)

RUN 2:
Side X: C+E stay on court (fixed team)
Side Y: A+D and B+F rotate every point (pairs alternate)
Game 3: C+E vs A+D (A+D on court, B+F tracks Game 4 off court)
Game 4: C+E vs B+F (B+F on court, A+D tracks Game 3 off court)

Partnerships Formed:
Run 1: [A,B], [C,D], [E,F]
Run 2: [C,E], [A,D], [B,F]
(0 duplicate partnerships across the entire match)

Game count per player:
A: 3  |  B: 3  |  C: 3  |  D: 2  |  E: 3  |  F: 2
(Role randomized each round. Partnership rule strictly enforced)

Ranking: Average points per round → Total points → Diff → playerId

Group Timing Reference

Group TypeGamesPoint TargetEst. Duration
4p (single set to 21)321~60 min
4p (best-of-3 to 15)≤915~55 min
3p (single set to 21)321~48 min
5p (single set to 15)415~60 min
6p (single set to 15)415~60 min

Actual duration varies based on skill level and how quickly games are played. Times assume continuous play with minimal delays.

Promotion & Relegation

Random Seed Ladder System

After Round 2, the ladder system moves 2 players up and 2 players down between adjacent groups.

16 Players / 4 Courts

ROUND 2 (Vertical Seeding) — 16p special case:
1sts (4) → Court 1
2nds (4) → Court 2
3rds (4) → Court 3
4ths (4) → Court 4

ROUND 3+ (Ladder):
C1 ← C1[1+2] + C2[1+2]   (top 2 stay, pull top 2 from below)
C2 ← C1[3+4] + C3[1+2]   (bottom 2 drop, pull top 2 from below)
C3 ← C2[3+4] + C4[1+2]   (bottom 2 drop, pull top 2 from below)
C4 ← C3[3+4] + C4[3+4]   (bottom 2 stay, pull bottom 2 from above)

Visual flow:
Round 2:  C1(1sts)  C2(2nds)  C3(3rds)  C4(4ths)
Round 3:  C1[C1↑+C2↑]  C2[C1↓+C3↑]  C3[C2↓+C4↑]  C4[C3↓+C4↓]

20 Players / 5 Courts

ROUND 2 (Vertical Seeding):
1sts (5):  C1×4, C2×1
2nds (5):  C2×3, C3×2
3rds (5):  C3×2, C4×2, C5×1
4ths (5):  C4×1, C5×4

ROUND 3 (Ladder):
C1 ← C1[1+2] + C2[1+2]
C2 ← C1[3+4] + C2[3+4] + C3[1+2]  (3 courts → 4 players from 3 sources)
C3 ← C3[3+4] + C4[1+2]
C4 ← C4[3+4] + C5[1+2]
C5 ← C5[3+4] + (empty)  (bottom court keeps bottom 2, no court below)

Non-standard bottom court (C5) always gets remaining players.

Preseed Bracket Redistribution

In Preseed format, redistribution follows the bracket tree. Each bracket splits recursively based on finish positions within the bracket.

16-Player Preseed Example

ROUND 1 (Snake Seeding):
C1: A(1600) H(900)  I(800)  P(100)
C2: B(1500) G(1000) J(700)  O(200)
C3: C(1400) F(1100) K(600)  N(300)
C4: D(1300) E(1200) L(500)  M(400)

R1 Results → R2 (First Split, splitSize(4)=2):
Tiers:  1sts: A,B,C,E  2nds: D,F,J,H  3rds: G,L,N,I  4ths: K,P,M,O
Winner bracket (top 8):  A(C1), B(C2), C(C3), E(C4), D(C4), F(C3), J(C2), H(C1)
Loser bracket (bottom 8): G(C2), L(C4), N(C3), I(C1), K(C3), P(C1), M(C4), O(C2)

Origin mixing in Winners:
C1: A(C1), C(C3), D(C4), J(C2)   ← no 1st+2nd from same origin
C2: B(C2), E(C4), F(C3), H(C1)

R2 Results → R3 (Subsequent Split):
Winner bracket (C1,C2): 1sts+2nds → C1(Gold), 3rds+4ths → C2(Silver)
Loser bracket (C3,C4):  1sts+2nds → C3(Bronze), 3rds+4ths → C4(Iron)

Final Courts:
C1(F): C, B, A, H
C2(LW): D, E, F, J
C3(TL): G, L, N, O
C4(BL): I, M, K, P

Final Standings:
1st B, 2nd A, 3rd C, 4th H (Court 1)
5th D, 6th E, 7th J, 8th F (Court 2)
9th G, 10th N, 11th L, 12th O (Court 3)
13th I, 14th K, 15th M, 16th P (Court 4)

Virtual Groups

Overview of how virtual groups are scheduled across physical courts using batch shifts.

Batch Shift Model

When virtual groups outnumber physical courts, the system schedules them in batch shifts. Each shift plays a subset of virtual groups on the available physical courts.

Example: 8 Virtual, 4 Physical

8 virtual courts, 4 physical courts:

Shift 1: Virtual courts 5-8 → Physical courts 1-4 (simultaneous)
[WAIT]   Score entry, redistribution, rest (~10 min transition)
Shift 2: Virtual courts 1-4 → Physical courts 1-4 (simultaneous)

Order: Bottom courts first (highest numbers), top court last.
This ensures championship match is the last match of the tournament.

Example: 12 Virtual, 4 Physical

12 virtual courts, 4 physical courts:

Shift 1: Virtual courts  9-12 → Physical courts 1-4
[WAIT]   ~10 min transition
Shift 2: Virtual courts  5-8  → Physical courts 1-4
[WAIT]   ~10 min transition
Shift 3: Virtual courts  1-4  → Physical courts 1-4

Total shifts = ceil(12/4) = 3
Round duration ≈ 3 × 45 min + 2 × 10 min = 155 min

Wait Time Forecasting

The system estimates wait times for players based on their shift position. Players in later shifts can see how long until their group plays.

Player on Virtual Court 5 (Shift 2 of 3):
- Remaining shifts after theirs: 1 (Shift 3)
- Avg court duration: 45 min
- Transition time: 10 min
- Their shift duration: 45 min
- Est. total from now: ~100 min

Practical Implementations

Two Groups on One Court

When you have more groups than physical courts, groups can alternate on the same court.

Two approaches: traditional sequential (one group fully finishes, then the next) or alternating (matches interleaved for better flow).

Traditional vs Alternating

TRADITIONAL (sequential groups):
Group A plays all matches → break → Group B plays all matches
Group A: Match 1, Match 2, Match 3 (≈45 min)
Break: 10 min
Group B: Match 1, Match 2, Match 3 (≈45 min)
Total: ~100 min for both groups on one physical court

ALTERNATING (interleaved groups):
Match 1: Group A
Match 2: Group B
Match 3: Group A
Match 4: Group B
Match 5: Group A
Match 6: Group B
Total: ~90 min (no dedicated break between groups, natural rotation)

Benefits:
- Shorter total duration (no 10-min inter-group break)
- Players get natural rest while other group plays
- No "cold" start for Group B
- Fairer — both groups progress simultaneously
- Keeps all players engaged

Tournament Day Timeline

A typical 16-player tournament with 4 groups on 4 physical courts runs in about 4 hours 30 minutes.

TYPICAL 16-PLAYER TOURNAMENT (4 courts, 4 physical):
08:30  Setup, check-in, briefing
09:00  Round 1 starts (all 4 courts)
09:45  Round 1 ends, scores finalized
09:55  Redistribution, player break
10:00  Round 2 starts
10:45  Round 2 ends
10:55  Break
11:00  Round 3 starts
11:45  Round 3 ends
11:55  Break
12:00  Round 4 (Final) starts
12:45  Tournament ends, podium
13:00  Cleanup

Total: ~4h 30min

WITH VIRTUAL COURTS (8 virtual, 4 physical):
Round 1: Shift 1 (VC5-8) 09:00-09:45 → Shift 2 (VC1-4) 09:55-10:40
Round 2: Shift 1 10:50-11:35 → Shift 2 11:45-12:30
Round 3: Shift 1 12:40-13:25 → Shift 2 13:35-14:20
Round 4: Shift 1 14:30-15:15 → Shift 2 15:25-16:10

Total: ~7h 10min

Tips for Organizers

  • Print the QR codes for each group and tape them to the net post — players scan to enter their own scores.
  • Use a tournament-wide WhatsApp group or Telegram channel for announcements.
  • Keep rounds tight with a visible timer. Announce 5-minute and 1-minute warnings.
  • Have a substitution list ready for injured players.
  • For large tournaments (20+ players), assign a dedicated scorekeeper.
  • Use the wait time forecast to manage player expectations across shifts.
  • Prepare the final group with a podium area for the award ceremony.

King of the Beach — the fair way to run beach volleyball tournaments.