## 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 Elo Formula

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.