How it works.

One engine plays every possession of every game on the site. Here is what goes into it.

Every possession is played

A simulated game is not a score drawn from a formula. The engine plays it out possession by possession: who brings the ball up, who shoots, from where, whether it goes in, who rebounds, who fouls and who gets tired. The box score is simply the record of those possessions, which is why points, rebounds and assists always add up.

Coaches manage a rotation. Starters play starters' minutes, players tire and come out, foul trouble changes the lineup, and close games late change behaviour: intentional fouls when trailing, holding for the last shot, running the clock with a lead and heaves when time runs out.

Calibrated to the real league

We check the engine against the real NBA by simulating thousands of games and comparing league-wide numbers. Across 3,000 simulated games a team averages about 116 points on 46% shooting, 37% from three on 38 attempts, 21 free throw attempts, 12.5 turnovers and 26.6 assists. The home team wins about 56% of the time and about 6% of games go to overtime, all close to recent NBA seasons.

Individual scoring is fitted too: each player's shot volume is tuned so his simulated points per minute track his real ones, and a nightly form factor gives hot and cold games. That is why a star can drop 40 one night and 18 the next.

Ratings come from real stats

Each player has skill ratings for shooting, finishing, passing, rebounding, defence and more. They are our own opinions, derived from his real per-game statistics and adjusted for how his teams have played over the last two seasons. We never show the numbers. Players appear as S, A, B, C or D tiers, cut where the real league's talent actually breaks.

Where the data comes from

Rosters, per-game statistics, ages, birthplaces and reported contracts come from Wikipedia (team roster templates and player articles), used under CC BY-SA. The 2026-27 salary cap, tax line and aprons are the league's published figures. Traded first-round picks are rebuilt from the trade records on team season pages. Where a contract figure was not reported it is estimated from players of similar value and labeled as an estimate.

How each game uses the engine

The Game Simulator plays one game, or a best of seven. The Season Simulator plays all 1,230 games on a real-format schedule, back-to-backs included, then the play-in and playoffs. The Draft Lottery Simulator uses a season projection from the engine for its standings. The Career and GM simulators play your team's schedule through the same engine, and the Trade Simulator projects wins before and after a deal.

Replays and share links

Every game uses a seeded random number generator. A share link carries the seed and the lineup, so whoever opens it sees exactly the same game.

What it does not do

It is a game, not a forecast. Injuries, motivation, coaching changes and luck in the real world are not in the model, so no result here should be used for betting or any decision with money on it.