An Algorithm To Compare Dividend Growth And Dividend Yield

by: Dividend Dilettante

Introduction

I've been reading articles on Seeking Alpha's Dividends and Income section regularly for about one year. I've learned so much valuable information about dividend growth investing from great articles that has and will continue to help me plan for and think about my financial future. Another valuable resource for me has been Josh Peters's book, "The Ultimate Dividend Playbook," from which I've applied some concepts in this article. I thought I would contribute something which could possibly help other people, or, at the very least, provide for those who read the article something interesting to think about.

The core question I will grapple with here is this: For someone with approximately 35 years until retirement, who is in "accumulation phase," does it make more sense to build a portfolio with a low dividend (1-2%) yield and a high dividend growth rate (DGR), or a portfolio with a high dividend yield and a relatively low DGR? A different, more specific way of asking this question is: At what DGR for a low yielding stock will the final value begin being greater than a low DGR, high yielding stock after 35 years?

For a few months I've been learning the programming language Python, and I thought that I would use it try to wrestle with the core question to not only help myself reach an understanding, but also to share my results if I felt they were meaningful and could potentially be useful to readers on Seeking Alpha. In this article I'll explain the assumptions in the algorithm I wrote, how I used it, and finally I'll show the results.

The Algorithm

The goal I had in mind while developing my algorithm was to be able to compare the final values (where: final value = stock price * number of shares) after 35 years of a low yield, high DGR stock and a high yield, low DGR stock. Since I find it much easier to get a sense of what to expect over a long time period with a high yield, low DGR stock than a low yield, high DGR stock, I thought that if I could somehow express a low yield, high DGR in terms of a high yield, low DGR stock, I could get a better idea of what to expect over time from a low yield, high DGR stock. I was motivated by the thought that if the DGR were high enough for a low yielding stock, it should generate at least an equivalent or greater return than some high yielding, low DGR "base case." The algorithm I created essentially finds the minimum DGR necessary for a low yielding stock to have a higher final value than some higher yielding, low DGR stock over a specified time period. In this way, the return that a low yield, high DGR stock is capable of generating can be understood, on some level, in terms of a higher yielding, low DGR stock, which, I think, is easier to grasp.

Trying to not go into too much detail, to begin with, the algorithm always starts with 10 shares of one stock, each share worth $100, and a specified dividend yield is assigned to the stock. To account for the DGR over time, I use Peters's equation: (DGR + Dividend Yield % = Total Return). Therefore, (Implied DGR = Total Return - Dividend Yield).

Every simulation starts off with a specified total return for the base case, and at any time in the simulation the difference between the current dividend yield and total return is equal to the DGR. This is an important assumption in the algorithm: the DGR at any time in the simulation equals: (Total Return - Current Dividend Yield %). In other words if the dividend yield increases for a stock, the DGR decreases by the exact same amount, and vice versa. After a cursory look into the dividend yield and DGR history of MMM, this assumption does not appear to hold true (i.e. over the last ~50 years the total return as defined here for MMM has ranged from between 3.5% and 20%). Although in this way the algorithm is most likely not reflective of how DGRs actually grow over time, I think the results are still useful if the interpretation takes this into consideration.

For the algorithm to account for changes in stock price each year, I used historical quarterly percent changes for the last 35 years of the S&P 500. As four simulation quarters go by, the algorithm randomly pulls a one-year chunk from those historical quarterly percent changes and assigns one chunk to the stock. In other words, the simulation stock's price fluctuations at the end of some time period is a random sequence of one-year quarterly return chunks chosen from the last 35 years of the quarterly changes in the S&P 500.

In addition, every quarter over the course of 35 years, $1375 worth of shares are bought, and all dividends are reinvested. At the time of writing, $5,500 ($1375 * 4) is the standard yearly contribution limit for a Roth IRA account. The algorithm starts by going through one 35 year time period for a high yield (~5.5%) stock at a specified total return, and the final value is calculated. Next, the process begins again for a low yield (~1.5%) stock, and different total returns are systematically tried using the bisection method until the minimum total return required for a final value greater than the final value from the high yield simulation is found. This total return is stored. This two-step process is iterated 1,000 times, and an average of the stored total returns for the low yield portfolio is calculated along with a standard deviation.

I'd like to be clear about what I'm attempting to do with this algorithm. I'm simply using it as a platform which I can use to test a hypothesis. The algorithm enables: i. The specification of some set of parameters (for example, a high yield, low DGR scenario), and ii. The systematic change of the total return until the minimum total return at which the final value is greater than the final value of a base case is found.

Results

Here is one example of how this algorithm was used. First, the high yielding base case stock is initially set to a dividend yield of 3.5%, and the total return is 8%. A consequence of this is that if the dividend yields, say, 3.7% at a particular time in the simulation, the DGR is adjusted to 4.3% (8% - 3.7% = 4.3%), so the dividend grows by that percentage at the start of the next year. Next, the low yielding stock is set to an initial yield of 1.5%. As mentioned before, the total return is systematically changed until the minimum value required to generate a final value greater than that of the high yielding stock is reached. For this example, the minimum mean total return was 10.83% ± .48. I've included a histogram below to give you a sense of the distribution of minimum total returns that were generated from this example.

