Model Methodology
App: Hoops49 · Last updated: July 28, 2026 · Developer: Floppyspot
Hoops49 is an NBA analytics app. This page explains, in plain language, how our AI models produce the projections you see in the app and how we measure and publish their accuracy. Our goal is transparency: we show you what the model predicts, why, and how it has actually performed.
This is not betting advice. Hoops49 is an analytics and entertainment product, not a sportsbook, and does not accept wagers. Projections are estimates and can be wrong. Nothing in the app is a recommendation to place a bet. See our Terms of Service.
1. What the models produce
Hoops49 runs two families of machine-learning models:
- Player projections — a per-game estimate for each tracked stat (points, rebounds, assists, three-pointers made, combined categories such as P+R+A, turnovers, steals, and blocks). For markets with a sportsbook line, the projection is converted into an estimated probability that the player finishes over or under that line.
- Game outcomes — an estimate of each team's final score, from which we derive a projected spread, total, and win probability for the game.
2. How the models are built
Player projections
Each stat has its own gradient-boosted decision-tree model (XGBoost) trained on historical, completed NBA games. The models learn from features such as a player's season and recent-form averages, usage, minutes and role, and the strength of the opposing defense. A projection is a weighted blend of what a player typically does and how the specific matchup is likely to shift it.
A raw projection is not the same as a probability. To turn "we project 27.4 points" into "we estimate a 58% chance of going over 26.5," we apply a separate calibration step (Platt scaling) fitted on historical results, so that the stated percentages line up with how often those outcomes actually occur. Low-variance stats such as steals and blocks are modeled with an empirical rate-based (Poisson) approach rather than the point projection, because that produces better-calibrated probabilities for those markets.
Game outcomes
Game scores are projected by gradient-boosted models trained on thousands of historical games, using team scoring and defensive rates, pace, rest and schedule situation, and recent form. The projected point margin is combined with the model's historical error to produce a win probability, spread cover probability, and over/under probability.
3. How we measure accuracy
We evaluate the models the same way a researcher would — against real, settled results, not cherry-picked highlights:
- Hit rate — of the picks the model leaned toward, what share actually landed on the projected side.
- Calibration — when the model says "60%," does that outcome happen about 60% of the time? A well-calibrated model's stated confidence matches reality. We show this as a calibration curve on the Model Performance screen.
These figures come from the model's own published projections compared to the box scores after games are played. The Model Performance screen surfaces this record openly so you can judge the model on its results.
4. Honesty and limitations
- Models can be wrong. Basketball is high-variance. Injuries, blowouts, rest, and lineup changes routinely defy any projection. Treat every number as an estimate with real uncertainty.
- Some markets are still being validated. Features and markets that are newly added, or that we are still calibrating, are labeled BETA in the app until their accuracy is confirmed on live in-season results.
- No look-ahead in published accuracy. Every figure on the Model Performance screen compares a projection published before tip-off to the final box score, so the model is never graded on a result it had already seen. One caveat about model development: the opponent-strength inputs we use while training are whole-season team averages, which means our internal training scores are likely somewhat optimistic about live performance. That does not affect the published figures above — those are graded only on games the model had not seen.
- Data dependence. Projections rely on third-party NBA data and sportsbook lines; gaps or delays in that data can affect what the app can show, especially in the offseason.
5. Data sources
The models are trained and run on NBA statistics from licensed third-party sports-data providers, and sportsbook lines from a third-party odds provider. Hoops49 is an independent product and is not affiliated with, endorsed by, or sponsored by the NBA or any sportsbook.
6. Contact
Questions about how the models work? support@hoops49.com