Krish & Associates
NFL win probability · counsel by neural network
From the senior partner's desk ·

The docket

This week's cases

One case per game. The ruling is the model's pick and how sure it is, from 50% (a coin flip) up to 100%. Opposing counsel is the Vegas betting line: who it favors, and whether the model agrees. Rulings are final at kickoff.

The partners

Who's winning cases

Everyone is judged on the same games. The record counts right and wrong picks. Log-loss is the confidence-weighted score: a confident correct call scores well, a confident miss costs a lot. Lower is better.

The record

Graded picks

Krish's picks are filed before kickoff and entered into the record once the game starts.

Each cell is the team that side backed and how sure they were.WON backed the winnerLOST backed the loser
WkCaseFinalKrishModelVegasKrish's grounds
The brief

How the model works

Live since launch

Every prediction made in real time this season, frozen at kickoff and graded after. These games were never available for tuning. Download the full log (CSV).

Collect

Play-by-play since 2014 (over half a million plays), weekly 53-man rosters, snap counts, injury reports and schedules from nflverse.

Engineer

About 250 pregame features per game: opponent-adjusted EPA, ridge power ratings, Elo, QB ratings, roster strength and travel.

Train

Two neural nets and three classical models, each trained on win/loss with the nets also predicting point margin.

Validate

Walk-forward by season. Tuned on 2018–21, then scored once on 2022–26 games the models never saw.

Deploy

Automated jobs retrain four times a week, freeze predictions at kickoff and republish this site.

Exhibit A: every model against the baselines

Share of winners picked on held-out games, 2022–26. Brass bars are this project's models.

Exhibit B: season by season

Accuracy per season. Shaded seasons were used for tuning; the rest are out-of-sample. 2026 is partial.

Exhibit C: does the confidence mean anything?

Held-out games grouped by how sure the ensemble was. The tick marks the average stated confidence; a well-calibrated model's bar reaches its tick.

Exhibit D: what the model leans on

How much worse the model gets (log-loss increase) when each feature group is removed. Near zero means other features already cover it.

Architecture

  • MLP on the matchup difference vector with a linear skip path, input dropout and strong L2. It's multi-task, predicting both the win logit and point margin.
  • Siamese matchup network: one shared encoder embeds each team, and a head combines the two embeddings with game context.
  • Symmetric by design: every game is trained from both sides, and predictions average the two views, so listing order can't bias a pick.
  • Ensemble: the two nets plus logistic regression, ridge-margin and gradient boosting, averaged in log-odds space. Each net is itself an 8-seed ensemble.
  • Loss: binary cross-entropy (log-loss), a proper scoring rule, so the model is rewarded for confidence only when it's earned.

Keeping it honest

  • As-of-kickoff features: every rating, Elo and standings value is computed from games before kickoff only.
  • Same roster view in testing and live: a player counts as available if he's on the 53-man roster and not listed Out or Doubtful on Friday. Game-day inactives were never used in training.
  • One look at the test set: all tuning used 2018–21; the 2022–26 results were computed once, after the lineup was locked.
  • Frozen predictions: live predictions train only on earlier weeks and lock at kickoff.
  • Vegas is a benchmark only and is never a model input.

Findings

Regularization made the nets work

The first networks overfit within five epochs and swung between runs. Explicit L2, heaviest on the linear path, plus input dropout made them stable and competitive.

The signal is mostly linear

Tuned properly, the MLP ties regularized logistic regression. A GRU over each team's last 12 games and player-level production ratings didn't add accuracy.

Quarterbacks matter most

QB rating and QB-change features carry the most unique information, followed by season-long form and the pregame roster ratings. Short-term momentum adds little.

Vegas already knows the stats

When blended with the market, the model earns only about 8% of the weight. Public stats are priced in, so independent human judgment is the remaining edge. That's why the record above tracks human picks too.

Stack

PythonPyTorchscikit-learnpandas · NumPy · SciPynflverse dataWalk-forward backtestingScheduled retrainingGitHub Pages

Read the source code on GitHub →