ABOUT

Measuring who contributes to winning, from the possession up.

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.

What Ships Today

Sequence win probability

The engine models win probability from play-by-play state, then turns each possession into a change in win probability.

Ridge attribution

Player impact is assigned with regularized regression, where the coefficients serve as the individual baseline for public scoring.

Multi-level group 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.

How The Scores Are Built

01
Win Probability Model

A sequence model estimates win probability from play-by-play state. The important public output is possession-level WPA: how much one sequence moved the odds of winning.

02
Shapley Attribution

Possession WPA is attributed to players with ridge regression. In the production pipeline, those coefficients act as the individual Shapley-style baseline.

03
Multi-Level Scoring

We score players, pairs, trios, quartets, and lineups in one schema. Public ranking is driven by contribution, while surplus stays as secondary context and shrinkage/confidence keep the leaderboard interpretable.

04
Unified Product Layer

The app consumes unified public scores with grades, percentiles, and team rollups. The product layer is designed to teach the user how strong the signal is, not just how extreme the number looks.

What Is Roadmap, Not Product

Richer interaction modeling

Learn fit beyond additivity with embedding and graph-based layers when they produce more stable public signal.

Lineup and trade simulation

Turn validated player impact and group contribution into a decision product for rotations, roster construction, and hypothetical moves.

Context slices

Expand into more specific use cases like play-type synergy, matchup context, and defensive fit.

FAQ

How is this different from traditional plus/minus?

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'.

Why do some great players rank lower than expected?

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.

What does "surplus" mean for pairs and lineups?

Surplus = actual group WPA minus expected contribution from the players involved. It can be useful context, but the most reliable public signal is still the group’s raw win contribution.

How often is the data updated?

The engine is built to recompute from play-by-play when new data is available. What matters in the app is the currently loaded scoring export exposed by the API.