Introduction
The value factor is a well-known anomaly in quantitative finance that suggests cheap stocks, those with low prices relative to fundamentals tend to outperform expensive stocks, or those with high prices, relative to fundamentals. In this post, I’ll focus on replicating the value factor in NBA spread markets.
Traditional sports betting approaches focus on predicting the outcome of a game, but I’m focused on determining whether systematically betting on teams that are better at cheaper stats outperforms betting on teams that are better expensive stats. If true, identifying which box-score ratios are cheap and which are expensive on a given day enables you to overweight or underweight inputs to your sports betting systems, or at the very least, call B.S. when your degenerate gambler friend unveils his keys to tonight’s matchup.
Methodology
To translate the value factor from the quant finance world to the sports betting world, the Ballin with Beta approach starts by identifying 10 common box-score stats that are known drivers of a team’s performance. Head over to the Factor Playbook for an overview of these 10 stats and an explanation of how they are converted into “funds”.
Each day, these 10 “funds” are sorted into quantiles, to determine which box-score stats are in the long leg and which box-score stats are in the short leg. We define a criteria to sort box-score stats into cheap vs. expensive that is intuitively analogous to the earnings-to-price ratio used in value investing: the odds-adjusted stat rank difference. So for the “defensive rebound fund” we calculate the odds-adjusted stat rank difference for each team the fund would bet on, \frac{DRB\%\ Rank_{Team}\ -\ DRB\%\ Rank_{Oppt}}{Moneyline\ Win\ \Pr obability_{Team}}
, and take the average. For the “offensive turnover fund”, we calculate the odds-adjusted stat rank difference for each team the fund would bet on, \frac{OTO\%\ Rank_{Oppt}\ -\ OTO\%\ Rank_{Team}}{Moneyline\ Win\ \Pr obability_{Team}}
, and take the average. We use teams’ stat ranks to enable a like-for-like comparison across the 10 box-score stats. Each day, the Ballin with Value portfolio bets on teams that the 5 “funds” with the highest average odds-adjusted stat ranks would bet on, and bets against teams that the 5 “funds” with the lowest average odds-adjusted stat ranks would bet on, while refraining from betting on both sides of the same game.
Figures 1-3 illustrate the methodology used to construct the long/short value replicating portfolio, using only two of the 10 funds for the three NBA games played on 11/11/2011. In this simplified example, the defensive rebound fund is cheaper than the offensive turnover fund.
Working Figure 1 from left to right, we start with all 6 teams’ average defensive rebounds and opponent offensive rebounds heading into their 11/11/2011 games. These are used to calculate each team’s defensive rebound rate and then converted to percent ranks out of all 30 teams through 11/10/2011. The rank differences of each pair of opponents are then divided by closing moneyline implied odds, as it should incorporate all information priced by the market. Finally, the average odds-adjusted defensive rebound rank is calculated only for teams that will be bet on by the defensive rebound fund, highlighted in green.
Likewise, to determine the average odds-adjusted offensive turnover rank on 11/11/2011, we work Figure 2 from left to right. Since the defensive rebound fund’s average odds-adjusted stat rank of 0.77 is higher than that of the offensive turnover fund’s 0.36, the Ballin with Value portfolio bets on all teams that the defensive rebound fund would bet on, while betting against all teams that the offensive turnover fund would bet on.
Figure 3 illustrates the vote-based game-weighting approach employed by the Ballin with Value portfolio, with the long leg voting to bet on Boston, Chicago, and Denver, and the short leg voting against Miami, Golden State, and Denver. In this example, the return of the Ballin with L/S Value portfolio would be the return of splitting a 1 unit bankroll by betting 0.5 units on Boston +7.5 and 0.5 units on Chicago -7, while refraining from betting on the Los Angeles vs. Denver game, resulting in a 1 unit return, highlighted in green (at +100 odds, ignoring transaction costs). If over the course of multiple seasons, the return of the long/short portfolio vs. closing spread lines is positive and statistically significant, we can conclude that the value factor is robust in sports betting markets.
Results
Using historical box-score and odds data for the 15 NBA regular seasons between 2008 and 2023, Figure 4 plots the cumulative growth of 1 betting unit invested daily in the long/short value portfolio, the long leg (betting on teams the cheap funds would bet on), and the short leg (betting against teams the expensive funds would bet on). This analysis assumes no transaction costs (+100 odds on each NBA spread bet).
Figure 5 illustrates the average daily win percent and the total number of games bet on each season by each of the three portfolios. Remember, since the portfolios rebalance daily, and the number of games the portfolios bet on daily varies, the average daily win percent is different from and more relevant than the overall win percent. The Ballin with Value long/short portfolio had an average daily win percent of 51.0%, which across 12,904 games over 2,253 betting days in this 15 year span, is statistically significantly greater than 50% at the 90% confidence level \left(t_{Win\ \%\ >\ 50\%}\ =\ 1.77\right)
.
Since no bookmaker will give +100 odds on NBA spread bets, this implementation of the value factor may not have a large enough risk premium to overcome typical -110 transaction costs by itself; but when combined with other signals, value-weighting box-score inputs to a betting strategy could lower the transaction cost hurdle for the other signals to create a profitable betting strategy.