Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PrizePicks ML — NBA & WNBA Player Prop Prediction

Preprint: Predicting NBA and WNBA Player Prop Markets: A Machine Learning Approach to Sports Betting Efficiency — see paper/main.tex

A machine learning pipeline that predicts whether NBA and WNBA players will go OVER or UNDER their PrizePicks prop lines, using only publicly available ESPN gamelog data.


Key Results

NBA (2026 test) WNBA (2025 test)
Overall accuracy 61.2% 57.6%
≥60% confidence 68.4% 62.6%
≥70% confidence 76.5% 68.3%
≥80% confidence 85.8% 78.4%
Permutation test z = 87.4, p < 0.0001 z = 23.7, p < 0.0001
  • 499,770 NBA training samples · 55,695 WNBA samples
  • Walk-forward backtest: models frozen on 2023–2025, tested on full 2026 season (144,846 predictions)
  • Model confidence is well-calibrated — higher confidence = higher accuracy, monotonically

How It Works

ESPN Gamelogs → Feature Engineering → Walk-Forward CV → GradBoost Model
                                                              ↓
                                          PrizePicks Lines → Daily Email Picks

Features: Rolling averages (L1/L3/L5/L10/L20), season avg, momentum, acceleration, coefficient of variation, hit rate, cross-stat correlations, home/away, game number

Models: Gradient Boosting (best), Voting Ensemble, Random Forest, SVM, Logistic Regression

Validation: Walk-forward cross-validation — never trains on future data


Repo Structure

├── paper/                  # LaTeX preprint
│   ├── main.tex
│   └── refs.bib
├── data/
│   ├── nba_props_dataset.csv       # 499,770 rows
│   ├── wnba_props_dataset.csv      # 55,695 rows
│   ├── models/                     # Saved GradBoost pickles
│   ├── plots/                      # Backtest figures
│   └── live_results.csv            # Daily pick outcomes
├── ml_pipeline.py          # NBA model training
├── wnba_ml_pipeline.py     # WNBA model training
├── dataset_builder.py      # ESPN gamelog → features
├── backtest.py             # Walk-forward backtest + plots
├── email_picks.py          # Daily automated picks email
├── main.py                 # Core prediction logic
├── prizepicks.py           # PrizePicks line fetcher
├── vegas_lines.py          # Odds API comparison
├── moneyline.py            # Moneyline value finder
├── flex_pnl.py             # Flex Play P&L tracker
├── check_results.py        # 1am results checker
└── significance_tests.py   # Permutation tests

Automated Pipeline

Two GitHub Actions run daily:

  • 5pm CDT — fetches live PrizePicks lines, runs model, emails top picks
  • 1am CDT — checks ESPN box scores, logs outcomes, sends results email

Setup

pip install -r requirements.txt

Set environment variables:

APIFY_TOKEN       # PrizePicks line scraper
ODDS_API_KEY      # The Odds API (moneyline/vegas comparison)
KALSHI_API_KEY    # Kalshi prediction market
GMAIL_USER        # Sending email
GMAIL_PASS        # Gmail app password

Run backtest:

python backtest.py

Train models:

python ml_pipeline.py       # NBA
python wnba_ml_pipeline.py  # WNBA

Paper

See paper/main.tex for the full preprint. Key findings:

  • NBA prop markets are approximately 94% efficient by Brier Skill Score
  • Primary inefficiency: short-horizon momentum — lines lag hot/cold streaks, especially for role players
  • Secondary: class imbalance in rare props (blocks, steals) — market systematically overestimates these, creating UNDER value
  • WNBA markets show consistent but slightly lower inefficiency, consistent with thinner market action

University of North Texas · 2026

About

ML pipeline for NBA/WNBA player prop predictions on PrizePicks — SHAP analysis, backtesting, walk-forward validation, and automated daily picks

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages