The temperature of a game is a measure of how big the next move is. A game is “hot” when there is a big difference between black and white getting the next move, and “cold” when the difference is small. There is an exact game theoretic definition, but the idea is also used in an intuitive way by strong players - for instance, the reason we play out a joseki to “completion” before playing away is that the local temperature is high during the joseki, but when everything is settled the local temperature drops.

We can’t get an exact value of the temperature except in simple endgame positions, but using KataGo’s score estimate I think we can get a good approximation. We simply look at a fixed position with both black and white to move, and take (the absolute value of) the difference between the score mean in those two situations. (Strictly speaking I believe we should divide the difference by 2 to agree with the normal definition of temperature, but I think this “points lost by passing” measure is easier to understand the significance of, so I’ll just leave it as it is.)

Here I’ve plotted this number for the first 100 moves of this game:

The general shape of the graph is as expected: the cost of passing at the very beginning is two times komi. The temperature rises as fighting breaks out, and drops when most groups are settled (at move 100 the cost of passing is around 11, a few points lower than at the very beginning of the game).

Here is the same graph annotated with which urgent local situations some of the spikes correspond to:

Probably more interesting though, would be looking at the temperature in the endgame. We know that the temperature generally drops throughout the endgame (until it reaches 0 when all points are taken), but it would be cool to see how quickly it drops in different games, and looking at such a graph would make it easy to recognize tedomari.

So… I did the above 100-move graph manually with Lizzie, which is a really inefficient way of doing it, and I don’t really feel like doing it for a few hundred more moves Maybe someone with some basic knowledge about how to interface with KataGo could automate this process? I imagine it shouldn’t be difficult to create a command-line interface to analyze an sgf with a fixed number of playouts in each position, then pass and do the same number of playouts with the other player to move, and report back the difference between the two score means. But I have no experience with that type of thing so I’m hoping someone else is interested in this and wants to help out