I wrote a python script that analyzes all the games played in the 2018 Berlin Candidates and calculates the number of moves, inaccuracies, mistakes and blunders for each of the 8 players. With this information I created an algorithm to compute an "accuracy" score for each player, using the same scale for how lichess computed what is a blunder, mistake or inaccuracy.
# 300 -> Advice.Judgment.Blunder
# 100 -> Advice.Judgment.Mistake
# 50 -> Advice.Judgment.Inaccuracy
After some scaling of the scores I got these results.
Shakhriyar Mamedyarov: 82.26
Ding Liren: 81.41
Wesley So: 81.0
Fabiano Caruana: 80.74
Alexander_Grischuk: 77.71
Vladimir Kramnik: 78.82
Sergey Karjakin: 75.62
Levon Aronian: 58.41
The higher the score the more accurate the player played per move in the 2018 berlin candidates.
# 300 -> Advice.Judgment.Blunder
# 100 -> Advice.Judgment.Mistake
# 50 -> Advice.Judgment.Inaccuracy
After some scaling of the scores I got these results.
Shakhriyar Mamedyarov: 82.26
Ding Liren: 81.41
Wesley So: 81.0
Fabiano Caruana: 80.74
Alexander_Grischuk: 77.71
Vladimir Kramnik: 78.82
Sergey Karjakin: 75.62
Levon Aronian: 58.41
The higher the score the more accurate the player played per move in the 2018 berlin candidates.