Jan 10, 2026

Song: Sam and Dave, "Hold On, I'm Coming"
Code: https://github.com/csdurfee/scrape_yahoo_odds/blob/main/explore_football.ipynb
This week, more insights into NFL betting from BetMGM gambling data (harvested from Yahoo). I'm looking at the last 5 seasons of regular season NFL games (2021-2022 thru 2025-2026). There are 1,359 games total, around 140 of which are missing betting percentage data, so have been excluded from parts of this analysis.
Point totals
Gamblers can wager on whether the total number of points scored in an NFL game will be over or under a certain number. These bets are sometimes called over/unders.
Spreads are a wager on the difference in team scores, and point totals are a wager on the sum. It's kind of an odd bet, because it doesn't matter which team wins. All bets are math problems, but over/unders are more obviously so.
The over has won 48.4% of the time (658/1359 games). Point totals almost never push (hit the number exactly, meaning neither side wins). That's only happened in 12 of 1358 games. About 60% of point totals are on the half point (6.5 instead of 6, for example), so they can't push.
The win rate for overs has changed over the past 5 seasons. The over won about 46% of the time from 2021-23, and 53% of the time from 2024-25. That possibly mirrors what we saw last time -- it was wildly profitable to fade the public on spread bets from 2021-23, and wasn't the last two seasons. I don't have a good theory as to why the win percents mirror each other.

Taking the under is usually equivalent to fading the public, because as with the NBA, the betting public greatly prefers the over on point totals, taking them 86.8% (1056/1217) of the time. When the public takes the over, they win 48.1% of the time. On the rare occasions where they take the under, they win 46.6% of the time. So, this is yet another example of where gamblers as a whole do worse than a coin flip. In 3 of the 5 seasons, they did poorly enough that fading their picks would have been profitable.
Half of all point total spreads are between 41.5 and 47.5, with the median being 44.5. A naive betting strategy would be to assume that low point totals are too low (always take the over if the total is less than 44.5), and high point totals are too high (take the under if the total is greater than or equal to 44.5). This strategy would've gone 700-658 (51.6%). It's not much, but there might be a slight advantage to betting on boring point total outcomes.
Here are the win rates for betting on the over, by point total range (split by quartiles):
| start (>) |
end (<=) |
over won |
over lost |
over win percent |
| 0 |
41.5 |
211 |
185 |
53.2% |
| 41.5 |
44.5 |
161 |
200 |
44.5% |
| 44.5 |
47.5 |
151 |
140 |
51.9% |
| 47.5 |
max |
134 |
176 |
42.2% |
Some of the variation is just noise, but based on this breakdown, taking overs on high point totals seems like a bad move.
Here are what the actual point totals look like:

Point total errors
Here are what the errors against the point total look like. Positive values are games that went over the total, negative are games that went under.

The median error is -0.5, so the errors are fairly balanced even if the graph isn't symmetrical. As with other NFL data, there are spikes because some point totals are more likely than others.
There's a longer tail to the positive side than the negative -- it's impossible to score fewer than 0 points, which limits how far under a bet can go, but there's theoretically no limit to how many points the teams can score in the over direction.
Here's how the total errors break down.
count 1358.000000
mean 0.767305
std 13.402751
min -37.500000
25% -8.500000
50% -0.500000
75% 9.000000
max 57.500000
Point totals are off by an average of 10.6 points. Here are the details about the absolute value of the error:
count 1358.000000
mean 10.561119
std 8.282722
min 0.000000
25% 4.000000
50% 8.500000
75% 14.500000
max 57.500000
NFL money lines and the favorite-longshot bias
A money line bet is the simplest type of bet to understand, because it's a wager on who will win the game outright. A bet on the underdog will pay out more than you have to risk, because it's less likely to happen.
Money line data is always going to be high variance -- one +400 bet winning or not can wildly change the Expected Value. That was a problem with the NBA, which has 5x the games of the NFL, so it's definitely going to be a problem here.
The public's money line picks do better than their spread picks. They're making an average of -3.1% on money line bets, which is a step up from the -6.7% they're doing on the spread. That mirrors the NBA, where the public does significantly better on the money line than spread bets.
The public is also a slightly better Expected Value than taking money line bets randomly. The public are saved by their love of favorites, which they took in 96% (1181/1228) of games, and are a relatively good deal on the money line.
Each bet has two sides. Underdog money lines on NFL football are a bad bet in general (-7.3% EV), but huge underdogs are especially bad (-29.7% EV). This is evidence of the favorite-longshot bias in NFL betting. A -30% EV puts longshot underdog money lines in the same league as the biggest sucker bets you can take -- Same Game Parlays, 4+ leg parlays, and teasers.
"EV %" is the expected value of taking every bet in each category. Overall, money line bets have a -5.5% EV.
| label |
start |
end |
num games |
EV % |
| all favorites |
-9999 |
-1 |
1271 |
-3.9% |
| mild favorites |
-200 |
-1 |
662 |
-2.8% |
| heavy favorites |
-400 |
-200 |
406 |
-7.5% |
| huge favorites |
-9999 |
-400 |
203 |
-0.2% |
| ---------------- |
---- |
---- |
---- |
------ |
| all dogs |
1 |
9999 |
1185 |
-7.3% |
| mild dogs |
1 |
200 |
663 |
-5.4% |
| heavy dogs |
200 |
400 |
399 |
-3.4% |
| huge dogs |
400 |
9999 |
123 |
-29.7% |
| ---------------- |
---- |
---- |
---- |
------ |
| everythang |
-9999 |
9999 |
2456 |
-5.5% |
That -29.67% for huge dogs is hiding a big discrepancy. Huge home dogs (>= +400) have actually made money, winning 8/31 games. Huge away dogs have only won 6/92 games, for an absurd -63% Expected Value. The average odds for these bets is +600 (1 in 7 chance of winning), so we'd expect 13 of 92 bets to win, not 6.
Like I said at the top, money line dogs are going to be extremely variable, and the +400 number is a totally arbitrary cutoff. But even if huge away dogs had won twice as often, they'd still be unprofitable. Woof!
Money line favorites turn out to be a slightly better value than spread bets. But the estimated EVs are very sensitive to changes. I've been working on this project for a couple of weeks now, and noticed the numbers changing pretty significantly over the last 2 weeks of the NFL season. So the estimates are not telling the whole story about the range of possible outcomes.
Bootstrapping money lines
Since every bet has a different payout, they're not going to follow some nice, polite distribution. In order to estimate the variance in outcomes, I'm going to use bootstrapping, a popular technique in these parts.
I'm using the scikits-bootstrap library to generate a 90% confidence interval for the Expected Values. It samples random subsets of the bets in each category and calculates the EV of each subset. Then it returns the 5th and 95th percentile outcomes, which is a plausible range of values for the EV.
| label |
start |
end |
num games |
5th %ile |
EV |
95th %ile |
| all favorites |
-9999 |
-1 |
1271 |
-7.2% |
-3.9% |
-0.6% |
| mild favorites |
-200 |
-1 |
662 |
-8.3% |
-2.8% |
2.4% |
| heavy favorites |
-400 |
-200 |
406 |
-13.0% |
-7.5% |
-2.6% |
| huge favorites |
-9999 |
-400 |
203 |
-5.3% |
-0.2% |
4.0% |
| ---------------- |
---- |
---- |
---- |
------ |
--- |
----- |
| all dogs |
1 |
9999 |
1185 |
-14.0% |
-7.3% |
-0.2% |
| mild dogs |
1 |
200 |
663 |
-12.6% |
-5.4% |
2.3% |
| heavy dogs |
200 |
400 |
399 |
-16.5% |
-3.4% |
10.5% |
| huge dogs |
400 |
9999 |
123 |
-55.3% |
-29.7% |
4.7% |
| ---------------- |
---- |
---- |
---- |
------ |
--- |
----- |
| everythang |
-9999 |
9999 |
2456 |
-9.1% |
-5.5% |
-1.7% |
Those are some pretty wide confidence intervals. Even the big categories like all favorites lead to a wide range of outcomes.
Even with the -29.7% EV for huge dogs, we can't rule out some small hope that somebody could make money taking them, I suppose. But as always, if there's randomness involved, we don't get to pick whether we get the 5th percentile result, the average result, or the 95th percentile result.
Mathletix Bajillion, playoffs round 2
After a dramatic 10-0 run by the Hand-Eggs, both teams are now in the black for the season.
Lines taken Wednesday morning
The Neil McAul-Stars
last week: 3-2, +88
Overall: 25-24-1, +3
line shopping: +143
- BUF +1 -101 (prophetx)
- SF +7 +104 (prophetx)
- NE -3 -109 (prophetx)
- CHI +4 -104 (prophetx)
The Vincent Hand-Eggs
last week: 5-0, +501
Overall: 25-22-3, +214
line shopping: +134
- NE -3 -109 (prophetx)
- SEA -7 -108 (prophetx)
- BUF +1.5 -107 (prophetx)
- LAR -3.5 -110 (prophetx)
Jan 07, 2026

Song: Stereolab, "Wow and Flutter"
This time, I'm looking at NFL gambling statistics from the last five seasons. The data is from BetMGM, scraped from Yahoo's website (example page) via an internal API (example request).
My previous analysis of NBA betting data from the same source is available here. Code is available at https://github.com/csdurfee/scrape_yahoo_odds/.
There's not as much NFL data as I'd like, or any data nerd would. We only have 1,360 games worth of data spread over the five years since gambling was legalized. Around 140 of those games are missing data about betting percentages, so have been excluded from most of the analysis. I'm only looking at regular season games.
As usual, I'm presenting this data because I think it's an interesting window into how people and markets behave around sports. There's no reason to believe the trends I highlight here will continue in the future. It's not eternal, imperishable. Which is to say: I don't think you should bet on the information given here, or at all.
Previously, in the NBA
When I looked at the NBA, I found that a bet on the public side, the side that gets more money bet on it, wins 49.2% of the time against the spread. So there's a slight bias against the public, but not enough that somebody could make money betting the opposite way.
I was expecting something similar for the NFL. I believed that NFL lines were probably quite fair, meaning no matter how you slice the data -- home vs. away team, favorite vs. underdog, popular vs. unpopular side -- a gambler will end up losing over the long run no matter which side they take.
Turns out, that's not true.
Spreads: the popular side gets crushed
The side with a higher wager percentage (by number of bets placed) has gone 605-755 over the past 5 years. That's a winning percentage of 44.5%. Someone taking the unpopular side (fading the public) on every NFL game would've won 55.5% of their bets, for a profit of 89.5 units at standard -110 odds. That's an Expected Value of +6.6% on each bet.
Here are the winning percentages for fading the public by year:

The yellow lines are a 90% confidence interval, assuming that fading the public should only win 50% of the time. 2021-2023 are outside the range we'd expect due to chance, but 2024 and 2025 have been in range, so whatever trend may have been causing the imbalance could already be gone. For instance, gamblers may have gotten more savvy over time, or the lines less imbalanced because of more market competition.
The green dotted line is at 52.4%, the minimum win rate to break even at -110 odds. The average entrant in the Super Contest has never exceeded that in 13 seasons, while fading the public has done so in 4 out of 5 seasons.
There are a fair number of games where the stake percentage (amount of money) and the wager percentage (number of bets) disagree about which side is the public side. Excluding those games leads to even more impressive results -- a 649-500 record against the spread for the unpopular side. That bumps the win percentage up to 56.5%, and +99 units at -110 odds, or +124 units at reduced juice. That's an expected value of +8.6% on each bet.
We should expect pretty much any binary slice of the data to win between 47 and 53% of the time, assuming the imbalance is due to chance. For example, the home team went 650-710 (47.8%) against the spread. The underdog went 681-679 (50.1%). Home underdogs went 260-275 (48.6%).
Of course, this is hindsight bias. Imagine if, 5 years ago, someone had proposed to always fade the public on the NFL. I would have thought it was a bad idea. Wouldn't you?
Other spread trends
The public tends to favor the away team, taking it in 724/1340 games (59% of the time).
They also generally take the favorite on the spread. They took the favorite in 877/1340 games (64.5% of the time).
Both of those trends were true for NBA basketball as well. Gamblers seem to love their away favorites. When there's an away favorite, they take it 78% of the time (415/535 games). When there's an away underdog, they take it 54% of the time (448/824 games).
Chunky spreads
Some final scores in football are more likely than others. Scorigami, yadda yadda.
That means point differentials are going to have differing degrees of likelihood. A final score difference of 3 is going to be more likely than 5, because scoring a field goal to win a tie game is more likely than the long sequence of actions that would lead to a 5 point differential. (For example, one team might be up by 8 and the other team scores a field goal.)
The spreads are an estimate of the mean outcome of every game, not a guess at the final outcome. So they'll be less widely dispersed, but they should have roughly the same shape. For more detail, see the section "What would perfect lines even look like?" here.
Here are NBA point spreads. Except for a bit of weirdness in the center due to NBA not having ties, and winning/losing by one point being rare for basketball reasons, it's a nice smooth curve:

Here's what spreads for the NFL look like. The lack of data isn't helping, but the overall shape clearly isn't a nice smooth curve. The spikes are much higher for certain numbers.

Here are the most common home spreads. These represent 73% of all NFL spreads.
| spread | count | cumulative % |
|---------:|--------:|---------------:|
| -3 | 109 | 8 |
| 3 | 90 | 15 |
| -3.5 | 89 | 21 |
| -2.5 | 86 | 28 |
| 2.5 | 64 | 32 |
| 3.5 | 56 | 36 |
| -6.5 | 51 | 40 |
| -7 | 49 | 44 |
| -1.5 | 40 | 47 |
| 1.5 | 38 | 49 |
| -7.5 | 37 | 52 |
| -5.5 | 37 | 55 |
| -4.5 | 37 | 58 |
| 7 | 35 | 60 |
| -4 | 32 | 63 |
| 1 | 32 | 65 |
| -1 | 28 | 67 |
| -6 | 28 | 69 |
| 6.5 | 27 | 71 |
| 5.5 | 27 | 73 |
NFL betting is a game of 3's. 36% of lines are around +3 or -3. It's unusual to see lines that are greater than 7 or less than -7.5.
Actual point differentials
What about the differentials of actual games? I had to pull scores from another datasource, since the yahoo API only provides gambling data. I'm using the score data from pro-football-reference.com.
Here are spreads and final score differentials laid on top of each other. The orange part is where they overlap. The score differentials are much more dispersed, but they both show similar spikes at certain numbers:

The spikes at the 3's and 7's are a bit more legible if I zoom in:

Here are the most common final score differentials for the away team -- which would be the seemingly ideal point spreads for the home team.
| away_score_diff | count |
|------------------:|--------:|
| 3 | 101 |
| -3 | 98 |
| 7 | 54 |
| -6 | 51 |
| -7 | 51 |
| -2 | 43 |
| 6 | 42 |
| 1 | 39 |
| 4 | 38 |
| 10 | 37 |
| -8 | 37 |
| 14 | 35 |
| 5 | 34 |
| -17 | 33 |
| -4 | 31 |
Lots of the games end on 3's, 7's and 6's, just like the lines. Unlike the lines, none of them land on the half point.
The average outcome in the NFL is the home team winning by 2 points, so that's a decent estimate of home field advantage.
About half of all NFL games are within 8 points (a touchdown and a 2 point conversion) of the average outcome.
count 1359.000000
mean 2.062546
std 14.187563
min -40.000000
25% -6.000000
50% 2.000000
75% 10.000000
max 50.000000
Name: home_score_diff, dtype: float64
What do errors against the spread look like?
Let's compare the final point differential to the spread. The spread should be an unbiased estimate of the mean outcome between the two teams. We only get one data point to judge the quality of the line's estimate of the mean, which is sort of unfair, but that's just how it works with sports betting. I'll refer to the difference between the point differential and the spread as the error.
As I talked about in "Last fair deal in the country", because the line makers aren't trying to predict the actual outcome, merely the average outcome, some large errors are inevitable. The line makers can't actually predict the future, and aren't really trying to.
For example, the Miami Dolphins once beat the Broncos 70 to 20. The spread on the game was Dolphins -6, meaning it was off by 44 points relative to the final score. That doesn't mean the line really should have been Dolphins -50, though. It's hard to believe that if the game were played over and over again, the Dolphins would win by an average of 50 points, which is what a 50 point line signifies.
So we need to look at the errors as a whole rather than individual games to decide whether the line makers are good at their jobs or not. If the spreads are fair, the average error should be zero, and the errors should be fairly symmetrically distributed -- there should be about as many games where the error is -7 as it is +7, for instance.
Here's what the errors look like. The median is exactly zero, so kudos to the sportsbooks for that one. The right side is where the home team outperformed the spread, and the left is where they underperformed. There are a few more blowouts against the spread (more than 20 points) for the home team than the away team, but otherwise it's reasonably symmetrical.

count 1358.000000
mean 0.437040
std 12.628641
min -37.000000
25% -7.375000
50% 0.000000
75% 8.500000
max 44.000000
Name: spread_error, dtype: float64
Next week: much more on NFL betting.
Mathletix Bajillion, playoffs round one edition
Both teams had wicked regressions to the mean this week.
I'll finish the season out, but I'm tempted to quit, because I think I've proved my point about line shopping: both teams are essentially earning a free bet every 30 or so bets by using betting exchanges rather than retail sportsbooks.
Both teams ended up making similar picks, because there are only 6 games to choose from.
Lines taken Wednesday morning
The Neil McAul-Stars
last week: 1-4, -330
Overall: 22-22-1, -85
line shopping: +135
- CAR +10.5 +100 (lowvig)
- CHI +1.5 -109 (prophetx)
- JAX +1 -107 (lowvig)
- PIT +3 -105 (lowvig)
- SF +5 -107 (prophetx)
The Vincent Hand-Eggs
last week: 5-0, +500
Overall: 20-22-3, -287
line shopping: +133
- CAR +10.5 +100 (lowvig)
- NE -3.5 -109 (prophetx)
- BUF -1 +101 (prophetx)
- SF +5 -107 (prophetx)
- CHI +1.5 -109 (prophetx)
Dec 31, 2025

