I am using a python script to replicate the monthly UMD factor, disregarding small caps (ie, focusing only on the "BIG HiPRIOR" and "BIG LoPRIOR" sub-portfolios in prof. French's website).
For that purpose, I am mapping the universe of stocks to the Russell 1000, which has a good fit in terms of market cap cut-off, and downloading data from Bloomberg for the relevant constituents over the 1997-2015 period. I then follow the methodology described in prof. French's website (sort 12-2 returns, take upper and bottom 30%, etc.).
My problem is as follows: I manage to get a very close replication of the BIG HiPRIOR returns over the whole period. However, using exactly the same methodology and data, I fail to replicate the BIG LoPRIOR one:
After several days of unsuccessfully trying multiple avenues to explain the discrepancy, it occurred to me that the difference in performance looked like some sort of compounding over time. So I decided to download the risk free rate from prof. French's website to see if it explained the difference. Shockingly, it did almost perfectly - if I add the risk free rate to prof. Frech's LoPrior returns only, then the match becomes just as good as for the HiPrior portfolio:
Here is the issue: the risk free rate was never part of the original dataset I downloaded from Bloomberg (all I downloaded was individual stock returns for the index constituents over the relevant period). Therefore it is not possible that an error in my code would have introduced that consistent bias over time on one portfolio but not the other. The risk free data simply didn't exist as far as my model is concerned.
So at this point I am completely at a loss to explain this issue. On the one hand, I find it impossible to believe that there'd be an issue with prof. French's rigorous calculations; on the other hand I can't explain how such a precise bias (monthly risk free rate at each point in time over a period of 18 years, affecting only the LoPrior portfolio) could have crept into my model if that data simply did not exist when I ran the model.
Could I ask, to put me out of my misery, if anyone has gone through a similar exercise and successfully replicated each of the sub-portfolios used in the construction of the UMD factor?
Many thanks in advance for any help/clarity anyone could shed on this topic!