## Overview
This project looks at whether the chess players in our tournament actually performed the way their ratings suggested they should. Using the Elo formula, I calculated what score each player was expected to get based on who they played, then compared that to what they actually scored. The players with the biggest positive gap overperformed — they beat the odds. The ones with the biggest negative gap underperformed — their rating said they should have done better.
The expected score for Player A against a single opponent Player B is:
\[E = \frac{1}{1 + 10^{(R_B - R_A) / 400}}\]
A player with an equal rating to their opponent gets an expected score of 0.5. A 400-point rating advantage translates to roughly a 90% chance of winning. To get a player’s total expected score for the tournament, we sum their expected scores across all games actually played, excluding byes and unplayed rounds.
Formula source: Standard USCF/FIDE Elo formula. Reference: https://www.chess.com/terms/elo-rating-chess
Aditya Bajaj was the biggest surprise — rated 1384 going in but scoring a perfect 6 points against much stronger players. The formula only expected him to score about 2 points, so he overperformed by 4. Jacob Alexander Lavalley is even wilder — the math basically gave him a 0% chance but he still managed 3 points.
On the flip side, Loren Schwiebert had the highest rating of any underperformer at 1745 but only scored 3.5 — almost 3 points below what his rating predicted. That’s a rough tournament.
The takeaway is that Elo tells you probabilities, not results. Seven rounds isn’t enough to iron out the variance, which is exactly why upsets happen.