1 Introduction
2 Fantasy sports and the related forecast literature
2.1 A primer for the rules of the game
2.2 Fantasy sports as an object of research
3 Evaluation criteria
3.1 Measures and tests for accuracy
3.2 Tests for rational forecasts

A rational forecast should be unbiased. To test for this property, the Mincer and Zarnowitz (1969) regression is a natural starting point. In our case, we estimate the outcome of an athlete’s strength as a function of the predicted score:We further test for the hypothesis:$$\begin{aligned} \text {FP}_i = \beta _0 + \beta _1 \text {FP}^e_i + \epsilon _i \end{aligned}$$(7)If the data reject this hypothesis, the prediction is not rational, since there is a systematic difference between the forecast and the outcome.$$\begin{aligned} H_0 = \left\{ \begin{aligned} \beta _{0}&= 0 \\ \beta _1&= 1 \end{aligned} \right. \end{aligned}$$(8)

A rational forecast should be weakly efficient. Since the forecast errors of the last period are known, when forming the next expectation, prior forecast errors should not provide any information on the subsequent error. We use a variant of the test that was suggested by Holden and Peel (1990), who indicate estimating the equation:and testing for$$\begin{aligned} e_i = \gamma _0 + \gamma _1 e_{i,t1} + \epsilon _i \end{aligned}$$(9)This approach is used to test, as the Mincer and Zarnowitz (1969) regression, for unbiasedness (\(H_0: \gamma _0=0\)) and any information content of the lagged forecast errors for the recent ones (\(H_0: \gamma _1=0\)). If this hypothesis cannot be rejected, then the prediction is called weakly efficient.$$\begin{aligned} H_0 = \left\{ \begin{aligned} \gamma _{0}&= 0 \\ \gamma _1&= 0 \end{aligned} \right. \end{aligned}$$(10)

Finally, a rational forecast should be strongly efficient. In other words, no exogenous information available to the forecasters prior to the forecast should contain any information relevant for the forecast error. We again use the Holden and Peel (1990) equation:and test for$$\begin{aligned} e_i = \gamma _0 + \gamma _1 e_{i,t1} + \gamma _2 X_{t1} + \epsilon _i \end{aligned}$$(11)where X stands for any information that is available as of the forecasting date.$$\begin{aligned} H_0 = \left\{ \begin{aligned} \gamma _{0}&= 0 \\ \gamma _1&= 0 \\ \gamma _2&= 0 \end{aligned} \right. \end{aligned}$$(12)
3.3 Use of linear programming to optimize fantasy sports picks
3.4 Testing for longterm accuracy
4 Empirical results
4.1 Data and descriptive statistics
Number of observations  Mean  Standard deviation  Minimum  25 % Quartile  75 % Quartile  Maximum  

Forecasts of:  
Daily Fantasy Nerd (2020)  1658  25.3  11.1  6.7  16.9  31.5  63.9 
RotoGrinders (2022)  1658  25.5  11.5  2.4  17.1  31.9  65.6 
Daily Fantasy Fuel (2022)  1658  25.5  10.8  3.3  17.3  31.5  61.8 
FantasyPros (2022)  1658  25.0  10.8  2.5  17.2  30.6  66.2 
Actual data DraftKings (2022)  1658  25.5  14.3  −0.5  14.8  34.5  84.3 
4.2 Forecast accuracy
Daily Fantasy Nerd  RotoGrinders  Daily Fantasy Fuel  FantasyPros  

Absolute accuracy measures  
Mean error\(^{a)}\) (in FP)  0.17  0.02  0.06  0.055\(^{**}\) 
Test for zero mean  (0.47)  (0.92)  (0.80)  (0.03) 
Test for normality  (\(<0.01\))  (\(<0.01\))  (\(<0.01\))  (\(<0.01\)) 
Median error (in FP)  0.60  0.61  1.00  0.20 
Test for zero median  (0.82)  (0.45)  (0.23)  (0.24) 
Mean absolute error\(^{b)}\)  7.72  7.87  7.79  8.03 
Root mean squared error\(^{c)}\)  9.76  9.92  9.80  10.11 
Relative accuracy measures  
Theils inequality coefficient\(^{d)}\)  0.91  0.92  0.91  0.94 
Mean absolute scaled error\(^{e)}\)  0.91  0.93  0.92  0.95 
Daily Fantasy Nerd  RotoGrinders  Daily Fantasy Fuel  FantasyPros  

RotoGrinders  Relative MSE  1.03  
DMstatistic  3.38  
p value  (\(<0.01\))  
Daily Fantasy Fuel  Relative MSE  1.01  0.98  
DMstatistic  0.96  2.27  
p value  (0.34)  (0.02)  
FantasyPros  Relative MSE  1.07  1.04  1.06  
DMstatistic  4.81  2.21  2.27  
p value  (\(<0.01\))  (0.02)  (0.03)  
Naïve Forecast  Relative MSE  1.21  1.17  1.20  1.13 
DMstatistic  8.17  7.02  7.96  5.23  
p value  (\(<0.01\))  (\(<0.01\))  (\(<0.01\))  (\(<0.01\)) 
4.3 Test for bias and efficiency
Daily Fantasy Nerd  RotoGrinders  Daily Fantasy Fuel  FantasyPros  

