Disclaimer: This article is for informational and educational purposes only. Do not interpret anything below as financial advice. Always do your own research & speak to a financial professional before making investment decisions.
Fellow Quant Enthusiasts,
Welcome to a new instalment of my 5 year Magic Formula journey. This week I bought the fourth and final batch of stocks for year 2 of the experiment. This edition brings the latest buys, sells and holds from the batch.
Before all that, here’s a quick snapshot of the portfolio:
Stocks: 21
Dividend yield: 3.57%
Performance since inception: -8.70% vs. -0.39% S&P 500
Performance this financial year: 5.04% vs. 15.16% S&P 500
Performance still looks quite bleak when compared with the S&P 500 - but with 3 years of the project (and who knows, maybe more if I decide to keep running it) I’m confident that the best is still yet to come. Refining my stock selection criteria has always been at the forefront of my strategy which has evolved dramatically since I began in 2022.
For this round of picks, I used Koyfin for the screening which I must say saved hours of time. I highly recommend it to any investor looking to get an enormous range of comprehensive financial insights in seconds.
Thanks to Koyfin, I was able to refine my selection criteria this round using metrics I’d previously been unable to access with other screeners or ones that simply took longer that I’d like to spend for this portfolio whose purpose is to be more passive in nature.
What drives stock prices?
It is very easy to get bogged down with so many brilliant metrics so I had to boil them down using the key drivers of stock returns as a framework. There are several key drivers but the 4 I like to focus on are: dividends, earnings growth, share buybacks and multiple expansion. I also included a ROIC filter because it is one of my favourite ways to quickly decipher how efficiently a company allocates its capital to generate profits and whether it can continue to do so in the future.
Dividend streak
This portfolio has converted into a bit of a dividend growth/value portfolio - so starting with dividends seemed sensible when looking at the drivers. I decided that the stocks must have consecutively increased their annual dividend for at least 3 years in a row. I’m not overly concerned about payback ratios here. Although payout ratio is a great way to gauge if a company can actually afford the dividends it pays, I really wanted to cap the number of filters to 5 maximum and figured that the following filters (notably FCF growth and high ROIC) should indicate that the dividend payments are reasonable and sustainable.
Earnings power
Moving on to earnings, I figured that all of the companies must show free cash flow growth over the last 10 years. I didn’t specify a growth percentage as I don’t want to exclude stocks in industries that generally grow slower. Growth is the most important. Using graphs on Koyfin, if the graph went up and to the right - it’s a pass and move on to the next filter.
High rates of return
Before moving on to buybacks, I introduced a 3rd filter to ensure that all stocks were earnings sufficient returns on capital over the last 10 years. This number had to be above 12% and I took it from QuickFS. I’ve since been informed that you can add 10Y means to ROIC on Koyfin too by adding a statistical band to your chart which I will probably incorporate next time despite slightly extra legwork.
Buybacks
I used graphs again when looking at share buybacks. If the graph was sloping down and to the right - it’s a pass. They aren’t always done in the right way (e.g. when shares are undervalued) and they can be financed with debt which also isn’t great because it can affect future cash flows. Often overlooked, buybacks can be a great way to return value to shareholders and can be very tax-efficient as an alternative to dividends for example.
Valuation
My final filter was the FCF/EV Yield - one which I’d not seen on other screening tools. I love this metric as it compares a companies cash flow with its enterprise value and therefore considers the debt on the balance sheet, something not represented by a FCF/Market Cap Yield. I wanted to buy companies with a yield of 10% or more. Any companies with a lower yield would not be considered.
Stock picks
So, with the above in mind how did the picks shape up this time? As you’d expect, hardly any of the companies on the screen of 50 managed to match all the filters.
Only 9 companies out of 50 passed the first filter: the dividend streak.
Source: QuantCompounder Material
Those companies were Medifast (MED), H&R Block (HRB), Williams-Sonoma (WSM), Altria Group (MO), Gilead Sciences (GILD), Buckle (BKE), Mueller Industries (MLI), Korn Ferry (KFY) and HP (HPQ).
HP fell short at filter 2, with a negative FCF growth over the last 10 years.
Filter 3 saw Korn Ferry and Mueller Industries out of the race, both with a median 10YR ROIC below 12%.
Filter 4 saw us say goodbye to Buckle whose share count has been increasing over the last 10 years.
The final filter saw Williams-Sonoma, Altria Group and Gilead Sciences get eliminated with all three trading at a FCF/EV yield of below 10%.
This left us with Medifast and H&R Block as the winners for this round both passing all the criteria with flying colours. I added to Medifast which I already owned and started a new position in H&R Block.
Due to the new filter I sold out of positions picked up this time last year due for sale consideration including Smith & Wesson Brands, AMN Healthcare Services, Google and Meta. Also due for sale consideration from last year were Gilead Sciences, Altria Group and Medifast. The former two I held because they still matched all 5 criteria above except valuation (FCF/EV Yield). In such scenarios I will continue to hold the positions. I added to Medifast as it satisfied all criteria again including valuation. I sized it according to the new portfolio size of 21 stocks giving it a 1/21 weighting following the sale of the 4 stocks indicated below.
Activity summary
Sold out of…
Smith & Wesson Brands - 1 year holding period. -15.13% return
AMN Healthcare - 1 year holding period. -20.17% return
Google - 1 year holding period. 5.21% return
Meta - 1 year holding period. 62.06% return
Held on to…
Gilead Sciences
Altria Group
Added to…
Medifast
New positions
H&R Block
Final thoughts
I’m feeling good about the strategy moving forward. I’m hopeful that the filters explained today concentrate my portfolio a little more due to them being quite tricky to satisfy. A portfolio of 10-15 would be fantastic. These filters should make selling a little easier as well. As soon as stocks no longer satisfy any of the criteria (that isn’t valuation) they will be removed and potentially replaced if new stocks fit the bill.
Would love to hear your feedback either in the comments or my Substack chat. You can also find me on Twitter.
QC
QuantCompounder Koyfin Discount
I’m not one to promote products I don’t personally use. But, as I mentioned in the write-up, I loved using Koyfin to pull all the metrics discussed today including dividend streaks, FCF/EV yield and years worth of financial data I’ve struggled to find elsewhere.
By using this link you can enjoy a 10% discount to Koyfin’s Plus and Pro plans if you’re interested. It also helps support this publication’s growth.