Salt Cat: Mad Handicap 9x9

Examples.
In brackets there’s “OGS rankings” translation to traditional ranks.

Game# 27580238, no handicap
18k vs 21k from game page

players: 
    black: 
        ratings: 
            overall: 
                rating: 1348.3036814096665,
                deviation: 62.737137545554134,
                volatility: 0.047972455473497065
        ranking: 14, (16k)
    white: 
        ratings: 
            overall: 
                rating: 1132.1753429772684,
                deviation: 71.7237041498358,
                volatility: 0.061469906314143105
        ranking: 8,  (22k)

black_player_rank: 0,
black_player_rating: 0.000,
white_player_rank: 0,
white_player_rating: 0.000,

historical_ratings: 
    black: 
        ratings: 
            overall: 
                rating: 1276.1356201171875,
                deviation: 63.10872268676758,
                volatility: 0.047680869698524475
        ranking: 14,  (16k)
    white: 
        ratings: 
            overall: 
                rating: 1160.8262939453125,
                deviation: 73.75210571289062,
                volatility: 0.059250034391880035
        ranking: 8,  (22k)

gamedata: 
    players: 
        black: 
            rank: 11.913185294471797,  (19k)
        white: 
            rank: 12.117766440904715,  (18k)

Game# 27580221, 2 handicap
21k vs 17k from game page
19k vs 16k from chat at the beginning of the game

players: 
    black: 
        ratings: 
            overall: 
                rating: 1135.2323530559256,
                deviation: 70.25562377858436,
                volatility: 0.05845546989836925
        ranking: 9,  (21k)
    white: 
        ratings: 
            overall: 
                rating: 1417.3417559074546,
                deviation: 66.62255941736605,
                volatility: 0.06243357973250733
        ranking: 15,  (15k)

black_player_rank: 0,
black_player_rating: 0.000,
white_player_rank: 0,
white_player_rating: 0.000,

historical_ratings: 
    black: 
        ratings: 
            overall: 
                rating: 1161.4344482421875,
                deviation: 75.5324478149414,
                volatility: 0.05889991298317909
        ranking: 9,  (21k)
    white: 
        ratings: 
            overall: 
                rating: 1325.3792724609375,
                deviation: 67.15545654296875,
                volatility: 0.06183518096804619
        ranking: 15,  (15k)

gamedata: 
    players: 
        black: 
            rank: 10.529867080432547,  (20k)
        white: 
            rank: 15.784198203182855,  (15k)

That would need one more “Get” for each player.
I prefer to read that from the game page, assuming that those data were used to calculate handicap.

2 Likes

Yes, you’re right, gamedata->players stores the rank at the beginning of the game.

2 Likes

Gamedata->players uses OGS “ranking” system, which is a number (in this case floating point, somewhere else integer) varying from -13 to 40 (I don’t know if there are limits, these are taken from “Through the years” tournament) with these conversion rules:

  • ranking <= 5 means 25k
  • 1 rank per 1 ranking

Thus 10 = 20k, 29 = 1k, 30 = 1d and so on.

Handicap seems to use rankings, considering all 25k as the same level.
Difference between rankings must be calculated with floating point, then trunked.
A result of 0 means even game. 1 to 4 means 1 handicap (komi 3.5). 5 means 2 handicap.

Here is number of games per handicap and ranking difference. There is just one game that seems to break the rule (0 rank difference, 1 handicap).
Here is also outcome (balck/white), excluding timeouts.

It could be guessed in the above chart, but here is a specific view.
On top is handicap (0,1,2). On bottom is rank difference.
Left is value, right is percentage.

2 Likes

All games are finished, the last step is ending stuck games and we can go to the next round~

Next round~

Although it seems handicap is 1-2 stones mostly. It seems you really need to pair dans with ddks to get anything more than that. But it’s ok we’ll take care of it in the next edition.

1 Like

First round complete.
591 games, 134 timeout.