Predicted Score from...  Dependent variable: Actual Score  
Daily Fantasy Nerd  \(0.945^{***}\)  
(0.022)  
RotoGrinders  \(0.904^{***}\)  
(0.021)  
Daily Fantasy Fuel  \(0.964^{***}\)  
(0.022)  
FantasyPros  \(0.936^{***}\)  
(0.023)  
Constant  \(1.568^{***}\)  \(2.479^{***}\)  0.847  \(2.135^{***}\) 
(0.598)  (0.591)  (0.618)  (0.622)  
Wald Test \(\chi ^2\) value  \(7.00^{**}\)  \(20.8^{***}\)  2.60  \(12.7^{***}\) 
Wald Test (p value)  (0.03)  (\(<0.01\))  (0.27)  (\(<0.01\)) 
N  1658  1658  1658  1658 
R\(^{2}\)  0.535  0.524  0.530  0.503 
Lagged forecast errors for...  Daily Fantasy Nerd  RotoGrinders  Daily Fantasy Fuel  FantasyPros 

Daily Fantasy Nerd  0.025  
(0.027)  
RotoGrinders  0.007  
(0.027)  
Daily Fantasy Fuel  0.010  
(0.027)  
FantasyPros  0.039  
(0.027)  
Constant  0.121  0.102  0.033  \(0.505^{*}\) 
(0.267)  (0.268)  (0.271)  (0.275)  
N  1367  1367  1367  1367 
R\(^{2}\)  0.001  0.00005  0.0001  0.001 
Lagged forecast errors for...  Daily Fantasy Nerd  RotoGrinders  Daily Fantasy Fuel  FantasyPros 

Based on past performance of athletes  
Daily Fantasy Nerd  0.031  
(0.027)  
RotoGrinders  0.011  
(0.028)  
Daily Fantasy Fuel  0.018  
(0.027)  
FantasyPros  0.043  
(0.028)  
Past performance  \(0.045^{**}\)  0.026  \(0.073^{***}\)  0.022 
(0.023)  (0.023)  (0.023)  (0.024)  
Constant  \(1.286^{**}\)  0.566  \(1.842^{***}\)  1.070 
(0.645)  (0.651)  (0.653)  (0.666)  
N  1367  1,367  1367  1,367 
R\(^{2}\)  0.003  0.001  0.007  0.002 
FStatistic  \(2.372^{*}\)  0.668  \(5.051^{***}\)  1.435 
Based on salary for each player  
Daily Fantasy Nerd  0.025  
(0.027)  
RotoGrinders  0.008  
(0.027)  
Daily Fantasy Fuel  0.009  
(0.027)  
FantasyPros  0.040  
(0.027)  
Salary  \(0.0003^{**}\)  0.0001  \(0.0004^{***}\)  0.0001 
(0.0001)  (0.0001)  (0.0001)  (0.0001)  
Constant  \(1.565^{**}\)  0.689  \(2.045^{***}\)  1.184 
(0.724)  (0.729)  (0.735)  (0.746)  
N  1367  1367  1367  1367 
R\(^{2}\)  0.004  0.001  0.007  0.002 
FStatistic  \(2.707^{*}\)  0.715  \(4.691^{***}\)  1.481 
4.4 Comparison of the teams chosen on the basis of each provider’s projections
4.5 Oneonone competition
Winning rate  Significance  Profit  

Best team  
RotoGrinders vs. Daily Fantasy Nerd  0.53  0.50  27.00 
Daily Fantasy Fuel vs. Daily Fantasy Nerd  0.53  0.50  27.00 
Daily Fantasy Nerd vs. FantasyPros  0.50  0.59  18.00 
Daily Fantasy Nerd vs. naïve forecast  0.67  0.24  36.00 
RotoGrinders vs. Daily Fantasy Fuel  0.64  0.32  27.00 
RotoGrinders vs. FantasyPros  0.67  0.24  36.00 
RotoGrinders vs. naïve forecast  0.83  0.02  90.00 
Daily Fantasy Fuel vs. FantasyPros  0.61  0.41  18.00 
Daily Fantasy Fuel vs. naïve forecast  0.72  0.12  54.00 
FantasyPros vs. naïve forecast  0.61  0.41  18.00 
Best three teams  
RotoGrinders vs. Daily Fantasy Nerd  0.52  0.83  207.00 
Daily Fantasy Nerd vs. Daily Fantasy Fuel  0.53  0.74  81.00 
Daily Fantasy Nerd vs. FantasyPros  0.60  0.15  126.00 
Daily Fantasy Nerd vs. naïve forecast  0.68  0.00  378.00 
RotoGrinders vs. Daily Fantasy Fuel  0.55  0.53  18.00 
RotoGrinders vs. FantasyPros  0.65  0.01  279.00 
RotoGrinders vs. naïve forecast  0.78  0.00  657.00 
Daily Fantasy Fuel vs. FantasyPros  0.63  0.04  216.00 
Daily Fantasy Fuel vs. naïve forecast  0.71  0.00  54.00 
FantasyPros vs. naïve forecast  0.64  0.02  18.00 