Understanding the models and techniques used for predictions.
The arithmetic mean of historical values. Stable but doesn't account for recency or trends. Best for stats that remain consistent over time.
Gives linearly increasing weight to recent games. Game 10 counts more than game 5. Captures trends while smoothing noise.
Weights decay exponentially—recent games have significantly more influence. The alpha parameter controls decay speed. Higher alpha = more reactive to recent performance.
Fits a straight line through data points to project the next value. Captures linear trends (improving or declining performance). Reports R² to show how well the line fits.
Fits curves instead of straight lines. Can capture non-linear patterns like hot streaks or slumps. More flexible but can overfit small samples.
Linear regression with L2 regularization. Penalizes extreme coefficients to prevent overfitting. More stable predictions when features are correlated.
Uses L1 regularization which can zero out unimportant features entirely. Good for feature selection—tells you which stats actually matter.
Builds multiple decision trees and averages their predictions. Handles non-linear relationships and interactions between features. Robust to outliers.
Gradient boosting algorithm that builds trees sequentially, each correcting the errors of previous ones. Often the most accurate but slowest to train.
Neural network designed for sequences. Can learn complex patterns in time series data. Requires more data to train effectively but captures dependencies that simpler models miss.
Models the full probability distribution of outcomes. Tells you "there's a 75% chance they score over 25 points." Useful for evaluating over/under lines at any threshold.
Predicts win/loss probability using logistic regression on performance features. Outputs a probability (0.65 = 65% chance to win) rather than a point total.
Predict actual numeric values: "Team will score 108.5 points" or "Player will have 24.3 points." Most regression models produce continuous outputs. Compare directly against betting lines.
Predict categories or outcomes: win/loss, over/under, cover/not cover. Classifier models (logistic, Elo) work in discrete mode. Output probabilities rather than raw numbers.
When discrete models need to compare across teams, they convert probabilities to a 0-100 scale. Higher pseudo-score = stronger predicted performance. Lets you rank teams even when models don't output actual point projections.
Runs multiple models and averages their predictions. If linear says 105, ridge says 108, random forest says 103—ensemble outputs 105.3. Reduces variance from any single model's quirks.
Weights models based on their historical accuracy. A model that's been right more often gets more influence on the final prediction. Adapts over time as model performance changes.
When multiple models predict similar values, there's higher confidence. Standard deviation across model predictions indicates agreement—low std means models agree.
The average prediction across all selected models for a given stat. Used in backtesting to evaluate "what if I just followed the aggregate?"
A dynamic skill rating starting at 1500. Win against a strong team = big rating gain. Lose to a weak team = big rating drop. The difference between two teams' Elo predicts win probability.
Controls how much ratings change after each game. Higher K = more reactive to recent results. Lower K = more stable long-term ratings.
Adds a bonus to the home team's effective Elo when calculating win probability. Accounts for crowd, travel, familiarity with court/field.
Adjusts rating changes based on how much a team won by. A 20-point blowout moves ratings more than a 2-point squeaker. Capped to prevent outliers from distorting ratings.
Accounts for fatigue. Teams on back-to-backs or short rest get a slight penalty. Well-rested teams get a small boost.
Recent games impact the rating change calculation more than older games. Prevents early-season results from having outsized influence late in the year.
Only bet when the Elo gap is within a specified range. Example: only bet favorites when their Elo edge is 50-150 points—enough to be confident, not so much that the line is juiced.
Simulates predictions on historical games as if you didn't know the outcome. Runs the model at each point in time using only data available before that game. The only honest way to evaluate a model.
Compares your bet to the closing line. If you bet -3 and it closes at -5, you got +2 points of value. Consistently beating closing lines predicts long-term profit better than win rate.
Measures how well a regression model fits the data. R²=0.8 means the model explains 80% of the variance. Higher is better, but beware overfitting—a perfect fit on training data often fails on new data.
Average prediction error in the same units as the target. RMSE of 8 for points means predictions are off by about 8 points on average. Lower is better.
Range where the true value likely falls. "Prediction: 105 (95% CI: 98-112)" means we're 95% confident the actual result will be between 98 and 112.
Number of games used to train the model. More data = more reliable predictions. Be skeptical of models trained on fewer than 10-15 games.
When your model's implied probability exceeds what the odds suggest. If you predict 55% win probability but odds imply 48%, that's +EV. Consistently finding +EV bets is the goal.
How many past games the model considers. Short windows (5-10 games) capture current form. Longer windows (20+ games) capture true skill. The right window depends on what you're predicting.