Click to enlarge

This method was extended to generate the table below which includes the minimum total returns for a low yielding (1.5%) stock that would be required to generate approximately equal final values as higher yielding, low DGR base cases (2% - 6.5%) after 35 years. Here's how to read the table: Choose a target yield/total return. For example, if I have target of a 2.5% dividend yield (Base Case Div. Yield) with an 8% total return, and I'm considering purchasing a stock with a 1.5% yield, I can know that the DGR must be at least 9.30% (Mean Minimum Total Return), ±0.55 (standard deviation) for the entire 35 years to reach that specified target.

1.5% Initial Yield Table:

Base Case Div. Yield

Base Case Total Return

Mean Minimum Total Return

Standard deviation

2.0%

8%

8.24%

.69

2.1%

8%

8.47%

.63

2.2%

8%

8.72%

.59

2.3%

8%

8.92%

.59

2.4%

8%

9.08%

.61

2.5%

8%

9.30%

.55

2.6%

8%

9.48%

.57

2.7%

8%

9.62%

0.53

2.8%

8%

9.86%

0.50

2.9%

8%

10.01%

0.49

3.0%

8%

10.16%

0.51

3.1%

8%

10.29%

0.53

3.2%

8%

10.41%

0.51

3.3%

8%

10.55%

0.50

3.4%

8%

10.69%

0.65

3.5%

8%

10.83%

0.48

3.6%

8%

10.94%

0.53

3.7%

8%

11.06%

0.50

3.8%

8%

11.18%

0.61

3.9%

8%

11.26%

0.48

4.0%

8%

11.40%

0.49

4.1%

8%

11.52%

0.63

4.2%

8%

11.60%

0.64

4.3%

8%

11.70%

0.72

4.4%

8%

11.83%

0.53

4.5%

8%

11.90%

0.58

4.6%

8%

12.05%

0.74

4.7%

8%

12.08%

0.64

4.8%

8%

12.17%

0.60

4.9%

8%

12.28%

0.71

5.0%

8%

12.35%

0.80

5.1%

8%

12.52%

1.02

5.2%

8%

12.6%

1.22

5.3%

8%

12.64%

.79

5.4%

8%

12.70%

.86

5.5%

8%

12.84%

1.21

5.6%

8%

12.86%

.82

5.7%

8%

12.96%

1.02

5.8%

8%

13.05%

1.08

5.9%

8%

13.09%

1.28

6.0%

8%

13.17%

1.35

6.1%

8%

13.26%

1.16

6.2%

8%

13.37%

1.35

6.3%

8%

13.47%

1.53

6.4%

8%

13.51%

1.51

6.5%

8%

13.6%

1.78

Click to enlarge

I think the table is useful in the following way: given an arbitrarily chosen target dividend yield and total return, I can find out what total return (and DGR) would be necessary for a stock yielding 1.5% to reach the chosen target. Continuing on with the previous example, if I own a stock with an initial dividend yield of 1.5% and a total return of at least 9.30% ±0.55 for 35 years, the stock is not likely to have a lower final value than my target of a stock initially yielding 2.5% with a total return of 8% (assuming that the quarterly price fluctuations are identical for the two stocks).

I think having an idea of approximate relative equivalences between high and low yielding stocks is an important consideration. This kind of analysis, I think, can at least give you some idea of how to go about expressing low yield, high DGR stocks in the easier to understand terms (at least for me) of high yield, low DGR stocks.

Conclusion

The table above represents total return percents that a stock with an initial yield of 1.5% would need in order match the 35 year performance of various high initial yield stocks with 8% total returns. The method used to generate this table for an initial yield of 1.5% could be easily extended to create a larger reference table for an initial yield of 2%, 3%, and so on. The time period could also be easily shortened or lengthened.

I think this table is useful mainly because, as I mentioned, an investor can arbitrarily choose some high yield, low DGR target, and determine the total return (and, by extension, the DGR) for a lower yielding stock that must be maintained in order to reach the target. As the dividend grows and the yield changes over the years, the DGR can be monitored to see if it's still on track to meet the chosen target.

I'm interested to see what people think about this project, so I welcome any comments, criticisms, questions or suggestions you may have.

Notes:

1) The algorithm was coded in Python and the histogram was generated using Spyder Version 2.1.10-1

2) S&P500 quarterly change data was obtained from econstats.com

3) (Implied DGR = Total Return - Dividend Yield %) equation from Josh Peters's book: The Ultimate Dividend Playbook: Income, Insight and Independence for Today's Investor. Hoboken, New Jersey: John Wiley & Sons, Inc, 2008. E-book.

Disclosure: I have no positions in any stocks mentioned, and no plans to initiate any positions within the next 72 hours. I wrote this article myself, and it expresses my own opinions. I am not receiving compensation for it (other than from Seeking Alpha). I have no business relationship with any company whose stock is mentioned in this article.