There are more reasons why this is inaccurate. If we were using elo, the higher the rating of the player, the less players of his rating, the less points he gets per game. This is why it is so hard for the top 10 to hit 2900. Simply put, they would have to win many chess games in a row.
That's not how it works. You don't get less points per game just because there are not enough players in your rating range.
Look up the calculation for elo and then tell me.
Tell you what? I know how Elo works and I know that for 85% chance difference must be 301.33107, not 400. Do you know why it's 301.33107 and not 300 and not 400?
Glicko is based on Elo, it just defines how ratings changes apply. Deviation accounts for inactivity, but it doesn't take long for the system to deem your rating "accurate" and all actual inaccuracies are then unfairly reflected on the ratings.
Your model is using glicko