← Projects

The Signal

NCAA bracket predictor using PageRank over the season's game graph, with Monte Carlo for the tournament.

Live

Summary

The Signal predicts the NCAA tournament bracket by running PageRank across every game played in the regular season, treating each win as a directed edge between teams, and then Monte Carloing the bracket forward thousands of times to produce per-team championship probabilities and a most-likely "Path to the Championship" for each team.

Why it exists

Most public bracket models lean on Elo, KenPom, or seed priors. PageRank is a different lens: it doesn't care about preseason expectations, only about who beat whom and how strongly the win graph connects. The Signal was a weekend experiment to see what falls out of treating the entire season as a single network problem.

How it works

Regular-season game results form a directed graph. PageRank iterates over the graph to produce a stable ranking that implicitly rewards strength of schedule. Those rankings feed a Monte Carlo simulation of the tournament bracket, each matchup resolved probabilistically, and the simulation runs thousands of times to estimate championship probability per team and the most-traveled path to the title.

Here's the core idea, live and in your browser: a synthetic season rendered as its win graph. Every game is a link pointing at the winner, and PageRank iterates over the network until the ranking stabilizes. Watch the bubbles grow into the final ranking as the iterations tick:

Live demo: PageRank on the win graph Each line is a game; the arrow points at the winner. Node size = PageRank. Synthetic season, illustrative only. Drag the bubbles.

Stack

  • Vanilla JavaScript single-file HTML on the client
  • Python pre-processing the game graph + PageRank
  • Vercel deploy

Status

Live. Built in a weekend during a March Madness window.