ABOUT
Alleygorithm is a basketball analytics system built on win probability added (WPA). Rather than counting box score events, the current production system models the probability of winning across the play-by-play stream, then attributes changes in that probability to the players on the court.
The product is intentionally built around three outputs: individual impact, group contribution, and confidence. That keeps the public experience readable even when the underlying modeling stack is more complex.
Full remote holdout runs on April 1, 2026 kept the sequence model as the production path over the logistic event baseline.
Cross-season backtests on April 2, 2026 showed raw pair WPA-style contribution beating residual, RAPM, and embedding variants.
Surplus and other research-only interaction fields stay secondary until new untouched holdout evidence says otherwise.
The engine models win probability from play-by-play state, then turns each possession into a change in win probability.
Player impact is assigned with regularized regression, where the coefficients serve as the individual baseline for public scoring.
Players, pairs, trios, quartets, and lineups are scored in one system, with raw group contribution surfaced publicly and shrinkage/confidence keeping the leaderboard readable.
Every NBA possession changes the odds of winning. Our model watches the play-by-play and measures exactly how much each possession moved win probability — that swing is called WPA (Win Probability Added).
When a possession swings the game, who deserves credit? We use ridge regression to fairly split the impact among the 10 players on court, controlling for teammates and opponents. Think of it as: "how much better does this player make things, all else equal?"
We score every player, pair, trio, quartet, and lineup. Individual scores use the regression (most reliable). Group scores use raw WPA when those players share the court. Scores are stabilized with confidence-based shrinkage so low-sample-size outliers don't dominate the rankings.
Raw numbers are hard to interpret, so every score gets a letter grade (A+ to F) based on percentile rank, a confidence level (how much data we have), and offensive/defensive splits. The goal: you should always know both what the number says and how much to trust it.
Learn fit beyond additivity with embedding and graph-based layers when they produce more stable public signal.
Turn validated player impact and group contribution into a decision product for rotations, roster construction, and hypothetical moves.
Expand into more specific use cases like play-type group context, matchup context, and defensive fit.
Plus/minus measures point differential while you're on court. WPA measures how much the win probability changed, weighting high-leverage moments more. Our Shapley attribution then fairly splits credit, while plus/minus conflates your impact with your teammates'.
WPA captures context. A player on a dominant team may have fewer high-leverage possessions because the game state is already stable. The public scores also apply shrinkage, so lower-volume players get pulled toward the middle.
Surplus measures whether a group performs better or worse than you'd expect from adding up the individual players. It is useful as a secondary research read, but the public product still centers the observed contribution itself.
Offensive and defensive impact are computed separately using independent ridge regressions on possessions where the player's team has the ball vs. when they're defending. This isolates individual contribution on each side, controlling for teammates and opponents.
The operating target is a fresh promoted score artifact on a daily cadence, while heavier WP retraining happens on a slower review cycle. The footer shows the latest promoted data currently being served.