Even games have 5.5 komi.
One stone handicap is translated as 3.5 komi.
Two stones handicap is two stones with 0.5 komi.
That seems quite a big step from 1 to 2 handicaps (from a smaller komy by just two points to a full two stones on the board) but actually game results were quite even (timeouts are excluded from following charts).

Win rate B/W for even games are 55/45%
One handicap games are about in the same range. Also for 3-4 ranks difference black managed to win almost half of the games.
Despite my feelings, two stones handicap games were won mostly by white: 3 out of 4 games. Probably too few to make some decent satistics.

Second round started.
471 games.

This time we have also 3 stones handicap, which comes with a negative komi of -2.5. So is it three stones and two more points for black? That’s big! :laughing:

Rank difference goes up to 11.
1 handi goes to 1-4 rank difference.
2 handi for 5-8.
3 handi for 9-11.

In the first round I had three even games and six1-handi games as white. I didn’t notice before.
In the second round I have two even games, three 1-handi as black and three 2-handi as black.

image

Will two stones be enough to have a chance against 4d? Let’s see! :smiley:

Second round complete.
471 games, 99 timeouts.

image

Outcome was quite balanced for 0 and 1 handicap
Even with 4 ranks difference, there were 16 vs 12 games, 57 vs 43 %.
Groups with 2 and 3 handicaps saw more black wins, but the number of games wasn’t so large and stats couldn’t be reliiable.

Third round has 420 games.
We go up to 4 handicap with 5.5 negative komi.

image

Handicap should be calculated from new ranks, I suppose.
I had to switch from v1 API to termination-api for the players list, since the former had broken rankings.
I didn’t do the same yet for games, so I am still retrieving games data from v1 API.
I actually don’t know where to look for starting ranks.

I used to look in v1 “gamedata” section but it doesn’t appear updated with new rankings. Example:

<https://online-go.com/api/v1/games/31277608>

