Rating System
Foosball Leaderboard ranks players using TrueSkill, a Bayesian skill rating system developed by Microsoft Research. It's the same family of algorithms used in Xbox Live matchmaking — adapted here for competitive foosball.
Why not Elo?
Elo works well for 1v1 chess-style games with equal stakes every match. TrueSkill extends this to handle:
- 2v2 team games — where the contribution of each player within a team needs to be estimated separately
- Uncertainty modelling — new players have high uncertainty; experienced players have well-established ratings
- Faster convergence — ratings stabilise quickly (within 10–20 matches) rather than requiring hundreds of games
The two numbers: μ and σ
Every player has two rating components:
- μ (mu) — the estimated skill level. Think of this as your "true" skill.
- σ (sigma) — the uncertainty in that estimate. High sigma means the system isn't confident yet; low sigma means your skill is well established.
New players start with μ = 25 and σ = 8.333. Over time, σ decreases as the system gains confidence in the estimate.
Display rating
The leaderboard ranks players by their display rating:
display rating = μ − 3σ
This is a conservative lower bound — you need to consistently perform well before your displayed rating climbs. A player with μ = 30 but σ = 5 (display rating = 15) ranks below a player with μ = 28 but σ = 2 (display rating = 22), because the second player's skill is more established.
How ratings update after a match
After each match, TrueSkill updates both μ and σ for all players based on:
- The expected outcome — if two equally rated players face each other, the winner gains less than if an underdog wins
- The actual outcome — who won and by how much
- Current uncertainty — players with high σ move more after each match (the system is learning faster)
An upset win (a low-rated player beating a high-rated opponent) results in a large rating gain. A predictable win earns a smaller gain.
2v2 contribution scores
In 2v2 mode, TrueSkill estimates not just whether a team won, but how much each player on the team contributed to the result. This is calculated from:
- Time spent at each position (offense vs. defense)
- Goals scored from each position
- Match outcome weighted by each player's estimated share
This means two players on the same winning team can receive different rating changes based on how much they individually contributed.
Contribution, multiplier, attacking, and defending scores
When Live Match Tracking is used, each player receives detailed scores per match:
| Score | What it measures | |---|---| | Contribution | Overall share of the team's result | | Attacking | Goals scored from the offense position | | Defending | Goals conceded while on defense (lower is better) | | Own goals | Goals accidentally scored for the opponent |
These scores are visible on the match detail page and on each player's profile.
Sigma decay (uncertainty over time)
If a player hasn't played in a long time, their sigma may increase slightly to reflect that their current skill is less certain. This prevents inactive players from holding a top position indefinitely based on old results.
Frequently asked questions
Why did my rating go up even though I lost? If you lost to a much higher-rated opponent and the margin was close, your rating may have increased slightly because you outperformed expectations.
Why did my rating barely move after a win? If you beat a significantly lower-rated opponent by a wide margin, the system expected you to win easily — so the confirmation earns a small gain.
When does sigma stop decreasing? Sigma has a floor. After enough matches it stabilises and subsequent results make only small adjustments to mu.