Song: Bohannon, "Save Their Souls"
Nothing this week, as I'm working on a couple big things about the NFL.
Mathletix Bajillion, see you next year edition
One mathletix team picks bets randomly, the other algorithmically.
Both teams took Washington +7, which ended up being a push. The line closed at +9, so they both missed out on a win by taking the bet early in the week. The Mcaul-Stars also lost the bet on JAX -6.5, who won by 6 points. The closing line was JAX -4. So they could've been 3-2 on the week, instead of 1-3-1.
Both games are good examples of the fact that closing lines aren't necessarily more accurate than the opening lines, something I've covered before. Of course, bettors taking the opposite side of Washington and Jacksonville would've been better off taking the lines early in the week. Whether line moves hurt or help will depend on which side of the line the gambler is on.
Lines taken Thursday morning.
The Neil McAul-Stars
last week: 1-3-1, -209
Overall: 21-18-1, +245
line shopping: +125
- LAC +13 -109 (prophetX)
- CAR +3 -110 (prophetX)
- GB +8 -110 (hard rock)
- KC -5 -110 (prophetX)
- CIN -7.5 -101 (prophetX)
The Vincent Hand-Eggs
last week: 2-2-1, 0
Overall: 15-22-3, -787
line shopping: +133
- JAX -12.5 -110 (prophetX)
- CAR +3 -110 (prophetX)
- DET +3 -110 (lowvig)
- BUF -7 -105 (lowvig)
- NE -10.5 -102 (lowvig)
Dec 23, 2025

Song: Light-Space Modulator, "These Things"
Notebook: https://github.com/csdurfee/csdurfee.github.io/blob/main/notebooks/super-contest.ipynb
Even the experts can't do it
As I've been chronicling in the "Bajillion" segment, experts are really bad at betting on NFL football, or at least the ones at the Ringer are.
That inspired me to make my first YouTube video, about sports gambling and why it's not really a game of skill. I'm still working on it, but I promised I'd do a thing a week on here. This is that thing.
The Ringer's football/gambling experts doing worse than a coin flip on the NFL could just be coincidence, bad luck, or as gamblers say, a bad beat. I figured I should make more of an effort to find real-world betting records on the NFL by people who have might skill as gamblers, rather than people who talk about sports for a living.
The Westgate Resorts (TM) Las Vegas Super Contest (R) seemed like the perfect testing ground. It's exactly like the Ringer 107, except there's cash on the line. With a buy-in of $1500 and around 1,000 teams a year, that's a pretty nice top prize. (There are fewer contestants this year than normal, maybe because the buy-in increased from $1,000.)
While the people at the Ringer are using their picks to generate interesting football content, these contestants have lot of financial incentive to do well and nobody they have to explain their picks to. The Ringer writers might have a bias against taking the uglier/harder to justify side of a bet, because their job is really to tell a story that people want to listen to. But these folks should be eating W's like crab legs and not caring how messy it looks.
That $1500 buy in is 207 hours of wages, pre-tax, for someone making the federal minimum wage. For regular folks, $1500 is most of a mortgage payment, or a few months of groceries. Anyone risking that much money should have rational reasons to believe they're good at betting on football, right?
This isn't a non-gambling football writer forced to make picks for the sake of content. The contestants consider themselves sharp enough to beat 1,000 other competitors in a pretty famous betting contest, for a Million dollar payout and the chance to get their photo taken with a bunch of showgirls while holding a giant novelty check.
This is the kumite of football betting, the ultimate contest of warriors, and I assume you're only going to enter the kumite if you've won a few fights before.
Mind you, there are around 15 NFL games every week and the teams only have to pick 5 of them for the Super Contest. Maybe most lines are so fair nobody can make money betting them, but the contestants only need to take one game in three. If there are any lines that are beatable, these contestants should be finding them. Their win rate should be an overly optimistic estimate of how beatable the average NFL line is, because they're not taking every game, or random games.
My assumption before running the numbers was that this was a contest for people who should have a decent chance of at least breaking even (over 52.4% winning percentage.)
The terrible, horrible, no good, very bad year
That assumption hasn't been even close to true this season. Data as of week 16 taken from the Westgate Resorts website.
There are 751 entrants in the 2025 contest. 59% of them (444/751) have a losing record. 76% of them would be losing money, if they were taking their picks at -110 odds.
Collectively, the teams have won 48.6% of their bets. It might not sound terrible, but there are 700+ teams who have taken 70 bets apiece, so it's a big sample size overall -- over 54,000 bets in total. Statistically, they're much worse than flipping a coin. If you flipped a coin 54,000 times and it came up heads 48.6% of the time, you'd be safe concluding it wasn't actually a fair coin.
Here's one way to visualize the suckitude. I simulated each team making picks by flipping a fair coin, and compared them to the actual results.

The white areas are where there were fewer real competitors than we'd expect by random chance, the dark blue parts are where there are more real competitors than expected, and the light blue is the overlap.
The white vertical line is the minimum winning percent to break even at standard -110 odds. Most of the white area, where there are fewer competitors than expected, is to the right of the line, and all of the dark blue area is at less than 50% winning percentage.
Anti Skill and Uncle Juice
The best entry in the contest is sitting at 53-21, the amusingly named BIFFS ALMANAC. That record would be an outlier if we were selecting bets by chance, so even though it's a small sample size, kudos to them, and their mostly accurate sports almanac.
The worst record belongs to the also amusingly named THISSHOULDBEEASY, with a record of 24-49. If that team had just taken the opposite of their bets, they'd be in 2nd place!
Most of the teams would be doing better if they wrote down their best picks, then took the opposite of them. Knowing stuff sure seems to be a disadvantage when betting on football.
In aggregate, whatever strategies or football knowledge or divination rites (*) the contestants are using makes them worse at picking winners -- they possibly have anti-skill. This is sort of what the efficient market hypothesis predicts -- picking stocks randomly (or index funds, which invest in every stock on the market) will generally outperform mutual funds that have professional fund managers making the picks.
(*) I'm a big tyromancy guy myself. RIP to the recently departed Claude Lecouteux, a legendary historian of spooky medieval stuff. If you ever need to write a heavy metal concept album on short notice, his books are a goldmine.
Previous years
After a bunch of wasted work to screen-scrape results from previous years off 3rd party sites, I discovered another website that has the complete records going back to 2013 in CSV format. Score!
This season has been particularly difficult on Super Contest gamblers, which probably explains the Ringer's poor record. Previous seasons have looked more like what I expected -- the average Super Contest entrant is a little better than flipping a coin, but not good enough to actually make money gambling.
Here are the Expected Values by year:

The dotted line is at -4.5%, the Expected Value (EV) of taking a bet at -110 with a 50% chance of winning. There have been 5 seasons where the average competitor has done about the same as flipping a coin, or worse, and 2 seasons where they came close to breaking even.
Over all seasons and all contestants, the average EV is -2.5%, about the same as betting 'reduced juice' (-105 odds instead of -110) with a 50% chance of winning. Overall, the EV has been better than what we'd expect by chance, but not good enough to be profitable.
Since the contestants only have to pick 5 games every week, this data should represent the best case scenario -- the most beatable lines possible, being taken by more experienced than average gamblers -- and they're still losing money 11/13 years, and breaking even the other two.
While the 75th percentile has a decent rate of return (up until this season), that's true of flipping a coin as well. With fewer than 100 bets in a Super Contest season, it's very possible to have a winning record by chance alone.
The win rate of competitors has been going down for 3 years in a row. It may be due to weaker competition in the Super Contest, or just random variation, but I would guess it's at least partially due to better lines. More money than ever is being gambled, and there's more information than ever, so the lines should get tighter. I would have to pull a lot more data to answer that question, though.
Looking for other experts
OK, maybe that's still not enough proof -- what about people who make a living selling their supposed gambling expertise? I've looked at a ton of sites that sell picks for money, so I have an idea how this will go. But I came across a new one that's run by some pretty smart folks, so let's give it a crack, and I'll try to act suprised at the results.
The site in question is called FTN Fantasy. It's affiliated with Aaron Schatz, who I'm pretty sure basically invented modern football analytics with his site Football Outsiders.
DVOA, ever heard of it?
If football betting is a game of skill, a game of ball-knowing (at least the stats version of ball-knowing), he should have that skill. Here's Aaron's record:

Oh no! He's got a losing record overall, a -11% EV on his bets (vs. -4.5% for picking which mascot would win in a fight). Who could have seen that coming?
Here's the whole site's record:

While they have a winning record overall, they have a losing record against the spread (the bets labeled Sides).
Giving them props
Prop bets are, well, propping their record up. Since the site is primarily about fantasy football, it makes sense they would be strong on prop bets, since fantasy is all about individual player predictions. That makes them a cut above most tout sites, who aren't good at anything.
It's quite possible that prop bets are beatable in a way spread bets aren't, though as discussed in the video, the big sportsbooks no longer allow taking the unders on prop bets, which I'm sure makes it harder to find value.
My caveat about tips on prop bets is that the lines tend to move very rapidly, and in large amounts. A line could very quickly go from positive to negative Expected Value before someone could get a bet down. So the tips might be legit, but not be usable to the gambler paying for them -- they have a very short shelf life.
Touts and their tricks
The only tout with a good record against the spread is esteemed actor Michael Chiklis apparently doing a little moonlighting:

