Run a full Swiss tournament: paste or upload a roster, generate pairings each round, enter results, and track standings with tiebreaks.
Tiebreaks: Buchholz (sum of opponents' scores) then Sonneborn-Berger. Byes score a full point.
Each cell is the opponent's current standings number, color, and result โ w/b for White/Black, +/โ/= for win/loss/draw. Opponent numbers update as standings change.