{   "players": {
        "black": {
            "id": 11184,
            "username": "zhal",
            "ratings": {
                "version": 5,
                "overall": {
                    "rating": 1533.0075473565191,}},
            "ranking": 18,},
        "white": {
            "id": 308797,
            "username": "Lys",
            "ratings": {
                "version": 5,
                "overall": {
                    "rating": 1688.4566123087104,}},
            "ranking": 23,}},
    "id": 31277608,
    "name": "Tournament Game: Salt Cat: Mad Handicap 9x9 (66295) R:3 (Lys vs zhal)",
    "handicap": 1,
    "komi": "3.50",
    "historical_ratings": {
        "black": {
            "id": 11184,
            "ratings": {
                "version": 5,
                "overall": {
                    "rating": 1533.007568359375,}},
            "ranking": 24.807274690058826,},
        "white": {
            "id": 308797,
            "ratings": {
                "version": 5,
                "overall": {
                    "rating": 1688.4566650390625,}},
            "ranking": 27.04317904298873,}},
    "gamedata": {
        "white_player_id": 308797,
        "black_player_id": 11184,
        "players": {
            "black": {
                "username": "zhal",
                "rank": 18.35705953107835,},
            "white": {
                "username": "Lys",
                "rank": 21.308412146517206,}},
        "handicap": 1,
        "komi": 3.5,

Now “historical ratings” section looks the most updated. Maybe I should use that one, but I would be grateful for every possible hint or help about it, since I feel quite lost.

I also checked termination-api but it looks even worse:

<https://online-go.com/termination-api/game/31277608>

"white_player_id":308797,
"black_player_id":11184,
"game_id":31277608,
"game_name":"Tournament Game: Salt Cat: Mad Handicap 9x9 (66295) R:3 (Lys vs zhal)",
"players":
	{"black":
		{"username":"zhal",
		"rank":18.35705953107835,
		"professional":false,
		"id":11184}	,
	"white":
		{"username":"Lys",
		"rank":21.308412146517206,
		"professional":false,
		"id":308797}},
	"handicap":1,
	"komi":3.5,

I removed many lines which were useless for my goal.
Anyway, according to termination-api players seem to be still 12k and 9k, while these are our mugshots today:
image

@benjito, can you dig something here?

2 Likes

So what information are you trying to get here? The rank of each player at the beginning of round 2?

From what I can tell, the historical_ratings is the rank at the end of the game, which may or may not be useful to you. It’s what populates the “mugshots” and also the rankings in the game info modal. I agree that players.color.ranking is bunk and doesn’t seem to be used.

If you are okay sifting through the data, this endpoint may be useful to you:

https://online-go.com/termination-api/player/{PLAYER_ID}/v5-rating-history?speed=overall&size=0

It’s what populates the rating history graph on the profile page. At the very least, it might help your investigation.

1 Like

Yes, as we discussed few months ago in this same thread (messages #23 to #28).

In order to compare ranks with handicap I need values at the very moment the game starts. The structure of file seems to be apt for that but data are empty or outdated or names are confusing

Oh haha I’m late to the party. Looks like I agree with @S_Alexander since the game endpoint is inaccurate.

As for why it’s inaccurate, maybe file a bug? Anoek would be the only person who knows what’s going on there. None of the game rankings (except historical) surface to the GUI though, so it might not be worth fixing.

1 Like

I am not a github user.
The only place where I can point a bug is here in the forum

@S_Alexander, I just noticed you timed out on your games and were disqualified from your own tournament?! :scream:


Btw, with this tournament setup (Handicap AND McMahon), there’s kind of an automatic downward spiral: When you do bad in one round, you’ll probably do even worse in the next one, because you’ll have to give even more handicap. :wink:

In this third round, I’m in a group where I have to give handicap in all games except one. Somehow, I just managed to win a game where my opponent got 2 stones handicap, but it might be my only win in this round. :wink: I’ll just have to make sure I won’t play in more than one such tournament at a time, in order to avoid becoming a total sandbagger.

2 Likes

I was so wrong about this! :sweat_smile:


Still not many points compared to many others in this tournament, but I’m happy.
Looks as if the automatic handicap is not too much at least in the 6k to 10k range. (Is someone going to analyze the data later?)

2 Likes

Yes. I have no idea who but I’m happy to bet on it. :smiley:

Okay. Probably not true. Lys and/or S_Alexander.

2 Likes

The end is nigh.

image

Only three games left.
Almost half of players gone.

This is the leaderboard so far.
Top places won’t be affected by last open games.

1 Like

I wonder if there was any point to it, now that the ratings changed completely.

1 Like

Life is messy

1 Like

Tournament is finished.

I’ll throw some numbers in.

Recap of number of games for each round and handicap given:

We were interested in ranks/handicap system effectiveness.
I excluded all games ended by timeout, in order to have a cleaner dataset. Spoiler: it didn’t make much difference.

Round 1 without timeouts

Old rating system.
Small handicaps.
Outcome was quite even between white and black.
I don’t pay much attention to those 5 games with 2 stones handicap.

Also breaking handicaps (above) according to “supposed” rank difference (below) shows a very even result:

Round 2 without timeouts

Still old rating system.
Same as before: even games are perfectly fifty/fifty.
One stone games are pretty even.
Two stone games are won mostly by black.
I don’t mint those 4 games with 3 stones.

This looks also pretty even:

Round 3 without timeouts

New rating system.
Bigger handicaps.
Even are even.
1 stone won mostly by white
2 stones won mostly by black
3 stones almost all won by black, but not so many games
4 stones, just 3 games, nevermind

All in all, handicap system worked quite well.
Overall outcome is quite balanced.
Perhaps black has some advantage with bigger handicaps.
I’ll stick with that.

Thank you everybody.

3 Likes

Thanks for your analysis!

So, there were only two games won by White against 3 stones handicap, one in round 2 and one in round 3.
Here they are:

That’s good to know!

2 Likes

So under the new system, 19 out of 20 games with 3 or 4 stones were won by Black? That seems significant.

1 Like

We could check this one. Although in round robin the results are somewhat dependent on each other (like if a player is underrated in one game, they’re underrated in others).