On the topics of risk, Python, and the human condition | A slow Saturday morning in November

I enjoy the slow pace of Saturday mornings during the pandemic. This morning included a casual stroll with Becca and Odie as well as some time invested into a Python project; I also listened to an interview with Niall Ferguson.

Some meandering thoughts about experiences in personal finance

I wrote in a blog post last week about my decision to attempt to learn a bit about Python. Subsequently, I had a conversation with a friend about a financial planning topic which I think of as “Sequence of Returns Risk.” This term describes the impact of risk that, irrespective of what “average” returns might be for a portfolio, when there are cash flows involved, the sequence of returns can cause undesired results. Said another way, if you hold a portfolio for three years, one portfolio which appreciates by 20% in the first year and then declines by 10% for two consecutive years will be equivalent to another portfolio in which the losses occur during the first two years and the gain occurs in the final year; As soon as you introduce cash flows into the mix (read: withdrawals or new investments) the sequence matters.

I searched for “Sequence of Returns Risk” in Google and found the following chart from BlackRock. When I worked as a financial advisor, I found this concept was, even among sophisticated clients, oftentimes overlooked or misunderstood.

Source: https://www.blackrock.com/cl/literature/investor-education/sequence-of-returns-one-pager-va-us.pdf

As a financial advisor, in order to demonstrate the concept to clients, I licensed software provided by BetaVest Technologies. BetaVest had a nice simulator that took historic returns and offered models to illustrate returns based upon actual historical results against assumptions of cash flow sequences. In other words, if you were interested in the risk of running out of money for a portfolio of $1mm of stocks and bonds, based on taking withdrawals of $65k per year over 15 years, BetaVest would illustrate how such a portfolio would have behaved during different periods; Unsurprisingly, taking a first distribution at the beginning of the Great Depression revealed a different outcome than taking a first distribution in 1980!

Understandably, many investors are concerned that the global pandemic, deficit spending, and current levels of financial markets will inevitably lead to poor future investment results. My thoughts on this topic lead me to Mark Twain’s quote, “History doesn’t repeat itself but it often rhymes.” But, what is the best way to demonstrate history rhyming?

Aside – A topic for another blog post on another day, perhaps, is my evolution in thinking about the value of worthwhile financial advice. Some years ago, Vanguard published a compelling study on the topic. In summary, the human condition is predisposed to making poor investment decisions; A good advisor helps clients avoid the errors which arise from emotions and cognitive biases.

I wondered last week, “Without licensing a new version of BetaVest’s software, how easily could I replicate some of the outputs (and insights) via Python?

My look at sequence of returns risk in Python

So, I spent a few evenings working on this and summarized my efforts below. First, I required historic financial market data. A Google search led me to a familiar source: Professor Aswath Damodaran posted the data I was looking for here.

After a bit of wrangling with the data I had a basis on which to begin. This was additionally interesting, as working through this helped me understand the importance of translating data captured via scrape (i.e. string format) into something workable.

Returns visualized in Python for the period 1928 through 2019

My initial model included variables for beginning portfolio value, withdrawal rate, portfolio construction, and withdrawal periods. I watched a YouTube video on how to work with mathplotlib to create graphs and, voila, I had a model built. I wanted to visually show dispersion of outcomes, quantify the “failure rate” of each scenario, and have a basis on which to compare outcomes.

One initial output demonstrated a failure rate of 2.74% over 20 years based upon a portfolio of 65% stocks, 15% US gvt bonds, 15% corporate bonds, and 5% cash. Each line represents a period of actual financial market performance: For example, there are lines for both 1935-1954 as well as 1980-1999 in the output.

Initial model output without adjustment for inflation

It occurred to me that this approach failed to address the pernicious effects of inflation on purchasing power of money. Fortunately, Professor Damodaran’s dataset already included a measure of inflation, which I chose to add as a modification to the withdrawal value. So, the initial withdrawal rate is changed annually to reflect the change in purchasing power. The variation in this is reflected in the lower grid. This change increased the failure rate from 2.74% to 13.70%. Not trivial.

Adjusted model output including adjustments to withdrawals by inflation rate

I took the model and decided to compare scenarios across different withdrawal periods, withdrawal rates, and portfolio construction. I summarized into a grid below.

27 simulations across first year withdrawals of 5.5%, 4.5%, and 3.5% of portfolio value

At first, I thought the key issue I should wrestle with in this analysis was risk management specific to “failure rate.” I thought more about the work of K&T and the human condition, and particularly their development of Prospect Theory, and the consequences of cognitive bias to weigh asymmetrically on risks of loss compared with potential for gains. I thought a way to reframe thinking about portfolio construction, rather than strictly in terms of risk of failure, might be to set in terms of legacy; What is the potential ending value of a given portfolio to pass along to the next generation? So, I dropped a blue-line into two scenarios below. I suppose the question posed is, “Are all zero percent risks the same?” The answer is a resounding, “no!”

Comparison of ending values of two portfolio assumptions over 30 year periods

I found this exercise helpful, personally. Besides learning more nuance about the inner workings of Python, I have concluded our own portfolio is (likely) overly conservative…

Some thoughts from Niall Ferguson

I came across an interview with Niall Ferguson earlier this week. By strategically placing a Sonos speaker near our home’s rear bathroom, I have found that I can listen to podcasts while showering. (Maybe this is taking efficiency a bit too seriously.) In any event, I have read a few of his books, most recently The Ascent of Money, and I enjoy his analysis of economics, history and trends in globalization.

While I found Ferguson’s insight into US-China relations interesting, I particularly enjoyed his response to the final question. He was asked, “What advice would you offer to your 25 year-old self?” Ferguson seemed caught off-guard. He replied with two anecdotes: First, he suggested that, when he would eventually have teenage children, that they should be listened to, as they will observe trends that he will miss. He shared that, at age fifteen, his son noticed trends in cryptocurrency, which he missed, which was consequently, “quite expensive.” Second, to my surprise, he suggested that he read more. I dropped the podcast back to re-listen to the segment. I wrote down one of his statements:

…most of the truths about the human condition have already been written about in the great literature of the past.”

Niall Ferguson

As I worked through my simulation modeling with Python this week, I imagined “next steps” including reconstructing DOL files for our business to analyze prospect data by geography or fleshing out a cost of care tool from data available from Medicare. Rather, I think I will take Hr. Ferguson’s lead and finish these few books scattered throughout our home. Then, I think I will track down a piece of “great literature” that I haven’t touched before. I imagine that will be a worthwhile investment for a future Saturday! There is more than one way to effectively study the human condition…

P.S. Three recommendations offered by Ferguson include We by Yevgeny Zamyatin, Waverly by Sir Walter Scott, and The Last Days of Mankind by Karl Kraus. I believe I will order We on Amazon, (but not until I finish these other books around our home!)