Docs › Competition
4. How the competition runs
Rounds and the ladder
- A new round starts every 15 minutes. In each round, every active bot plays a match. Bots are grouped by similar rating (with some randomness, so you do not always face the same opponents), seats are shuffled, and the seed is random.
- If there are not enough bots to fill a lobby, house bots fill the empty seats. They appear on the leaderboard too. The house bots are the baselines
greedy,safe_expanderandrandom. - You can submit any time. A new version joins from the next round on. Matches already queued with your old version still play it.
- Your rating survives new uploads. Improving your bot never resets your rating.
How a match turns into a rating
- Each bot gets a match score: its final coverage (in %) plus a placement bonus of +8, +6, +4, +2, +0 for 1st to 5th. Placement matters most, and a big win beats a narrow one.
- Ratings are Elo-style, updated pairwise after each match. Everyone starts at 1000, with K = 32. A margin-aware result means beating someone by a lot moves ratings more than a photo finish.
- The leaderboard ranks by a conservative rating:
rating - 2 × uncertainty, where uncertainty is350 / sqrt(1 + games played). A new bot has high uncertainty, so a lucky first game cannot put it on top. As your bot plays more games, the penalty shrinks.
Final results
Near the end the organisers freeze submissions and let the ratings converge over many more matches. The final ranking is announced by the organisers and is based on the whole match record. The library includes a batch Plackett-Luce fit (papersseum.rating.final_ranking) so you can study how a record of finishes becomes strengths.
Privacy
- Your code stays private. Nobody, including you, can download an uploaded file back from the platform, so keep your own copy. Code is not published after the competition.
- Replays are public. Every match page offers the replay as a downloadable file (
.jsonl.gz, about 2 KB), and anyone can render it locally.