The Commish is doing something I've seen a lot of touts do, which is taking some games at higher than -110 odds in order to make the win-loss record appear better (for example, buying a couple of points and taking -150 odds, which should win significantly more than 50% of the time). The equivalent record at -110 odds would be 41-35, only a 54% winning percentage. That's better than nothin', but it ain't much.
I'm inclined to be distrustful of any tout pulling that trick, since buying points is a negative Expected Value play. (We don't need math for this one: the sportsbooks wouldn't offer the option of buying points if it was positive EV for the gambler. They're counting on the gambler making an emotional decision to buy the points, because they've done the math and know it's a bad deal.) Buying points might make the record look better, but it will hurt profits/increase losses over the long run.
Bajillion, Week bajillion
One mathletix team picks bets randomly, the other algorithmically.
The Ringer had another losing week, going 12-13 overall, despite one team going 5-0. Mathletix went 6-3 on the week, despite a couple of bad beats (bets that just barely lost).
Lines taken on Tuesday morning.
The Neil McAul-Stars
last week: 4-1, +295
Overall: 20-15, +454
line shopping: +104
- WAS +7 -104 (lowvig)
- MIN +7 +103 (prophetx)
- GB -2.5 -112 (lowvig)
- TEN +2.5 +102 (prophetx)
- JAX -6.5 -106 (prophetx)
The Vincent Hand-Eggs
last week: 2-2-1, -6
Overall: 13-20-2, -787
line shopping: +113
- PIT -3.5 +103 (prophetx)
- HOU +2.5 -108 (prophetx)
- WAS +7 -104 (lowvig)
- ARI +7 -101 (prophetx)
- BAL +2.5 +101 (lowvig)
Dec 17, 2025

Song: "Pacific State (12" version)", 808 State
Two Georges, damn
In the NBA right now, there are two up-and-coming players with very similar names. This seems to keep happening in the league. I wish somebody would do something about it.
For a few years now, we've had to deal with two players named Jaylin Williams and Jalen Williams who play on the same team and have similarly generic nicknames, forcing hoops fans to remember which one is "J Dub" and which is "Jay Will". This is on top of a dozen other "Jalens" playing for other teams as well. (Do Jalen Rose or his parents get any residuals for all these basketball Jalenses? I hope so.)
Compounding the problem for Keyonte George of the Utah Jazz and Kyshawn George of the Washington Wizards is the fact they play for two of the worst teams in the league. There's only so much Jazz/Wizards basketball anyone can watch and stay sane, so even avid hoops fans should be forgiven for doing a "Christian Bale"/"Kirsten Bell" thing with them. Even pro sports journalists do that.

Both started out looking like they were drowning in the NBA, but they're putting it together, Kyshawn in his second season, Keyonte in his third, so it's time to tune in while you can still say you knew about them before it was cool.
Kyshawn
Kyshawn George is a floofy haired youth who always looks like he's 15 minutes late to his Political Science class. He should probably be playing in a North Face puffy jacket and pajama pants instead of a Wizards uniform.
All-Pro Reels, CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0, via Wikimedia Commons
With the big hair and the throwback Wizards jersey, he looks a little bit like greatest player in Washington Bullets/Wizards history, Wes Unseld:

His game is a little Unseld-y, too. Unseld was a 6'7" guy who played center. Guarding much bigger players takes a certain quality -- solidness -- that not all players have. Some guys just occupy space better than others.
Although he plays small forward, Kyshawn George has that solidness. At his best, Kyshawn just kind of owns the floor, unafraid to bounce off of other players (or go through them) in order to score or get the rebound. And like Unseld, he has good passing skills. If Wes Unseld played today, he might be a point forward like Kyshawn, who is leading the Wizards in assists.
At his worst, well, Kyshawn's got a lot to learn. I think he has the capability to be a very good defender, but the Wizards are just awful at defense -- worst in the league by points allowed. It's hard for me to tell how good a player is when they're surrounded by teammates who make lots of defensive mistakes.
Keyonte
Keyonte George, looks a bit like, I dunno, Timon from the Lion King. I don't have Timon's scouting report, but Keyonte's a super quick modern point guard who can score as well as set his teammates up. Or at least that was the idea. His first two years in the league were disappointing. He mostly shot 3 pointers, and wasn't especially good at it. As a point guard, he was tentative, and seemed to check out mentally at times when things were going bad (a frequent occurence on the woeful Jazz.)
This year, he's more of an all-around scorer, and much more efficient. He's scoring almost 6 more points per 36 minutes, while only taking 1.7 more shot attempts. A lot of that is driven by getting more free throws -- 3 more made free throws per 36 over last season. He's a threat to score from just about everywhere, after two seasons of not being a threat anywhere.
Keyonte's still bad on defense. The Jazz are 28th in Defensive Rating, so like Kyshawn, it's awfully hard to say how good he really is when he plays on such a crappy team. His game is similar to DeAaron Fox, who is currently thriving on the Spurs surrounded by significantly above average defenders. So I think he has a bright future even if he never makes a big leap on defense.
7'6" man kills giant
Shout out to the try-hard Spurs for taking down the Thunder in the NBA cup. The fact that the tallest guy in the NBA took down basketball Goliath is perfect. No notes. My biggest basketball fear is that if the aliens come down and challenge Earth to a game, we're not gonna have anyone who can guard Wemby.
Mathletix Bajillion, week I guess we're still doing this
As usual, one of these teams picks randomly, the other algorithmically.
The Ringer went 9-16 on the week, for a 171-204 combined record on the season and 45.6% winning percentage. The mathletix teams didn't cover themselves in glory either, going 3-7. Nobody knows nothin'. All of us are in the gutter, but some of us are staring at the reduced juice.
Lines taken Wednesday afternoon
The Neil McAul-Stars
last week: 1-4, -321
Overall: 16-14, +159
line shopping: +99
- SEA -1.5 -105 (prophetx)
- TEN +3 +100 (lowvig)
- CAR +3 -106 (prophetx)
- NE +3 -108 (lowvig)
- ATL -3 +100 (prophetx)
The Vincent Hand-Eggs
last week: 2-3, -110
Overall: 11-18-1, -781
line shopping: +99
- SEA -1.5 -105 (prophetx)
- JAX +3 +103 (prophetx)
- MIN -3 +109 (prophetx)
- LAC +2 +106 (lowvig)
- GB +0.5 -110 (prophetx)
Dec 10, 2025

Song: Delia Derbyshire - Pot Au Feu (1968)
Notebook: https://github.com/csdurfee/csdurfee.github.io/blob/main/notebooks/free-throws.ipynb
The Bucks
There's a lot of buzz around the Milwaukee Bucks right now because their star player has asked to be traded, but I'm gonna stick to the math. The NBA take-industrial complex has got the Giannis situation covered, and I do math better than drama.
I noted a few weeks ago that the Bucks make a surprisingly low number of free throws given that they have a guy with one of the highest free throw rates in the league. They're also bad on defense and end up fouling a lot. That's a bad combination.
As of December 5th, the Bucks are dead last in free throws made (14.4 per game) and 6th worst in free throws made by the other team (21.3 per game). Aren't they essentially having to play every game with a 6.9 point handicap?
Although it's an intuitively simple way of looking at things, it's too simple. Basketball strategy is a series of tradeoffs. There are a lot of "good" numbers -- stats that correlate with more wins -- but it's usually hard to make one good number go up without a bad number going up, or another good number going down, in response.
I'm looking at the last 25 years of team data from nba.com/stats.
Things to remember about free throws
There are complications to analyzing free throws because they're not a fixed quantity. Some fans will see a game where one team gets 20 free throws and the other team gets 35, and take it as evidence that the refs were biased. That's naive -- some players/teams foul more on defense, some players/teams take more foul-worthy shots on on offense, and there's plenty of random variation form game to game. It would be weird if every team committed exactly 30 fouls every single game.
There's seasonality to foul calls as well. On top of formal rule changes, the NBA issues points of emphasis for its officials each year, which change how the rules are interpreted. Certain types of fouls may be emphasized, or de-emphasized, causing the total number of fouls called to go up or down. It's hard to find a formal record of these de facto rule changes, but as a fan, I've seen it several times. For instance, I previously talked about the middle of the 2023 season, where the league told officials to stop calling so many fouls in general, without telling teams or the general public.
There was another shift in the early 2010's where the officials quit calling so many fouls caused by the actions of the shooter rather than the defender. A shooter can shoot in a somewhat artificial way to ensnare the defender's arms. This type of grifting still exists in the league -- looking at you, James Harden -- but the league reduced the number of cheap fouls called in the early 2010's. I couldn't find exactly when they formally made the proclamation, but we can see a big shift in the free throw data after the 2010-11 season.

The current season has been more like the NBA from 2004-2010, at over 39 made free throws a game. However, there's a lot more scoring now, so free throws are a smaller percentage of a team's total points:

