Wildcards Awarded
Ranking Bids
Potential Bids
To EUCF Cutoff
Rating Difference
Expected Score

Algorithm Purpose

The purpose of the algorithm is to rank teams and qualify them for the EUCF. The top N teams in the ranking (aside from Wildcard teams) at the end of the season qualify for the EUCF where N is 16 - the number of Wildcard bids awarded in each division. In 2024, Wildcard bids are awarded to the Elite Invite winner and the winners of the Summer Tour events in August. The number of wildcard bids for each division in 2024 are:

  1. Mixed: 4 Wildcards (3 Summer Tours and Elite Invite)
  2. Women: 4 Wildcards (3 Summer Tours and Elite Invite)
  3. Open: 6 Wildcards (5 Summer Tours and Elite Invite)

Short Explanation

The Algorithm used for EUCS ranking is based on the USAU Ranking algorithm.

This explanation is based on these sources:

There are two major differences in the EUCS implementation of the USAU algorithm.

  1. USAU includes a recency bias, which weighs games at the end of the season more than games at the beginning of the season. In the EUCS implementation, weighting does not consider recency, so games are weighed equally regardless of when they occur.
  2. USAU starts everyone with a rating of 1000, so scores are typically between 0 and 2000. In the EUCS implementation everyone starts with a score of 0, so typical scores are between -1000 and 1000. If you want an equivalent USAU rating, add 1000 to the rating here.

Long Explanation

Each game played earns the team a rating. The rating of a team is the average rating of all the games played.

How to Calculate a Rating for a Game

The rating is calculated by taking the rating of the opponent and then adding or subtracting a differential based on the score difference of the game. You add the differential if you win the game and subtract the differential if you lose the game.

$$Game\_Rating = Opponent\_Rating \pm Game\_Rating\_Diff$$

The rating difference (Game_Rating_Diff) is calculated with this formula:

$$125+475\frac{\sin{\left(\min{\left(1, \frac{1-r}{0.5}\right)}\cdot 0.4 \pi\right)} }{\sin{\left(0.4 \pi\right)}}$$

$$r=\frac{losing score}{winning score-1} $$

This formula has the following important properties:

  1. Each additional goal is worth more when games are close than when they are not.
  2. Every game decided by one point gets the same differential of 125, no matter the game total.
  3. The maximum a differential can be is 600.
  4. A game earns the maximum differential if and only if the winning score is more than twice the losing score.

Plots and tables of this rating are given on this page.

As an example if you beat a team with a rating of 302 with a score of 15-14, you would earn a game rating for that game of 302 + 125 = 427. If you would lose to the same team with a score of 14-15 you would earn a game rating of 302 - 125 = 177.

Game Weight

Low scoring games are considered to be less representative than full games to 15. So games where the score doesn’t reach a high value (usually due to extreme weather conditions) are weighed less.

The weight function is given below:

$$\min{\left( 1, \sqrt{\frac{W + \max{\left( L, \left| \left(W-1 \right)/2 \right| \right)}}{19}}\right)}$$

  1. All games where the winning team scores at least 13 are counted fully.
  2. Games that reach a minimum combined score of 19 points are counted fully
  3. Other games are weighted less

Iterative Calculation

The calculation for the rating of a team is done iteratively. Every team starts with a rating of 0. Then every game is run and an average is computed. This gives a new rating. The ranking is then done again with the new ratings as starting values for each team. This is done over and over again until there is convergence (this can take thousands of iterations!)

Blowout Rule

The maximum rating difference that can be achieved is 600 points. So what happens if you play a team that is 600 points below you? Doesn’t that mean that no matter what you will reduce your rating even if you beat them 15-0?

Yes this is true, to deal with this there is a blowout rule. blowout games are not counted for either the winning or losing team if ALL of the following conditions are met:

  1. The winning team has a rating of 600 or more points higher than the losing team.
  2. The winning team wins by more than twice the score of the losing team + 1.
  3. The winning team has at least 5 other results where results are not being ignored.

Note: If removing multiple games would bring the winning team below 5 games (for example, 5 blowout eligible wins in 8 total games), then the first games removed are the ones that hurt the winning team the most.

Source Code

To be completely transparent, the source code for the ranking calculation is given below: