PageRank was built to rank web pages. A link from page A to page B is a vote for B, and votes from pages that themselves collect votes count for more. The insight behind The Signal is that a basketball season has exactly the same shape. Every game produces a loser and a winner. Point an edge from the loser to the winner and the season stops being a schedule and becomes a directed graph:
Team B beats Team A A ──► B
Team C beats Team B B ──► C
Run PageRank over that graph and out comes a ranking. That’s the whole model. The rest is knowing what the lens shows you and what it hides.
What the lens buys you
Strength of schedule, for free. PageRank doesn’t count wins; it moves mass through the network. Beating a team that beat good teams is worth more than beating a doormat, without anyone having to define “good teams” by hand. The definition is circular, and that circularity is the feature: it’s the same self-referential loop that made PageRank work for the web, resolved by iterating until the numbers stop moving.
The other thing it buys is a clean slate. Elo carries history in, efficiency models carry priors in, and seeds carry the committee’s opinion in. The win graph carries nothing but this season’s results. When the ranking disagrees with the seed list, the disagreement is at least honest: it comes from who actually beat whom, not from October expectations.
What the lens hides
Plenty, and it’s worth being plain about it.
- Margin is invisible to the pure graph. An unweighted win graph makes a one-point escape and a thirty-point blowout the same edge. The Signal buys that signal back by weighting each edge with margin of victory: a one-point win counts about 1.05, a thirty-point blowout 2.5.
- Time is invisible. A November win and a February win carry identical weight. Teams that got better late look worse than they are.
- Early graphs are thin. PageRank wants a well-connected network. In the first weeks of a season the graph is barely stitched together, and the rankings stay noisy until enough cross-links accumulate between the conferences.
The damping factor, the same 0.85 Brin and Page used, papers over some of this by mixing a little uniform probability into every step. In web terms it’s the random surfer. In basketball terms it’s an admission the model should make anyway: on any given night, anybody can beat anybody.
From a ranking to a bracket
A ranking is not a prediction. To get from one to the other, The Signal maps the ranking gap in each matchup to a win probability and then simulates the tournament a thousand times, advancing each game by a weighted coin flip. Count the simulated championships and you get per-team title odds. Advance every game to the favorite instead and you get the chalk bracket: the projected champion and its route through the field.
The project page has a live version of the core loop: a synthetic season rendered as its win graph, with PageRank running one power iteration at a time. The bubbles grow into the final ranking. It is a ten-team toy running the unweighted form of the model, but the core loop is the same one The Signal runs over a full season, and watching it converge explains the model faster than any paragraph here.