Upcoming picks
Every other page here grades a prediction against a game that already happened. This one does not: it is what the model makes of games nobody has played yet, rebuilt every morning from last night's results.
That makes it the only page where the full model is honestly point-in-time. In the backtest, the blended predictor has to be labelled as a model that saw the future, because scoring a January game with a rating that describes the whole season means using March information. A game that has not been played has no future to leak.
Read the edge column, not the probability column. The model is very sure about a lot of games, and so is everyone else: a 95% favourite is 95% on every screen in the country and priced accordingly. The only interesting number here is where the model and the betting market disagree, and even then the market is the better forecaster more often than not. The accuracy page is where that claim gets checked.
The 2025-26 season is over, and the 2026-27 schedule has not been published. The last game was played
April 7, 2026 , and a forecast needs fixtures: with nothing ahead to price, every table on this page would be empty. They are held back rather than drawn blank, and they come back on the first nightly run after the new schedule lands in the feed.Nothing here is waiting on a fix. The season overview and the team scorecard are complete, because they describe results rather than fixtures.
The slate
How far the results run, how many games are in the next seven days, how many of them a book has priced, and how many are still being rated partly on last season. Four counts over the fixtures ahead, which is what there are none of right now.
Where the model disagrees with the price
The ten games in the next week where the model's probability is furthest above what the market is charging for the same side. Positive edge means the model thinks the price is too long. This is the list to read first.
The ten biggest disagreements with the price
Needs two things a book provides and the calendar does not: a fixture inside the next seven days, and a posted line to disagree with. It fills in as soon as both exist.
The upsets it likes
The same disagreement, restricted to games where the model is taking the side the market has priced as the underdog. These are the picks that lose most of the time and pay for it when they do not, which is a different bet from the one above and worth separating.
The upsets the model likes
The same disagreement as the table above, narrowed to the games where the model is on the side the market has priced as the underdog. It needs the same posted lines.
Model against market, every priced game this week
Each point is one game, plotted at what the market gives the model's pick against what the model gives it. The diagonal is agreement. Everything above the line is a game the model likes more than the price does, and the further from the line, the bigger the claim being made.
Model against market, every priced game this week
One point per priced game, plotted against the diagonal where the model and the book agree. It is the clearest read on this page and the one that needs the most: a week of fixtures with lines posted against them.
The ten it is most sure about
Sorted on the model's own confidence, with no reference to a price. Most of these are unbettable at the number the market posts, which is exactly why the edge tables above lead the page. The last column is the check on the number beside it: across every season in the warehouse, this is how often a real forecast at that confidence has actually won.
The ten the model is most sure about
Ranked on the model's own confidence, with no reference to a price, and checked against how often a real forecast at that confidence has actually won. It needs fixtures inside the next seven days to rank.
The whole slate
Every scheduled game in the next week, whether or not a book has posted it. Sorted by date, so this is the card rather than a ranking.
Every scheduled game in the next week
The card rather than a ranking: every fixture inside seven days, priced or not. It is the first table on this page to fill in, because it is the only one that needs nothing from a bookmaker.
How a pick is made
Same predictor as everywhere else on this site, defined once in a dbt macro so the bracket, the head-to-head numbers and this page cannot disagree about the same game.
- Rate both teams as of today. Adjusted efficiency margin, tempo, and Elo. A team that has played fewer than ten games this season is rated partly on what it carried out of last season, regressed toward the league, because a rating built from four games is mostly noise and on opening night there is no rating at all.
- Turn the two ratings into an expected margin. Efficiency at 60% weight and Elo at 40%, tempo-adjusted, plus 3.5 points to the home side and nothing at a neutral site.
- Turn the margin into a probability with the logistic the betting market's own spread-to-moneyline conversion uses, so the model and the benchmark are on one scale.
- Compare it to the price. Every book's spread and moneyline is reduced to a median, converted the same way, and subtracted. What is left is the edge column.
- Rank, and stop at seven days out. Anything further ahead has no line to disagree with, so it sits in the slate table without a rank.
The ratings this runs on are the same ones the season overview ranks teams with, and the accuracy of the predictor behind it is on the model page, including how badly it is calibrated where it is badly calibrated.
None of this is betting advice, and the numbers are only as good as that calibration curve. A model that is overconfident at 80% will produce a confident-looking edge on every game it is wrong about.
