What’s the formula? Does one stone starts with 0.5 rank difference or at least 1 rank difference or when rounded down ranks are 1 apart.

I think another factor is each player’s rating uncertainty, which sometimes causes some surprising results, but I don’t understand the details of how it exactly works.

I’m also curious how board size is accounted for.

Can it also depend on timer, possibly?:

Giving this a “bump” since I’ve looked everywhere and can’t find anyone even trying to guess what to expect for 19x19 auto handicaps, let alone any kind of official documentation about it. With all the discussion about the importance of accurate ranks for assigning even games, shouldn’t we know this?

The official documentation only says this:

Handicap(you can select to prefer or require playing with or without a handicap)

Here’s a handicap tournament that started a few days ago that might have some clues:

In there it looks like most of the matches started with a handicap equal to the displayed rank difference plus 1, such as this 6d vs. 3d getting 4 stones. But then there’s also 3d vs 1d getting 1 stone and 3d vs 1d getting 2 stones.

How could this be investigated? Would starting say 10 games between the same two players but with different combinations of settings except always having handicap auto help? If the games don’t end up with the same handicap each time then that’s something. I assume they would though.

I wonder if it’s an issue with tournament settings clashing though rather than individual games?

rank difference at the start of the game.

1.9d vs 3.0d = 1 stone,

1.0 vs 3.9d = 2 stones

As the 6d is ranking down and the 3d has an upward trend, their rank difference could have been slightly above 4 ranks when the game started, but moved closer after, now being only 3 ranks.

So take the two-digit decimal rank difference, rounded *down*? This is the kind of formula I was hoping for!

Even if they were at 6.9d and 3.0d, rounding down only gets you to a 3-stone handicap, so I don’t understand.

Actually it’s computation accuracy without rounding.

But 6.9d and 2.9d will be 4.

For the game in question I see 3d and 6d here:

Doesn’t that mean they were 3.x and 6.x at the time the match started? I don’t see how you could get them to display as 3d and 6d when they were really >= 4 units apart.

Aren’t the ranks on the player cards/beside the username rounded in some way?

Is that what you were saying about rounded down?

I vaguely recall being 2.2kyi recently and it showing as 3kyu, and 1.9 kyu and it showing as 2kyu.

Does the rounding change when you become a dan imagining the difference between floor ceiling and nearest integer when you go from positive to negative integers, and then assuming it’s done before the 30-rank (like in the api a rank of 28 is 30-28=2kyu?) for the display values?

The player cards show the current rank, not the rank at the time the game started.

That doesn’t seem to be the case, for example:

(And if I understand it correctly, that’s a really important feature for reviewing old games!)

My impression is that they are rounded down, so yes, 1.9k would show as 2k and 1.9d would show as 1d. But here is a weird one I just noticed:

1.0d rounds to 1k?

EDIT: the formula is `ln(rating / 525) * 23.15`

which gives 30.0302… for this player. Probably has something to do with being so close to 30.

Depends if the game is ongoing. If it’s ongoing, it’s the current rank. If the game is over, it is the rank at the *end* of the game, IIRC.

https://online-go.com/api/v1/games/31696387

API confirms rank is *just* above 30 (although the historical rank was closer to 1910). I don’t know though - is 30 supposed to be 1k or 1d? Seems like a bug.

Thanks, that API link is super interesting. Here is the one for the 6d vs 3d game I was asking about earlier:

https://online-go.com/api/v1/games/31560544

I see two different sets of ratings in there! One in the “players” section:

```
"black": {
...
"ratings": {
"version": 5,
"overall": {
"rating": 2157.1676575955635,
"deviation": 72.20545756247215,
"volatility": 0.05994424810494013
}
},
"ranking": 29,
...
},
"white": {
...
"ratings": {
"version": 5,
"overall": {
"rating": 2367.5883332633384,
"deviation": 84.47086332984794,
"volatility": 0.060260581279550356
}
},
"ranking": 33,
...
}
```

And another in the “historical ratings section”:

```
"black": {
"id": 860288,
"ratings": {
"version": 5,
"overall": {
"rating": 2099.57177734375,
"deviation": 71.53719329833984,
"volatility": 0.059954218566417694
}
},
...
"ranking": 32.714494449935984,
...
},
"white": {
"id": 43936,
"ratings": {
"version": 5,
"overall": {
"rating": 2398.203857421875,
"deviation": 84.36006164550781,
"volatility": 0.0602516308426857
}
},
...
"ranking": 34.86919839951095,
...
}
```

It looks like the “players” rating shows their current rating, and the “historical” rating shows the one at the time of the game. Strangely, applying the ranking formula to the “players” *ratings*, we get exactly the “historical” *rankings*! Try it yourself:

```
ln(2157.1676575955635 / 525) * 23.15 = 32.7144944499
ln(2367.5883332633384 / 525) * 23.15 = 34.8691983995
```

But what are those “players” *rankings* of 29/33 doing there? Those are totally different from the rankings you would get from any of these ratings, and, most suspiciously, consistent with a four-stone handicap.

Tagging in @Lys

*one* of these numbers is buggy, but I can’t remember which one >.<

Edit:

I may have been remembering the *tournaments* API discussion… never mind, but Lys may still be able to offer insight!

I tried to investigate about ranks and handicaps in the Salt Cat tournament thread:

https://forums.online-go.com/t/salt-cat-mad-handicap-9x9/31157/32

But all that stuff was before changes in rating system which destroyed all my previous wonky knowledge.

I couldn’t investigate further yet and this is all advice I can share:

It should still work the same way. Just with other ratings and rating to rank conversion