Do free throw differentials matter?
Of course, there's going to be a lot more variance in the 20 games of this season when compared to a full 82 games.
The Bucks' free throw differential of -6.9 (not nice) would be by far the worst of the last 25 years, if it held for the whole season. The Celtics' current differential of -6.3 also stands out.
90% of NBA seasons are between the two white lines. We'd expect there to be 3 outliers by the end of the season, instead of 7.

Some of the differential is due to chance. We should charitably assume that referees make random errors when calling or not calling fouls. Refs can make both Type I errors (fouls they shouldn't have called) and Type II errors (fouls they should have called and missed). Some teams will get called for more fouls than other teams, due to randomness, rather than conspiracy. Over a larger sample size, the refereeing luck will even out.
Free throw differential is positively correlated with winning.

The diagonal line is the overall trendline. Even though it's a positive trend, the teams with some of the biggest positive and negative differentials are close to .500 win percentage. This is a good example of why it's important to visualize data, not just look at the correlation. The bigger picture shows it's good to have a positive free throw point differential, but not a magic ticket to winning.
Do referees try to keep fouls roughly even?
It's possible referees have an unconscious bias towards calling an even number of fouls on both teams. There's certainly a correlation between more free throws made and more free throws given up to the other team.

However, this overall picture is misleading. The number of fouls called per game goes up and down season-to-season based on rule changes and points of emphasis. So from year to year, the center of all the dots should move up and down along the diagonal line FTM=Opponent FTM. We should expect a positive correlation overall that isn't necessarily there in the individual seasons -- an example of Simpson's paradox.
Here's an animation of the correlations year-by-year:

A lot of seasons, the trendline is basically flat. But plotting correlations year by year, there are a lot more positive years than negative.

So I do think it's possible that refs call more fouls on teams that get fouled a lot, a conscious or subconscious bias towards fairness. Or perhaps, teams that play physical on offense also tend to play physical on defense as well. We'd need to look at individual games -- we're not going to see evidence of that in the yearly averages.
Basketball strategy and opportunity cost
The opponent's number of free throws made has a higher correlation with winning percentage (r=-0.260) than a team's number of free throws made (r=0.153). If it were possible to make such a binary tradeoff, the Bucks would be better off trying to foul the other team less, rather than trying to draw more fouls. That's especially true given the Bucks are the best 3 point shooting team in the league -- drawing more fouls would mean fewer 3 point attempts. They have the 2nd highest eFG%, so they're already making the most of their shot attempts.
Why isn't their offense better overall? One big reason is their offensive rebounding rate is the lowest in the league. They score the fewest 2nd chance points in the league, at only 10.5 2nd chance points a game, versus 18 a game for the top teams. Does that mean another de facto 7 point handicap?
Not necessarily, because offensive rebounding rate is a schematic choice. Do the bigs try to get the rebound (crash the boards), or do they try to hustle back and play defense? Teams coached by Doc Rivers tend to have low offensive rebounding rates. The "Lob City" Clippers were a great rebounding team, yet in their heyday from 2014-2018, they were 21st, 28th, 29th, and 24th in offensive rebounding, so it's not surprising the Bucks have that same tendency.
The Thunder have the 3rd fewest second chance points, so a team can definitely be elite and not get a lot of offensive rebounds. But unlike the Thunder, the Bucks are bad on defense (22nd in defensive rating) and foul way too much, so they're not in a good place to make defense their identity. If this were NBA 2K, I'd probably move the "crash the boards" slider to the left for the Bucks and see what happens, because the Bucks are closer to being elite on the offensive end. There's more strength to build on.
There is only a very slight positive correlation between 2nd chance point differential and winning percentage. It's a bad predictor of team success.

The Nets are fun... for now
The Brooklyn Nets had a bunch of draft picks and cap space going into this offseason, and they didn't seem to maximize those resources. A lot of people didn't like the trade they made for Michael Porter Jr., which got the Denver Nuggets out of salary cap hell in exchange for a fairly small return. The Nets were the only team in the league with the financial flexibility to take on bad contracts in trades, so they probably could have gotten more.
They also didn't trade any of the five first round picks they accumulated in this year's draft. Why didn't they trade some of them for future picks? The conventional wisdom is that teams shouldn't try to develop too many rookies at once. What's a team supposed to do with five rookies (two of whom are teenagers), with some overlap in the positions they play?
Well for one thing, they're supposed to be terrible. The Nets have been bottoming out for a few seasons, and I doubt that will stop this season. Catch them in the next few weeks while they're sort of trying to win games, if you're curious. They've won 3 out of their last 4 games and they've been entertaining.
They were fun for a few weeks at this point in the season last year, too. The front office will probably try to trade away their best players over the next couple of months to keep them from being too good. But right now, MPJ is a good stats/bad team All-Star, Nic Claxton is solid as always, rookie Danny Wolf is already a fan favorite, and a couple other rookies show promise.
As fun as they are, I'm not encouraged by the Nets' approach to rebuilding. I'm always a lot more concerned with process than outcomes, because the process can be controlled. It seems like their idea is that if they draft enough first rounders, inevitably some of them will be good. It's treating players like lotto scratch tickets -- players are inherently winners or losers, and it's the front office's job to play the percentages and get as many picks as possible.
That's bad process to me. Players are more like a packet of seeds. The final result is heavily dependent on how and where they are grown. The same seed grown in two different environments can give two very different results. Some seeds are better than others, but without the right environment, even the best seeds won't grow to their maximum potential. I don't know if they have the culture and support system to develop their five rookies. It will be a few years before we'll see what sort of trees they're growing in Brooklyn.
The Mathletix Bajillion, week whatever
As usual, one set of NFL picks is algorithmic, the other is random.
Mathletix won the week, with a total record of 6-4 versus the Ringer's 10-15 record (note: their website incorrectly lists The Handicapos as going 5-0 when they actually went 4-1. I'm petty enough to notice, but not petty enough to email them about it.)
The Ringer currently has 3 teams at 33-37 and 2 teams at 31-39, for a cumulative record of 161-189 (46.0% winning rate). Of course, some of the Ringer's picks contradict each other -- one Ringer team taking the home team, and another taking the away team on the same game. Removing the bets where Ringer teams contradicted each other would just make things worse, though, because taking both sides of a bet has a winning percentage of 50%, which is better than the Ringer's overall win rate.
Someone taking the opposite of every one of the Ringer experts' picks would be up 11.9 units on the year, for a +3.4% rate of return. There's only a 6.7% chance of getting results that bad by flipping a coin.
As I've written about before, I don't think that makes them bad as far as gambling experts go. Rather, I believe everything they know about football has already been incorporated into the line, so their knowledge is kind of a curse -- they're overvaluing information that the market has already absorbed, so they end up losing more than 50% of the time.
Lines taken Wednesday morning
The Neil McAul-Stars
last week: 4-1, +304
Overall: 15-10, +480
line shopping: +80
- CIN +2.5 -101 (lowvig)
- NYG -2 -110 (hard rock)
- MIA +3.5 -105 (lowvig)
- BUF PK -110 (lowvig)
- NYJ +13.5 -105 (prophetX)
The Vincent Hand-Eggs
last week: 2-3, -108
Overall: 9-15-1, -671
line shopping: +79
- PHI -11.5 -105 (lowvig)
- DET +6 -105 (lowvig)
- WAS +2.5 +105 (prophetX)
- KC -4.5 -109 (prophetX)
- CIN +2.5 -101 (lowvig)
Dec 02, 2025

