Recap
Last week we covered what drives stock returns. The difference between a quantitative and qualitative approach to investing. And we walked through some exploratory data analysis on our path to designing a model portfolio.
In case you missed it you can catch up here.
Today we will embark on the next phase in this journey, refining the data and modeling hypothetical portfolio, with the goal of finding one that we like.
A Good Starting Point
Let’s pick up right where we left off, by looking at the CAGR’s of the stocks that had better than median metrics in each category. I’ll be focusing on the 5 year analysis since it was easier to pull this data from the web.
If you recall only 8 out of the 135 companies were better than the median across all 9 metrics. But what I’d like to see is which metrics had a bigger impact on the CAGR relative to their counterparts. To test this I looked at each of the 9 metrics individually and denoted the average CAGR for the stocks that were better then median versus those that were not.
Here are the results: Metric - Better than Median CAGR - Worse than Median CAGR
EPS - 24.67% - 15.02%
ROIC - 23.11% - 16.92%
ROCE - 22.82% - 16.84%
ROA - 22.67% - 17.00%
DGR - 22.24% - 17.42%
Revenue - 22.06% - 17.59%
ROE - 21.04% - 18.60%
FCF Margin - 20.88% - 18.81%
Gross Margin - 18.10% - 21.50%
The order of this list will help me identify which metrics I should focus on when designing the model. I don’t want to include all 9 metrics in the model, especially if a given metric yields no improvement in CAGR.
To test which combination of metrics shows the most promise I started with the EPS and then each additional metric one at a time to see how the overall CAGR changed.
Here are the iterations that led me to the final metrics that will be backtested.
CAGR 24.67% = EPS
CAGR 28.34% = EPS + ROIC
CAGR 29.78% = EPS + ROIC + ROCE
CAGR 30.14% = EPS + ROIC + ROCE + ROA
CAGR 32.46% = EPS + ROIC + ROCE + ROA + DGR
CAGR 31.97% = EPS + ROIC + ROCE + ROA + DGR + Revenue
CAGR 31.24% = EPS + ROIC + ROCE + ROA + Revenue
CAGR 33.15% = EPS + ROIC + ROCE + DGR + Revenue
CAGR 29.29% = EPS + ROIC + DGR + Revenue
CAGR 31.55% = EPS + ROCE + DGR + Revenue
CAGR 32.11% = EPS + ROIC + ROCE + Revenue
CAGR 33.40% = EPS + ROIC + ROCE + DGR
CAGR 27.46% = ROIC + ROCE + DGR + Revenue
Adding the ROE, FCF Margin and Gross Margin led to no improvement in the CAGR, therefore these 3 metrics were discarded. Out of the 13 iterations shown above, the combination that showed the most promise was:
EPS + ROIC + ROCE + DGR +/- Revenue
I chose to focus my efforts on a combination of these 5 metrics in the backtest.
Backtesting The Data
I compiled data for each of the 5 metrics mentioned earlier for calendar years 2014 till present. My backtest focused on the period 2018 - 2024 (data) with returns tested for the period 2019 - 2024.
Let me now share with you the 6 model portfolios and the results they generated.
Baseline + Data Cleanup
First off I had to eliminate some of the companies due to either missing data or inconsistencies in the metrics that led me to believe these are not high quality companies. The starting list of 135 companies was trimmed to just 111 that were used in backtesting the model portfolios.
Here are the baseline returns against which I will be comparing each portfolio.
The first return, labeled “All Average”, is the return for all 111 companies. The second return is the total return of the S&P 500. As you can tell, on average, the 111 companies in my test outperformed the S&P 500 by a pretty wide margin between 2019 and February 2024. They were able to beat the index each year, but thus far are trailing in 2024.
Model Portfolio # 1
The first model portfolio looked for stocks that were “better than median” for each metric. The stocks were sorted by the count of how many metrics they had higher than the median with the second sorting criteria being the ROIC.
As you can tell this model portfolio led to marginal alpha over all 111 stocks.
The top 20 stocks produced a CAGR of 25.72% vs. 24.52% for all stocks
The top 25 stocks performed a little better with a CAGR of 26.91%
What was interesting is that the stocks that had any combination of 4 out of the 5 total metrics better than the median, produced a higher CAGR, 30.71% than stocks that were better than median for all 5 metrics, 22.47%
This model portfolio had pretty high volatility, it performed well when the market was hot and awful when the market was falling
Model Portfolio # 2
The second model portfolio looked for all stocks that were better than a fixed set of thresholds for each metric.
20% for ROIC and ROCE, 12% for DGR and 7% for EPS and Revenue.
The stocks were sorted by the count of how many metrics they had higher than the thresholds with the second sorting criteria being the ROIC.
This model portfolio led to an improvement in the level of alpha generated over all 111 stocks.
The top 20 stocks produced a CAGR of 28.52% vs. 24.52% for all stocks
The top 25 stocks performed a little worse with a CAGR of 27.12%
What was interesting is that again the stocks that had any combination of 4 out of the 5 total metrics better than the thresholds, produced a higher CAGR, 29.40% than stocks that were better than the threshold for all 5 metrics, 24.14%
This model portfolio also had pretty high volatility, it performed well when the market was hot and awful when the market was falling
Model Portfolio # 3
The third model portfolio looked for all stocks that were better than a fixed set of thresholds for each metric. This time the thresholds were lowered to allow more stocks to see what impact this lower bar would have.
15% for ROIC and ROCE, 10% for DGR and 7% for EPS and Revenue.
The stocks were sorted by the count of how many metrics they had higher than the thresholds with the second sorting criteria being the ROIC.
This model portfolio did not lead to an improvement over model portfolio 2 and therefore its not worth analyzing the output any further.
Model Portfolio # 4
The fourth model portfolio reverted back to using the median for each metric as a cutoff for selecting stocks. The stocks were sorted by the count of how many metrics they had higher than the thresholds with the second sorting criteria being the ROIC.
What differentiated this model from model #1 is that now only 2 groups of stocks were identified. Stocks that were better than median for at least 4 out of the 5 metrics and stocks that did not meet this condition.
This model portfolio led to an improvement in the level of alpha generated over all 111 stocks.
The top 20 stocks produced a CAGR of 26.93% vs. 24.52% for all stocks
The top 25 stocks performed a little better with a CAGR of 27.79%
What was interesting is that stocks that were better than median for at least 4 out of the 5 metrics, on average, performed better than stocks that were not able to meet this condition.
This model portfolio also had pretty high volatility, it performed well when the market was hot and awful when the market was falling
Model Portfolio # 5
The fifth model portfolio is exactly the same as model #4 with the exception of the secondary sorting metric, opposed to using the ROIC as the secondary sort metric, this time I swapped it with the ROCE.
This model portfolio led to an improvement in the level of alpha generated over all 111 stocks. It also performed better than model # 4.
The top 20 stocks produced a CAGR of 27.55% vs. 24.52% for all stocks
The top 25 stocks performed a little better with a CAGR of 28.25%
What was interesting again is that stocks that were better than median for at least 4 out of the 5 metrics, on average, performed better than stocks that were not able to meet this condition.
This model portfolio also had pretty high volatility, it performed well when the market was hot and awful when the market was falling
Model Portfolio # 6
The sixth model portfolio is exactly the same as model #5 with the exception of replacing the filter from “better than median” to a fixed threshold.
20% for ROIC and ROCE, 8% for DGR and 7% for EPS and Revenue.
This model portfolio led to a marginal improvement in the level of alpha generated over all 111 stocks. However, it did not outperform model #4 or model # 5. Therefore there is no sense in analyzing the output.
Winner
Even though the top 20 stocks in model # 2 generated the best overall CAGR, my favorite model of these six is model # 5.
What I didn’t mention earlier is that for the models with the fixed thresholds for each metric, I played around with a few options until I landed on values that led to better results. Even though there is clear correlation between the thresholds used in model # 2 and the overall CAGR, there may not be causation. Using the “better than median” filter sounds a little better in my opinion. It will be a rolling target based on how all of these companies progress in the future.
I believe that model # 5 can has the potential to produce strong long-term returns. It will likely perform well when the stock market is booming but it will also likely drop very hard when the market is cooling off. Volatility can equal opportunity, if you are patient, and have time to wait.
Launching The Portfolio
The final step in this series is to launch an actual portfolio we can all track going forward. Since I have already selected the model portfolio (#5) that we will use to select constituent stocks, this should be fairly simple to do. The one hurdle that stands in my way is coming up with the investable universe. The initial set of filters that were used in the screening process for part 1 of this series did not do a great job filtering out “high quality companies”. During a deeper review of each stock I found a handful of companies that were not ideal dividend growth stocks. They had a poor history of consistently paying and increasing their dividend payouts.
Therefore I will need to rethink how the investable universe of stocks will be selected. The goal will be to tweak the screener to weed out some of these undesirable dividend growth stocks.
Provided that I’ll be able to get this completed prior to April 1st, I will release a special edition of the newsletter, likely this coming weekend. This edition will include a 20 stock portfolio based on this model that will be tested between April 1st, 2024 and March 31st, 2025. The goal for this portfolio will be to outperform the S&P 500 and the investable universe.
If I won’t be able to get this completed by the weekend we will have to delay and launch this mock portfolio on May 1st.
Let me know what you think of the model portfolio I chose. And whether you would have done something differently than I did?
Awesome analysis. I appreciate how your articles always atke a unique and thoughtful approach. I am excited to see the portfolio reveal.