My System for Stock Selection

Greetings, thanks for stopping by.

Some time ago, I shared my saving system, on how I end up with money every week to invest. Now, I want to show the other side of that process, how I decide what to invest in, once the money makes its way to my brokerage account.

I'll focus here on stocks, and not get into ETFs.

This is by no means a complex, sophisticated method. This is just what I've developed from the last few years of investing, and especially the last year or so of Dividend Growth Investing.

This process will start with me just hearing of a certain company, from various sources: other investors, blogs, financial website articles, and other things. Once I become interested in a certain company, I will then start gathering info on it, en route to adding it to my Google Sheets spreadsheet. I will have 2 tabs involved in this process, one labeled "Prospects" for companies I am thinking about starting a position with, and then another labeled "Holdings" which are existing positions which I analyze to see if I want to add to those positions.

External Values

I start off with values that the spreadsheet cannot provide, either by lookup or calculation. These include:
  • Annual Dividend []
  • Yield History []
  • Shiller PE Ratio []
  • Median Shiller PE over last 10+ yrs []
  • Industry Shiller PE ration []
  • Morningstar Fair Value (when available) [ Premium]
  • PE 10 year average []
  • PE Industry []
  • Annual EPS Growth over last 5 yrs []
  • 3-year Dividend Growth Rate (DGR) []
  • Payout Ratio []
  • Years of Consecutive Annual Dividend Raises []
I do pay for Morningstar Premium, but all other resources are free.

I use the common P/E ratio, but also use the Shiller P/E ratio as it is less impacted by sudden short term shifts in earnings numbers, as it uses the average earnings over the last 10 yrs, adjusted for inflation.

For each of these items, I will look these up from a separate website (shown in the brackets)

Google Sheets Formulas/Calculations

Then I will use the Google Sheets formulas for the following key calculations:

  • Price [pulled by Google Sheets]
  • EPS [pulled by Google Sheets]
  • Yield [Annual Dividend / Price]
  • P/E Ratio [pulled by Google Sheets]
  • Fair Value (based on Shiller PE) =
[Price/((Shiller PE)/minimum(Historical Shiller PE, Industry Shiller PE))]

  • Average Fair Value =
[Average of all Fair Values provided in the spreadsheet]

  • Target Price =
[0.9*Avg Fair Value]

  • Modified Dividend Discount Model Fair Value = 
[Annual Dividend * (1+ min(EPS Growth Rate, DGR))/Yield]

  • Fair Value (based on P/E Ratio) =
[Price/(PE/minimum(Historical PE, Industry PE)]

  • Minimum(5 yr EPS Annual Growth Rate, 3 yr DGR)
  • Chowder# =
[Yield + DGR (Dividend Growth Rate)]

  • Beta [pulled by Google Sheets]
Now these are by no means complex valuation formulas, as you can tell. I wanted to keep it simple, using mostly the commonly available ratios to give me an idea that a certain stock may be fairly valued, or undervalued. I am basically comparing P/E ratios to their historical average, and the average for that particular industry. I am of the belief, that using this method, it gives you a general idea that the particular stock is likely to be undervalued if the price falls below the calculated target price. 


Also I use Google Sheets to provide rankings of various parameters. They have a nice :RANK" function which can provide rankings in both direction for any set of values. I rank the following items for each stock:

  • Shiller PE Valuation Ratio:
[Shiller PE/minimum(Shiller historical PE, Industry Shiller PE)]
  • Growth Rank (relative rank of minimum of EPS 5 yr growth rate and 3 yr DGR)
  • Chowder Rank (relative rank of the Chowder Number)
  • Beta
  • Yield
  • Payout Ratio
  • Dividend Raise Streak
  • Average of all rankings
I will then average all rankings to come up with a Total Rank number. From there I will rank the Total Rank Number, and then sort by that ranking. So the higher it shows up in my spreadsheet, the more that particular stock "ticks the boxes" of various parameters which make for an attractive position to start, or one to add to.

Conditional Formatting

I will also have conditional formatting to highlight the average fair value, when it is higher than the current price. Also as part of the conditional formatting, it will highlight the target price when it is higher than the current price. After everything is ranked, I look for stocks that have the target price highlighted, to show me that there is at least a little bit of margin of safety. See example below:


I can also use filtering in the spreadsheet to limit certain criteria (ie Payout Ratio less than 70%, Yield over 2.5%, etc)


Of course, I use these rankings as a guide, as nothing is absolute here. It simplifies the comparison among the many companies on the spreadsheet, but in the end, I need to look at each potential holding qualitatively, determining whether it is a company I want to invest in, taking into account their prospects for the future, and whether it is a viable business that will be around long term.

So each week, I review this spreadsheet, update the sorting by Total Rank, to see which stocks rate the highest, and those I give serious consideration for the next Friday Buy-Day (for those unaware, I purchase stocks every Friday in my Robinhood Account, and do not pay a commission).

Ultimately, the decision is a qualitative one that I make, after reviewing what the spreadsheet spits out. Truth be told, the spreadsheet has become somewhat of a monster at this point (90 rows, and columns out to "AQ"), but one that I enjoy reviewing before making any stock buys.

Thanks for spending some time here. Have you developed a system to help you identify your next stock purchase(s), or have thoughts on my system? Let me know in the comments!


Popular posts from this blog

February 2018 Dividends

July 2018 Dividends

April 2018 Dividends