Still unclear? Open a model and try changing one input at a time — the distribution reacts immediately.
Reading a projection
What the chart and the headline numbers are actually telling you.
- Distribution#
- Every run returns thousands of simulated versions of the same game, not one number. The plotted curve shows how often each outcome came up. A wide, flat curve means the result is genuinely uncertain; a tall, narrow one means the model expects a tight range.Where you'll see it: The main chart on every prediction page.
- Median (P50)#
- The middle simulated outcome — half the simulations finished above it, half below. Usually a more honest "expected" value than the average, because scoring distributions have a long right tail that drags the mean upward.
- Confidence interval (CI level)#
- The band containing that share of simulated outcomes. At the default 0.80, four simulations in five landed inside the range shown and one in five landed outside it. Raising the level widens the band — it buys coverage with precision.Where you'll see it: CI Level input on the player prop pages.
- Quantile / percentile#
- The value a given share of simulations finished below. q90 means only one simulation in ten beat that number.Where you'll see it: The attribution quantile slider, and the q10 / q50 / q90 diagnostics.
- CPE (conditional point estimate)#
- The pair of markers on the distribution plot. Rather than collapsing everything to a single point estimate, the model reports a low and a high estimate reflecting which scoring regime the player is in — a quiet night versus a live one.
- Probability between#
- The chance the stat finishes inside a range you type. The start of the range is inclusive and the end is exclusive, so 10 to 20 means "at least 10, fewer than 20".Where you'll see it: Analytics tabs on the player prop pages.
Lines, odds and edges
The betting-market vocabulary the Over/Under panels use.
- Line#
- The number a sportsbook posts for a prop or a game. You type it in, and the model reports which side of it the simulations favour and by how much.
- American odds (price)#
- A price of −110 means you risk 110 to win 100. A price of +130 means you risk 100 to win 130. Both Over and Under default to −110, the standard price.
- Break-even probability#
- The win rate a bet needs just to stop losing money at a given price — the vig expressed as a probability. At −110 it is 52.4%, which is why being right slightly more than half the time is not enough.
- Probability edge#
- Model probability minus break-even probability. The panel labels it for you: under 2% reads "no bet", 2–4% a "small lean", 4% and above a "playable edge". Those are thresholds for filtering noise, not guarantees — they assume the model is well calibrated for that player and that spot.
- Z-edge#
- How far the posted line sits from the projection, measured in standard deviations of the simulated distribution, and reported as no edge / weak / moderate / strong / very strong. It answers "is this gap large relative to how uncertain the model is?" — something a raw point difference cannot tell you. Two points of edge is enormous on blocks and negligible on points.
- Spread#
- The projected margin between the two teams.Where you'll see it: Team Matchup → Spread tab.
- Total#
- The projected combined score of both teams.Where you'll see it: Team Matchup → Over/Under tab.
- Win probability#
- The share of simulated games each team won. Because it is a count over simulations rather than a formula, it already reflects everything in the scenario you set up.Where you'll see it: Team Matchup → Win Sim tab.
How the models work
The machinery behind the numbers, and where it has known limits.
- Monte-Carlo simulation#
- Instead of solving for a single answer, the model predicts quantiles, draws thousands of samples from them, and counts what happened. Every probability on this site is a frequency over those samples — which is why you can change a line or a range and get an answer instantly, without re-running the model.
- Shapley attribution#
- Splits a projection into three contributions — Dime, Poor Defense and Support Skill — using the game-theory method of the same name. It answers "how much of this number is him, and how much is who he is up against?" It runs as a separate job because it is expensive: the model has to be re-evaluated across every combination of those three groups.Where you'll see it: The attribution panel on the player prop pages.
- Hotness#
- Whether a player is running above or below his own season baseline. It blends recent games with his history against this specific opponent, then shrinks the result back toward the baseline when the sample is small — so three good games against one team is not mistaken for a trend.
- Calibration#
- A correction fitted so that stated probabilities match observed frequencies: when the model says 60%, it should happen about 60% of the time. A model can rank outcomes correctly and still be badly wrong about how confident to be; calibration is what fixes the second problem.
- Mean anchor#
- Pulls the simulated distribution toward the model’s mean projection. On by default. It switches itself off for legacy cards, which have no current-season mean to anchor to.
- Dynamic features#
- Form, usage and matchup inputs recomputed from nightly-refreshed game logs, as opposed to static season averages or fixed card ratings.
- Independence assumption (Combo Props)#
- Combo Props builds its combined line by resampling each stat’s distribution on its own and adding them together. Correlation between a player’s stats is not modelled — in reality a night where he is scoring is often a night where he is shooting and handling the ball more. Because positively correlated stats vary together, the combined range shown is narrower than the true one. Treat combo intervals as a floor on the uncertainty, not a ceiling.Where you'll see it: Combo Props page.
Inputs and scenario controls
Everything you can set before hitting predict, and what moves the number.
- Minutes#
- The single biggest driver of any counting stat. Auto-filled from the player’s recent games where that data exists, and capped by the game environment. Clearing the field falls back to the auto value when you submit, and the app tells you what it used.
- Game environment (48 vs 40 minutes)#
- NBA games run 48 minutes, college games 40. A matchup resolves to college only when both sides are college; any NBA involvement makes it an NBA-length game. One length applies to everyone on the floor, so the minutes cap is shared across all players in the scenario.
- Legacy player#
- A retired or all-time player card. Projected from career averages rather than current-season game logs, which is why some options — the mean anchor in particular — turn themselves off when you select one. Toggled with the "legacy" pill next to a name.
- Supporting cast#
- The teammates on the floor with the player. Matters most for assists, where the projection depends heavily on who is finishing the passes.
- Opposing starters#
- The five defenders. Auto-filled from the opponent’s depth chart and fully editable — swapping in a different rim protector or perimeter defender moves the projection.
- Defensive scheme#
- Man or zone, plus which defender picks the player up and which teammates rotate over to help.
- Attendance#
- Crowd size. It enters the model signed by venue — positive at home, negative on the road — so it carries a home-court effect rather than acting as a raw headcount.
- Seed#
- The random-number seed for the simulation. The same inputs with the same seed produce identical numbers, so any result is reproducible. Changing it is a quick way to check that something you spotted is real and not an artefact of one particular draw.