Song: Hobo Johnson, "Sacramento Kings Anthem (we’re not that bad)"
Stats are as of 12/1/2025. Spreadsheet here
The Kings
The Sacramento Kings are going through it. Again. For most other teams, the choices they've made recently would be a historically incompetent period, a basketball Dark Ages. For the Kings, it's just another season.
Firing the only coach that's had success with the team in a long time and replacing him with a buddy of the owner who is willing to work cheap. Drafting two All-Star point guards and trading both of them away. Trading for two guys (LaVine and DeRozan) who everybody knew would be a bad fit from their years playing together on the Bulls. Trading the very good, ultra reliable Jonas Valančiūnas for the washed Dario Saric just to save a tiny bit of money.
Do you know the definition of insanity? The Kings' front office doesn't.
Sacramento is 5-16 so far. They're definitely not a good team, but maybe they're not that bad? They went 40-42 last season, which is respectable in the loaded Western Conference. They've had a brutally hard schedule, and 21 games is not a large sample size.
I'll get back to the Kings, but first, the other side of the coin.
The Heat
The Miami Heat were arguably in a worse place than the Kings at the end of last season. They won 37 games, 3 fewer than the Kings, and play in the easier conference. They looked totally checked out by the end of the season, another team stuck in the middle of the NBA standings.
It was a disappointing, dysfunctional run where they traded away their best player and seemed to be going nowhere. The vibes were bad, but they didn't blow up the team for the hope of maybe being good again someday, or run back the same players and the same scheme for another bout of mediocrity. Instead, they trusted the culture they built and tried something innovative.
They've been one of the best stories in the NBA so far, greatly outperforming expectations by playing a radical brand of basketball on the offensive end. They completely overhauled their offense to quickly attack one-on-one matchups before the defense can get set, rather than the traditional approach of creating mismatches using pick-and-rolls.
Here's a good video from Thinking Basketball explaining the strategy, an even more turbo-charged version of the scheme the Grizzlies used to great success last year. As a basketball fan, it's a bit weird to watch at first, because pick and rolls are such an traditional part of basketball, but it's refreshing.
I don't know why more teams don't have the courage to try unconventional things -- or in the Grizzlies' case, stick with something unconventional that was working. In the NBA, it takes a great coach and front office to defy the conventional wisdom and try to get more out of the players already on the roster -- putting them in a position to succeed rather than re-shuffling the deck.
The most remarkable part is that overhauling the offense hasn't sacrificed the Heat's identity as a top-tier defensive team at all. They have the 4th best defense in the league so far by Defensive Rating. They're doing this while playing at the fastest pace in the league this year. Teams that play fast are usually just trying to outscore their opponents, with little attention to defense.
But the Heat are using their scheme to generate high quality offensive opportunities for players that are primarily on the court for their defense. They're building on their core identity rather than changing directions entirely. They're building on strength.
An elite playmaker like Tyrese Halliburton, or a generational talent like SGA or Jokic, can set up defense-first players for easy looks, but most teams that concentrate on defense struggle generating enough offensive firepower. The Orlando Magic have been plagued by that problem for years. The system Miami is running seems like a cheat code for defensively minded teams -- at least until the league inevitably figures out ways to slow it down.
I couldn't find anybody in the media who knew the Heat's scheme change was coming, much less an idea of how much of an impact it would have. I looked at a bunch of preseason power rankings, and they were all pretty down on the Heat for the same reasons, without any hint that they could fix the problems with a different play style. It's much easier to assess the impact of roster changes.
For example, this is from NBC Sports' preseason power rankings:
this was a middle-of-the-pack Heat team last season that made no bold moves, no massive upgrades, leaving them in the same spot they were a year ago.
Here's Bleacher Report's
for an offensively challenged team, replacing [Tyler Herro's] scoring (21.5 points over the last four seasons) and distribution (4.6 assists in the same span) is going to be tough.
And USA Today's:
Losing Tyler Herro for the first two months of the season, potentially, comes as a significant blow to a team that struggled to score — especially late in games — even when he was on the floor.
With the change in style the Heat are still only a mid-tier team on offense, ranking 14th in Offensive Rating. But that's a big step up from last year, when they were 21st, especially given they haven't had their best offensive player for the first month of the season.
Are they going to win a title with the present roster? No, but in addition to giving their fans something to cheer for, all their players will look much better on paper than they did at the start of this season. If they do decide to trade players, the Heat can get more in return for them. And it's not hard to get free agents to move to Miami if the team is winning and the vibes are good, so they could be a real contender again quickly.
It's weird that tanking is seen as the best way to increase the chances of future success in the NBA, rather than building a winning culture and innovating. The two teams with the most success in recent years at doing a major rebuild have been the Spurs and the Thunder. They were both bad for a few years, but they're also two of the best run teams in the league. They draft well, they trade well, they do player development well, they do analytics well. They had a clear vision of the type of team they wanted to build and the clear ability to develop players. If a team doesn't have those organizational competencies, what's the point of a tank? They're just going to waste their high-level draft picks, not develop the rest of the roster, and be mediocre again in 5 years.
Power ranking the power rankers
I collected data from six preseason NBA power rankings. There's a link to the spreadsheet at the top of the article. I would've liked to collect more data, and I'm sure there are other sites that did good NBA power rankings, but stuff like that is basically impossible to find these days, lost in a sea of completely LLM generated baloney or locked behind paywalls. It's not useful interrogating why some LLM stochastically decided that the Warriors are the 4th best team in the NBA this year, but there's seemingly an endless supply of that type of nonsense. Which is to say: thanks for reading this, however you managed to get here. I hope you'll keep coming back for this completely human generated baloney.
I compared the rankings from each list to each team's point differential, which is a better estimate of how good a team is than their win-loss record. How good were our mighty morphin' power rankers at predicting the current standings?
So far, the most accurate ranking has been RotoBaller's, with a Spearman correlation of .76. The worst has been USA Today, at .69. Taking the median rank of all six sources produced a correlation of .74, which was better than 5 out of the 6 individual scores. So we're getting a "wisdom of crowds" effect, which is interesting, since all the rankings are fairly similar to each other. (Previously discussed in Majority voting in ensemble learning.)
I also included rankings based on my own preseason win total estimates. I got a score of .73, right in the middle of the pack. That's respectable, but I can't believe I'm getting beat by the freaking New York Post.
Comparing rankings to records, the power rankers were too high on the Clippers, Cavaliers, Pacers, Kings and Warriors. They were too low on the Raptors, Suns, Heat, Spurs and Pistons.
Strength of schedule
Scheduling matters. Some teams have played much harder schedules than others, and we're dealing with small sample sizes, so win-loss records can be deceiving early in the season.
I grabbed adjusted Net Rating (aNET) data from dunksandthrees, which calculates the offensive and defensive ratings for each team, adjusted for strength of schedule. I also included Simple Rating System (SRS) data from basketball-reference, which is the same idea as aNET, but a different methodology.
The difference between aNET and average point differential gives a sense of which team records might be the most misleading compared to the team's actual skill level. For instance, the Sacramento Kings have already played the Thunder, Nuggets and Timberwolves three times apiece, going 2-7 over those games. Even a decent team would be expected to have a losing record against those opponents.
Based on aNET, the Cavaliers, Warriors, Clippers, Kings and Celtics are probably better than their records indicate.
Going the other way, the Raptors have had a deceptively easy schedule, going 7-1 in games against the woeful Nets, Hornets, Pacers and Wizards. Going 7-1 doesn't tell us much, because those are teams pretty much everybody should be able to beat.
The stats indicate that the Raptors, Hornets, Spurs, Jazz, and Suns are probably not as good as their records.
Most of the teams the power rankers got wrong have been hurt or helped significantly by their schedules so far. The biggest exception has been the Miami Heat, who apparently nobody saw coming, and are probably about as good as their record says they are.
The Kangz
What to make of the Kings? According to basketball-reference, they've had the hardest schedule in the league so far. It's fair to say they're not as bad as the record says.
While they're 28th in point differential, they're 25th by aNET, and 26th by SRS. So they might have 7 or 8 wins instead of 5 if they'd played a league average schedule. That's not that much, though, and a clear step back from last year.
Their rookie, Nique Clifford, has not looked good so far, and they don't have many players that other teams would want in a trade. It doesn't seem like they have any clue of how to develop young talent. Their highest paid player, Zach LaVine, has another year on his contract, doesn't play defense, and has put up a -1.1 VORP this year. They just benched their one big signing of the offseason (Dennis Schröder), and are instead starting Russell Westbrook, a man born during the Reagan Administration playing on a one year minimum deal.
On paper, they don't have much they can do to get better. But everybody was saying that about the Heat at the end of last year, and look at them now. I just can't see the Kings having that type of organizational courage, but I hope they find it somehow rather than spend years on another doomed rebuild. Sacramento fans deserve better than another version of the current mess. At least an innovative mess would be a change of pace from trying the same stupid thing over and over. What's the worst that could happen?
Sacramento's roster isn't great, but like the Grizzlies, the biggest problems I see are organizational. I understand the Kings are a rich man's toy, not a serious basketball team, but wouldn't it be more fun to own a team that wasn't a giant tire fire? I don't get spending billions of dollars to buy a sports team just to run it into the ground like this.
The Mathletix Bajillion, week 5
As usual: One of these teams picks NFL games randomly, the other uses a simple algorithm.
4 of 5 Ringer 107 teams had a losing week, going 10-15 collectively. All five still have a losing record on the season, so right now the McAul-Stars are the undisputed leaders.
Bluster aside, the important thing to notice is how much they're saving taking cheaper lines than the standard -110 odds. The McAul-Stars would be up +110 instead of +176 if the bets were taken at a retail sportsbook, and the Hand-Eggs would be down -620 instead of -563.
Lines taken Tuesday morning. Since it's early in the week, the reduced juice isn't quite as juicy as usual.
The Neil McAul-Stars
last week: 4-1, +296
Overall: 11-9, +176
line shopping: +66
- SEA -7 -108 (lowvig)
- DAL +3 -104 (prophetx)
- CIN +5.5 -108 (draftkangz)
- JAX +2 -108 (prophetx)
- LAC +2.5 +108 (prophetx)
The Vincent Hand-Eggs
last week: 1-4, -316
Overall: 7-12-1, -563
line shopping: +57
- WAS +1.5 +100 (lowvig)
- CIN +5.5 -108 (draftkangz)
- LAR -8 -101 (prophetx)
- DEN -7.5 +100 (lowvig)
- CLE -3.5 -108 (prophetx)
Nov 28, 2025

Song: The Jimi Hendrix Experience - Voodoo Child (Slight Return) (Live In Maui, 1970)
Jimmy Butler: still good
Last season, Jimmy Butler quiet quit on his team. He wanted a new contract from the Miami Heat, and they didn't want to give him one, so he just stopped trying. As a fan, it seemed like an annoying and entitled thing to do. He couldn't just play the season out?
Butler eventually ended up getting traded to the Golden State Warriors, who gave him the extension he wanted, and he started trying again.
Setting aside whether Butler was justified, was the extension worth it or not? Butler is 36 years old, an age where it's totally expected for players to start to decline. The NBA salary cap rules now make it so a team can't afford to get a contract as big as Butler's wrong.
The Warriors took a calculated risk, and it paid immediate dividends when Jimmy helped them sneak into the playoffs last year, but the team is about in the same position they were before they got him -- a few high level players, but not in the upper echelon of the league due being old and incomplete.
Jimmy's doing great, though. He's at career highs in True Shooting (TS%) and effective FG percent (eFG%).

He's always been an efficient scorer, due to his ability to draw a lot of fouls. That means shooting a lot of free throws, which are easy points. Jimmy has been getting about 2.4x the number of free throws per shot attempt compared to the league average.
That's about where he's been for several seasons now. His free throw rate saw a huge jump when he moved to the Miami Heat in the 2019-2020 season, and he's maintained that ever since:

The career highs in TS% and eFG% probably aren't sustainable, though. Butler's a career 33% 3 point shooter who's making 45% of them this season. I wouldn't bet on that continuing, but he'll always be valuable on offense if he can draw that many free throws.
Butler's defense is still great, as well. The Warriors are 6.5 points per 100 possessions better on defense when he's on the floor.
He stands out on all the advanced metrics. Right now, he's 4th in WS/48 (behind Jokic, Shai and Giannis), 8th in PER, 8th in VORP, 3rd in Offensive Rating, 8th in Box Plus/Minus, and 11th in EPM.
For the numbers he's putting up, I think he's worth the money.
Ewing theory, 2025 edition
Individuals don't win games, teams do. Sometimes it can be hard to tell how much of player's individual contribution is actually increasing the likelihood of their team winning. And there's always opportunity cost: perhaps a big man would've been more valuable to this team than Butler has been.
When a star player gets injured, sometimes a team plays better, a phenomenon Bill Simmons coined "The Ewing Theory". We're seeing some of that this year.
The Atlanta Hawks are 2-3 this season when star Trae Young plays, and 9-4 when he doesn't.
The Memphis Grizzlies are 4-8 when star Ja Morant plays, and 2-4 when he doesn't. (While the win percentage is the same, the team has looked less hapless in those 6 games.)
The Orlando Magic are 6-6 when star Paolo Banchero plays, and 4-2 when he doesn't.
All three players have distinctive play styles that their team must run to maximize their talents -- to paraphrase James Harden, they are the system. Sometimes maximizing the opportunities for the best player means wasting some of the talents of the other players on the team.
Similar distinctive players like Harden, Jokic and Halliburton are far more essential -- their teams are much worse when they are out, despite the same potential on paper for holding their teams back.
What's the difference between the Hawks, who have been doing better without Trae Young, and the Pacers, who are completely hapless without Tyrese Halliburton? I'm not going to read too much into such small sample sizes, but it's an interesting thing to watch out for.
SGA's FTAs
Debates involving subjects anybody can have an opinion about tend to be much louder than subjects requiring specialized knowledge. It's the law of triviality. The purest form of this in sports is the question of who is the most valuable player. TThe NBA version of this debate is probably the loudest and least interesting of any sport.
There are people who don't know much about basketball or statistics, but will argue endlessly on the internet whether BPM or EPM or RAPTOR or VORP is the right metric for deciding who is the best player. Or rather, they decide on the player they like, then find the statistic that says what they want to hear.
For me, the MVP usually comes down to personal preference -- there are always a handful of players that are clearly better than everybody else, and which one is the most valuable among that set is a matter of taste, and often gets decided by narratives rather than anything rigorous. Perhaps rigor is futile. Pretty much every MVP caliber player is a unique basketball talent. None of them are really interchangeable -- they all break the mold in some way. Any sort of all-in-one number is bound to fail at capturing what makes each one special.
Perhaps because it is a matter of taste and ultimately a very trivial question, people tend to latch onto style points. Who is funnest to watch, who would be the funnest to play with. Who scores points ethically and unethically.
People who think that Shai Gilgeous-Alexander (SGA) shouldn't be the MVP derisively call him FTA, implying he gets awarded more free throws than he deserves, or is otherwise a free throw merchant -- someone who baits defenders into fouling him.
Shai is currently currently the leader in FTAs this year, so the FTA nickname is accurate in one sense. Here are the 10 players with the most free throw attempts this season, plus Jokić (15th place.)
| Name |
Attempts |
FTr |
FTr+ |
PPG |
| Shai Gilgeous-Alexander |
167 |
0.465 |
164 |
32.2 |
| Luka Dončić |
150 |
0.551 |
194 |
34.5 |
| Deni Avdija |
143 |
0.472 |
166 |
24.9 |
| Devin Booker |
141 |
0.416 |
147 |
26.4 |
| James Harden |
139 |
0.488 |
172 |
27.8 |
| Franz Wagner |
136 |
0.471 |
166 |
23 |
| Giannis Antetokounmpo |
132 |
0.532 |
188 |
31.2 |
| Jimmy Butler |
132 |
0.667 |
235 |
19.9 |
| Pascal Siakam |
130 |
0.444 |
156 |
24.8 |
| Tyrese Maxey |
125 |
0.334 |
118 |
33 |
| Nikola Jokić |
116 |
0.395 |
139 |
29.6 |
Shai's FTr+ of 164 indicates he gets 1.64x more free throws per shot attempt than the average player.
In a vacuum, that seems high, but everybody on this list has an FTr+ of over 100. They're all good at drawing fouls. Most high volume scorers are. They score a lot and get fouled a lot for the same reason, they're hard to guard. Jimmy Butler is the king, though -- the only player on the list averaging under 20 points a game, and the only one with an FTr over .600.
Jimmy's getting 2 free throws per every 3 shots he attempts. Since he makes 80% of them, that's a free half point Butler gets every time he attempts a shot. As far as free throw merchants go, he's Giovanni de' Medici.
Compared to his peers, SGA's free throw rate is pretty tame. It's 7th on this list -- lower than Luka Dončić, Deni Avdija, James Harden, Franz Wagner, Giannis, and Jimmy Butler.
It's a little higher than Jokić's, but I don't know how you decide that an FTr+ of 139 is ethical, but an FTr+ of 164 is unethical (or a sign that the refs are in the tank for SGA). Where's the line? Why do other MVP candidates like Luka and Giannis escape criticism, when they draw more fouls per shot than SGA does?
I'll take a deeper dive into the topic some other time, but the fact that Luka's free throw rate took a jump when he got traded to the Lakers is another example of why the NBA stands for Not Beating Allegations.
Mathletix Bajillion, week 4
As usual: one team picks randomly, one team uses a simple algorithm.
Both the mathletix teams have losing records now, but so do all 5 Ringer teams, so it's still anyone's game. We're still saving a lot of (imaginary) money by shopping for lines, instead of taking them at -110. Even though I got lazy with shopping, I still managed to find all 10 bets at reduced juice.
Lines as of Friday morning.
The Neil McAul-Stars
last week: 1-4, -323
Overall: 7-8, -120
line shopping: +60
- MIA -5.5 -104 (prophetX)
- HOU +3.5 -107 (prophetX)
- WAS +6 -108 (prophetX)
- CAR +10 -108 (prophetX)
- NE -7 +100 (prophetX)
The Vincent Hand-Eggs
last week: 3-2, +97
Overall: 6-8-1, -247
line shopping: +33
- LV +9.5 -104 (lowvig)
- CLE +5 -104 (prophetX)
- PHI -7 -108 (prophetX)
- PIT +3 +100 (lowvig)
- WAS +6 -108 (prophetX)
Sources
All data sourced from basketball-reference.com
Nov 19, 2025

Song: Talking Heads, "Cities", live at Montreaux Jazz Festival, 1982
What's going on with the Grizzlies?
The easiest answer is they're miserably bad on offense. It's also the oddest thing about this team to me, since they scored effortlessly last year. The Grizzlies had found something that worked last season. They had the 6th best Offensive Rating, and 10th best Defensive Rating. Considering the Indiana Pacers made it within one game of winning the NBA Championship with the 9th best Offensive Rating and 13th best Defensive Rating, the Grizzlies were definitely a borderline contender.
This year, they're 27th in Offensive Rating, 21 positions worse than last year. (The falloff on defense is a little more understandable, since they have several very good defensive players injured right now.)
eFG+ is a measure of effective FG%, normalized so that 100 is league average. Here are the top 8 Grizzlies players by minutes played the last two seasons:
| Position |
2025 |
2024 |
2025 eFG+ |
2024 eFG+ |
Diff |
| Center |
Jock Landale |
Zach Edey |
108 |
111 |
-3 |
| PF |
Jaren Jackson Jr |
Jaren Jackson Jr |
98 |
101 |
-3 |
| SF |
Jaylen Wells |
Jaylen Wells |
82 |
97 |
-15 |
| SG |
KCP |
Desmond Bane |
77 |
104 |
-27 |
| PG |
Ja Morant |
Ja Morant |
71 |
93 |
-22 |
| Bench 1 |
Santi Aldama |
Santi Aldama |
96 |
106 |
-10 |
| Bench 2 |
Cedric Coward |
Scottie Pippen Jr |
105 |
102 |
3 |
| Bench 3 |
Cam Spencer |
Brandon Clarke |
109 |
115 |
-6 |
Except for rookie Cedric Coward, every single slot is a downgrade. Wells and Aldama have been significantly worse than last season, but the most dramatic is Ja Morant. The only player with around as many minutes played and a lower eFG+ are Ben Sheppard and Jarace Walker of the Indiana Pacers, young players who have been forced into playing a lot of minutes due to injuries.
Where have all the backup PGs gone?
A big problem for the Grizzlies is that they don't really have a backup point guard. They're far from the only team with a lack of PGs on the roster this season.
The Dallas Mavericks have been playing rookie forward Cooper Flagg as PG even though they knew their starting PG, Kyrie Irving, was injured coming into the season. The Nuggets have been experimenting with having forward Peyton Watson as backup PG. The Houston Rockets have no true PG in their "oops, all bigs" starting lineup, though Reed Sheppard is playing more and more off the bench, and looking pretty good.
It's an odd trend to me. Backup point guards have traditionally been cheap and easy to find -- guys like Ish Smith and D.J Augustin. They're like small, functional trucks. They made a ton of them back in the day, but they kinda don't exist anymore, despite how useful and reasonably priced they were. Does that make Yuki Kawamura the Kei truck of this analogy? Yes, yes it does.
The Rockets and Nuggets are doing fine so far without playing a backup PG, but the Grizzlies' situation is just baffling to me. Ja Morant is one of the more injury prone players in the league. You didn't think you needed to find a real backup for him? (Wouldn't Russell Westbrook look good in a Grizzlies uniform?)
The Grizzlies have a stretch of easier opponents coming up, so I think they'll start looking a little better for that reason alone. Maybe they'll get some mojo back. But I'm always about process, rather than outcomes, and I just don't get the Grizzlies' process right now. They had something pretty cool going last year, and now they don't.
Teams can't control a lot of factors. Injuries, who they play on a given night, the bounce of the ball on the rim on a last second shot. There's a lot of luck. But the Grizzlies' problems seem to come down to things the coaching staff and front office can control: vision, planning, vibes, communication, style of play.
Mathletix Bajillion, week 3
One of these teams is random, one is chosen by an algorithm put together by me, a non-football guy. Can you guess which one is which?
All lines are as of Thursday morning.
The Neil McAul-Stars
last week: 1-4, -301
Overall: 6-4, +203
line shopping: +43
- PIT +2.5 -105 (lowvig)
- GB -6.5 +100 (lowvig)
- NO -2 -108 (prophetx)
- TB +6.5 +101 (prophetx)
- PHI -3 -110 (hard rock)
The Vincent Hand-Eggs
last week: 2-2-1, -10
Overall: 3-6-1, -344
line shopping: +16
- CIN +6.5 -107 (rivers)
- CHI -2.5 -105 (lowvig)
- ATL +2 -102 (prophetx)
- BUF -5.5 -101 (prophetx)
- DET -10.5 -102 (prophetx)
Nov 18, 2025

Song: "Round 6", by Prince Jammy
A few interesting statistics from the first dozen games of the 2025-26 NBA season.
I'm generally talking about stats per 100 possessions, rather than raw stats (unless otherwise noted).
The absurd OKC Thunder
The OKC Thunder have been a godless basketball killing machine this year. Almost every win is a blowout, despite their second best player being injured. They look like they don't even have to try all that hard, and they're winning by an average of 16 points.
To me, their secret sauce is that they make it nearly impossible to score against them. There are no easy buckets. Here are some good ways to get easy points in the NBA:
- make lots of 3's
- get lots of free throws (and make them)
- take a lot of shots close to the basket
- get points off of turnovers
- get out on the fast break
- get second chance points
The Thunder are middle of the pack at the first two. They're only 15th in 3 pointers made against them per game, and 12th in free throws given up.
They're ridiculously elite at everything else that makes scoring hard. The Thunder are first in the league at:
- Defensive Rating
- Defensive Rebounding
- Steals
- Fewest opponent fast break points
- Fewest opponent points in the paint
- Fewest opponent points scored
- Lowest opponent effective FG%
They're second in the league at:
- Fewest turnovers
- Fewest opponent points off turnovers
- Fewest opponent 2nd chance points
- Fewest opponent assists
- Most opponent turnovers
The most remarkable part is how they've built their team. Their 3rd and 4th leading scorers, Ajay Mitchell and Aaron Wiggins, were both 2nd round draft picks. Their 5th leading scorer, Isaiah Joe, was a 2nd round pick by the 76ers who got waived, then refurbished by the Thunder like an estate sale armoire. Their best defender, Lu Dort, went undrafted.
The team just finds a way to bring the best out of players that any other team could have had. What did they see that everybody else missed, and what did they do to develop them?
As a fan of another NBA team, and someone who lived in Seattle in the 15 years after the Sonics were stolen away to OKC, I want to get off Mr Presti's Wild Ride. But statistically, it's great.
Bucking trends
Victor Wembanyama is by far the best shot blocker in the NBA, averaging 3.6 blocks a game. But the Spurs are only 6th overall in blocks. Nikola Jokic is by far the best passer in the NBA, but the Nuggets are only 5th overall in assists. Steph Curry is the best 3 point shooter of all time. But the Warriors are only 12th in 3 point percentage. This isn't all that surprising. Just because one player is good at a particular skill, that doesn't mean the rest of the team is.
What's more surprising to me is that Giannis Antetokounmpo draws the most free throws in the league, but the Bucks are 28th in free throw attempts. Teams that get a lot of free throw attempts tend to attack the basket a lot, or be the Los Angeles Lakers. The Bucks are weird because pretty much only Giannis does anything free throw-worthy. At the time I wrote this, Center Myles Turner had not shot a single free throw in his last 63 minutes of game time. That doesn't seem like a recipe for success for the Bucks.
Basketball is broken
And I know the guy who did it: Nikola Jokić. Advanced stats aren't everything, but right now he has a Win Shares per 48 (WS/48) of .441. Win Shares are probably a little biased towards big men who score efficiently, and affected by the pace of the game. That aside, it's a pretty good stat as far as having a single number to quantify how good somebody is at basketball. It correlates pretty strongly with actual basketball watching, I think. The top players in WS/48 are usually the top candidates for the MVP every year. And it matches who we think the best players are historically.
Last year, the top player by WS/48 was Shai Gilgeous-Alexander, at .309. The year before, it was Jokic, at .299. The year before, it was Jokic at .308. In 2014, it was Steph Curry, at .288. In 2004, when the pace of play was slower, the leaders were Nowitzki and Garnett at .248. In 1994, it was David Robinson, at .273.
Pretty much anything over .250 is an MVP caliber season. There's really no historical precedent for a WS/48 of .441. After 12 games played, Jokic could be the worst player in the league for the next 7 games, and he'd still be having an MVP-type season overall.
Before last game, it was .448. What did Jokic do last game that caused his WS/48 to go down a tiny bit? He got 36 points, 18 rebounds, and 13 assists, on good scoring efficiency and only 2 turnovers. That's a slightly below average game for him right now.
The perils of hand-rolled metrics, pt. 137
I was trying to put together something to show how historically off the charts OKC has been defensively. I started with using a fancy technique, PCA, before realizing that just adding up the ranks of each of the statistics was better and simpler. If one team is 1st in blocks, 2nd in steals, 2nd in opponent points in thde paint, etc., just add the ranks up, lowest score is best.
I ran it on every team over the last 15 years. All of the teams that did well on my metric were good defensively, and the teams that did poorly were putrid on defense. It's not totally useless. But it's a bad way to find the best teams of all time.
Here are the top defensive teams since 2010 by this metric:
- the 2025-26 OKC Thunder
- The 2018-19 Milwaukee Bucks (won 60 games with peak Giannis)
- The 2010-11 Philadelphia 76ers (last Iguodala season, young Jrue Holiday)
- The 2019-20 Orlando Magic (Aaron Gordon and some guys)
- The 2017-18 Utah Jazz (the "you got Jingled" meme team that beat OKC)
Ah well. That's not a terrible list. They were all very good at defense, and made it a big part of their team identity, but I don't think those are really the best defensive teams of the last 15 years. A team's rank by Defensive Rating is still a better predictor of the team's win percentage than my attempts.
There's definitely some Goodhart's Law potential here. OKC are near the top of a bunch of statistical categories, because they are good at defense overall. You can't necessarily get on their level just by trying to copy specific things OKC does well, like prevent fast break points.
We see you, Jalen Duren
More like Jalen Durian, because some of the things he's doing are just nasty. You will definitely get kicked off the bus in Singapore if you're watching Jalen Duren highlights.
Data used
All data from https://www.nba.com/stats/
I had to screen scrape some stuff from their website, since some of the endpoints in the python nba_api package are broken now. See the early-nba-trends.ipynb notebook for code.