Fantastic question. TrueSkill is based on the idea that “skill” can be modelled as a “normal distribution” (e.g. a “Bell Curve”). A Normal Distribution is defined by 2 numbers - the “mean” (e.g. the peak) and the standard deviation (e.g. how fat the curve is).
Under “Wide Rankings”, let’s look at 45464Z:
So we see the TrueSkill is 25.52, and “mu” (the mean) is 31.45 and “tsSigma” (the standard deviation) is 1.98. TrueSkill is defined as: mu - 3 * tsSigma
so 25.52 = 31.45 - 3 * 1.98
Why choose 3 times the standard deviation? Basically to be able to say with 99% confidence that a team’s TrueSkill is at least this value. 1 Standard Deviation would give you a 68% confidence interval, and 2 Standard Deviations would give you 95%.
The Match Predictor page displays the full Normal Distribution and reports the “mu” number, not the TrueSkill. Perhaps misleading on my part.
I have exposed 2 REST endpoints (replace 45464Z with a valid team code):
BASEWEBSITEURL/v1/team/45464Z
Will give the following JSON:
{
"ap_per_match": 16.0,
"awp_per_match": 0.11,
"ccwm": 51.15,
"dpr": 45.01,
"mu": 31.45,
"opr": 96.16,
"score_auto_max": 129.0,
"score_driver_max": 244.0,
"score_total_max": 349.0,
"sigma": 1.98,
"team_name": "Z Squared ",
"team_number": "45464Z",
"total_losses": 10,
"total_ties": 0,
"total_wins": 40,
"trueskill": 25.52,
"trueskill_ranking": 1,
"wp_per_match": 1.71
}
And (replace the first 8565A with Red Team 1 and the second with Red Team 2 and then replace the first 99750B with Blue Team 1 and the second with Blue Team 2)
BASEWEBSITEURL/v1/predict/8565A/8565A/99750B/99750B
which gives:
{
"blue1": "99750B",
"blue2": "99750B",
"prediction_msg": "Red has a 50.00 percent chance of winning.",
"red1": "8565A",
"red2": "8565A",
"red_win_probability": 50.0
}
The predictor basically combines the teams in each alliance’s curves and compares the two to give a probability for which team would win. If one were to run 100 batches of these 4 teams 10 times, we would expect in 95 of those runs for Red to win 5 of the 10 matches (the predictor uses 2 standard deviations)