A New Tool

Research on Safe Withdrawal Rates

Moderator: hocus2004

Post Reply
JWR1945
***** Legend
Posts: 1697
Joined: Tue Nov 26, 2002 3:59 am
Location: Crestview, Florida

A New Tool

Post by JWR1945 »

A More General Problem

This new tool is a spin-off from looking at a more general problem. It can be helpful in several applications that are closely related to Safe Withdrawal Rates.

Gummy's equation can be written in this form:

The current balance / the initial balance = (total return0) * (1 - w/wfail) where total return0 is the total return without any withdrawals, w is the withdrawal rate and wfail is the withdrawal rate at which the current balance is zero. All terms are at a specified number of years N and the values of total return0 and wfail depend upon the actual returns in the first N years.

The value of total return0 can be written as the product of the first N gain multipliers, where a gain multiplier is 1 + the return for a specified year. It equals the portfolio's balance at the end of a year divided by its balance at the beginning of the year. Since the balance at the end of one year is the same as the balance at the beginning of the next year, intermediate terms cancel each other out. And total return0 at year N equals the portfolio's balance at year N divided by its initial balance (at the very beginning of the first year).

Notice that total return0 is independent of the order in which returns occur. It only depends upon their product (or, more precisely, the product of their gain multipliers).

What I call wfail is the reciprocal of Gummy's Magic Sum or gMS. Its formula is more complicated.
1/wfail = gMS = [1/g1] + [1/(g1*g2)] + [1/(g1*g2*g3)] +...+ [1/{g1*g2*g3*...*gN)] where g1 is the gain multiplier for the first year, g2 is the gain multiplier for the second year, g3 is the gain multiplier for the third year and so on up to gN, which is the gain multiplier for the Nth year.

Notice that the order of the gain multipliers is important. Assume for the moment that total return0 is held constant but the order of returns is changed. When there is a large gain multiplier g1 in the first year (i.e., a large positive return), it affects all terms. It lowers gMS and increases wfail. Similarly, a large gain multiplier g2 in the second year affects not only the second term but all subsequent terms as well. And so forth. Any especially good year reduces the effects of later years. When an early gain multiplier is low (i.e., a negative return), it increases the value of gMS and decreases wfail for that particular sequence.

Written in this form, we see that total return0 depends upon the overall return, but not the sequence of returns. But wfail depends not only on the overall return but also on their sequence.

If we restrict ourselves to the most commonly examined problem, we are looking for a final balance of zero. In that case, we focus our attention entirely on wfail.

The more general problem that I had in mind was to break withdrawals into two or more distinct segments. This would help us in terms of making adjustments in the withdrawal rate (or midcourse corrections) along the way. It would allow us to broaden our outlook to include final balances other than zero. For example, we might want to design a withdrawal strategy that maintains a large percentage of our initial balance. That would help us when looking at long timeframes.

When viewed in this manner, we are interested in both total return0 and wfail. It is helpful for us to understand the relationship between these terms. For a specified portfolio (with its stock allocation and expenses), wfail is the Historical Database Rate and total return0 is total return (or, more precisely, the final balance / the initial balance) of the market.

In my analysis, I have used the percentage annualized total return. If there are N years, (1+ the percentage annualized total return) is the Nth root of total return0. I refer to the percentage annualized total return as return0.

As you might expect, there is a lot of number crunching involved when we break the withdrawal sequence into segments. That has motivated me to lessen the difficulty of data analysis when using the Retire Early Safe Withdrawal [Rate] Calculator. Along the way, however, I have found an important relationship between return0 and Historical Database Rates. (Historical Database Rates and wfail are the same when there is only one segment and it ends with a balance of zero.) The result is this new analysis tool.

The Relationship between return0 and HDBR

Excel has some powerful capabilities built into it. Among them is the ability to draw scatter plots, fit them with curves and estimate the goodness of fit. Much to my surprise, a straight line can produce an excellent fit between annualized returns (i.e., return0) and Historical Database Rates. The goodness of fit depends upon the number of years included in return0.

The equations for the straight lines that I produced have the form y = mx+b or return0 = slope*HDBR + intercept. Both return0 and HDBR are in percent. I examined two portfolios, HDBR50 with a 50% stock allocation and HDBR80 with an 80% stock allocation. The Historical Database Rates are for 30 years. Expenses were 0.20% of the portfolio's current balance. Portfolios consisted of stocks and commercial paper with annual re-balancing.

I looked at all of the annualized returns for the Nth year, where N varied between 1 and 30. I restricted my investigations to retirements starting from 1921 and 1980 (to avoid an anomaly associated with earlier years).

I have listed all of the coefficients for the curves along with the values of R squared, which indicates the goodness of fit. R squared tells us what fraction of the variance in the data is explained by the curve fit. What remains is caused by random, unexplained and/or unknown factors. [You get the correlation coefficient by taking the square root and including the appropriate sign.]

Table A. Return0 = y. HDBR50 = x. m = slope. b = intercept.

Code: Select all

Years   R Squared   Slope   Intercept   Equation
1   0.0908   2.647   -10.053   y = 2.647x - 10.053
2   0.1704   2.6542   -10.527   y = 2.6542x - 10.527
3   0.2519   2.506   -9.8705   y = 2.506x - 9.8705
4   0.3386   2.5412   -10.112   y = 2.5412x - 10.112
5   0.4022   2.4671   -9.7509   y = 2.4671x - 9.7509
6   0.471   2.6452   -9.7732   y = 2.6452x - 9.7732
7   0.537   2.4858   -9.8994   y = 2.4858x - 9.8994
8   0.6018   2.4853   -9.9486   y = 2.4853x - 9.9486
9   0.6775   2.4061   -9.5746   y = 2.4061x - 9.5746
10   0.7381   2.341   -9.2439   y = 2.341x - 9.2439
11   0.8002   2.3113   -9.107   y = 2.3113x - 9.107
12   0.8643    2.33   -9.2065   y = 2.33x - 9.2065
13   0.8949   2.2709   -8.8728   y = 2.2709x - 8.8728
14   0.9027   2.1245   -8.0652   y = 2.1245x - 8.0652
15   0.8964   1.9819   -7.2668   y = 1.9819x - 7.2668
16   0.8773   1.8006   -6.2552   y = 1.8006x -6.2552
17   0.8665   1.6398   -5.3589   y = 1.6398x - 5.3589
18   0.8509   1.5422   -4.7903   y = 1.5422x - 4.7903
19   0.8036   1.412   -4.0325   y = 1.412x - 4.0325
20   0.7286   1.2552   -3.1208   y = 1.2552x - 3.1208
21   0.6626   1.1094   -2.2726   y = 1.1094x - 2.2726
22   0.6045   0.9825   -1.5285   y = 0.9825x - 1.5285
23   0.5293   0.8381   -0.6976   y = 0.8381x - 0.6976
24   0.4287   0.6779   0.2077   y = 0.6779x + 0.2077
25   0.3156   0.5041   1.1781   y = 0.5041x + 1.1781
26   0.2079   0.3336   2.1127   y = 0.3336x + 2.1127
27   0.11   0.2031   2.829   y = 0.2031x + 2.829
28   0.038   0.1084   3.3421   y = 0.1084x + 3.3421
29   0.0109   0.0603   3.583   y = 0.0603x + 3.583
30   0.0004   0.0116   3.8169   y = 0.0116x + 3.8169
Table B. Return0 = y. HDBR80 = x. m = slope. b = intercept.

Code: Select all

Years   R Squared   Slope   Intercept   Equation
1   0.1258   2.9412   -12.533   y = 2.9412x - 12.533
2   0.2332   2.9192   -13.189   y = 2.9192x - 13.189
3   0.3294   2.6717   -11.883   y = 2.6717x - 11.883
4   0.4193   2.616   -11.611   y = 2.616x - 11.611
5   0.4715   2.4141   -10.377   y = 2.4141x - 10.377
6   0.5241   2.2778   -9.5372   y = 2.2778x - 9.5372
7   0.5778   2.2064   -9.0847   y = 2.2064x - 9.0847
8   0.6309   2.1431   -8.7466   y = 2.1431x - 8.7466
9   0.6951   2.0267   -8.0839   y = 2.0267x - 8.0839
10   0.7478   1.9526   -7.6448   y = 1.9526x - 7.6448
11   0.8085   1.9398   -7.5947   y = 1.9398x - 7.5947
12   0.8703   1.9776   -7.8088   y = 1.9776x - 7.8088
13   0.9001   1.9485   -7.584   y = 1.9485x - 7.584
14   0.9045   1.8432   -6.8875   y = 1.8432x - 6.8875
15   0.891   1.7278   -6.112   y = 1.7278x - 6.112
16   0.8566   1.5774   -5.1143   y = 1.5774x - 5.1143
17   0.8395   1.4588   -4.3331   y = 1.4588x - 4.3331
18   0.8151   1.3856   -3.8072   y = 1.3856x - 3.8072
19   0.7602   1.2813   -3.0685   y = 1.2813x - 3.0685
20   0.6819   1.1517   -2.1588   y = 1.1517x - 2.1588
21   0.617   1.0346   -1.3363   y = 1.0346x - 1.3363
22   0.5699   0.9358   -0.6359   y = 0.9358x - 0.6359
23   0.5099   0.8232   0.1334   y = 0.8232x + 0.1334
24   0.4265   0.6936   0.9921   y = 0.6936x + 0.9921
25   0.3218   0.5417   1.9799   y = 0.5417x + 1.9799
26   0.2284   0.4031   2.852   y = 0.4031x + 2.852
27   0.1451   0.2931   3.542   y = 0.2931x + 3.542
28   0.0826   0.2118   4.0356   y = 0.2118x + 4.0356
29   0.0551   0.1774   4.2041   y = 0.1774x + 4.2041
30   0.0318   0.1399   4.3784   y = 0.1399x + 4.3784
Notice that the curve fit is especially good from years 11 through 19 for HDBR50 (with 50% stocks) and 11 through 18 for HDBR80 (with 80% stocks). R squared remains above 0.80. R squared exceeds 0.90 at year 14 with HDBR50 and at years 14 and 15 with HDBR80.

That is, the annualized total return at year 14 explains just over 90% of the variance (or scatter) in Historical Database Rates.

[R squared remains the same whether the annualized return is used for estimating the Historical Database Rates or vice versa.]

That is an outstanding curve fit.

Explanation

There are two factors that are in competition.

The most important information is that which occurs earliest. We learned this by looking at Gummy's Magic Sum formula. Higher returns in earlier years mean greater safety.

The predictability of returns becomes better and better in the later years. When looking at the annualized return for N years, there are N data points (i.e., gain multipliers) involved. The relative importance of the first or second year's gain multiplier becomes less and less as N increases.

Predictability favors larger N. Isolating the most important information favors smaller N. The sweet spot is 14 years.

Both effects are important. The annualized return comes closer and closer to its long-term average as the number of years increases. But that is not enough to explain what will happen. With the combination of volatility and persistent withdrawals, the portfolio's current balance can hit zero along the way. If it does, it is over. The portfolio has failed. It cannot recover. The long-term is immaterial.

Applications

We can use these equations to translate a projected total return of a portfolio into an estimate closely related to its Safe Withdrawal Rate. Notice that I did not refer to the total return of the stock market. Unless one is holding 100% stocks, the portfolio's return is not the same as the stock market's return.

We can also calculate variances (and standard deviations) from the historical data and derive confidence limits.

With these estimates and their confidence limits, we can see how our particular portfolio is doing. If the balance approaches a lower confidence limit, we are warned of a potential danger. If the balance approaches an upper confidence limit, we may be able to relax our restrictions on the withdrawal rate.

One especially interesting application is to calculate a conditional form of the Safe Withdrawal Rates of the past. We can do this by looking at the actual annualized return at year 14. Strictly speaking, this is not a Safe Withdrawal Rate calculation. It involves information that occurs later (in this case, 14 years later) than the date at which a Safe Withdrawal Rate Calculation applies. What we learn is the answer to this conditional question. If we had had the ability to predict the future total return (at year 14) exactly, what would the Safe Withdrawal Rate have been? This gives us a method of assessing alternative methods for computing Safe Withdrawal Rates. It is distinct from a straight comparison with Historical Database Rates. It has the advantage that all of the Historical Database Rate data become involved in comparisons rather than just one or two extreme data points.

It is important to remember that this tool calculates a Safe Withdrawal Rate only if its input (the annualized total return of the portfolio at a specified number of years) is a mathematical calculation based on information up to a specific date but not later. It can translate other annualized total return inputs into projections closely related to Safe Withdrawal Rates. Such projections are not Safe Withdrawal Rates. This tool can also be used in sensitivity studies.

Error Terms

Here are the standard deviations for HDBR50 its annualized return (return0) for 6, 10 and 14 years. All values are percentages. (The slope also equals ratio of the standard deviations.) The 30-Year Intercept is 3.8169%, which is very close to the long-term annualized return of this portfolio.

Code: Select all

Std. Dev.   HDBR50   return0
6 years    1.242862     3.287619
10 years   0.709388   1.660678
14 years   0.391109   0.830911
Here are the standard deviations for HDBR80 its annualized return (return0) for 6, 10 and 14 years. All numbers are percentages. (The slope also equals ratio of the standard deviations.) The 30-Year intercept is 4.3784%, which is very close to the long-term annualized return of this portfolio.

Code: Select all

Std. Dev.   HDBR80   return0
6 years    1.813831   4.792738
10 years   1.084223   2.529336
14 years   0.669129   1.418626
In all cases each number was compared to its curve. For example, any given data point has a pair of values of HDBR50 and return0. The equation for the curve generated one of the numbers to estimate the other. That is, return0 was used for calculating HDBR50, which was compared to the actual value of HDBR50 and vice versa.

Standard deviations were derived by subtracting the actual values from their estimates, squaring, adding, dividing by 58 and then taking the square root.

Note: There were 60 terms and two dependent calculations, the slope and intercept, which leaves 58 degrees of freedom (approximately). There is a significant amount of overlap when looking at return0 (12 years) but the randomness of the first and last year swamps out this effect. A 50% change from the two independent years is a low, but reasonable approximation of the maximum effect that they can have. Taking the fourteenth root (of 1.50), we find that this translates into a 3% range of variation in the annualized returns. When we compare this with the standard deviations after the curve fit, which are shown in the tables above, we conclude that year-to-year (i.e., serial) randomness dominates. When we select the data at 14 years, we can see the effect of overlap since the curve fit is so good. The overlapped data has significantly fewer degrees of freedom (about 5 [since there are 60 start years and 12 years of overlap in each 14-year data point]), but its own variation is small. The effect causes data that are close together to stay on one side of the line (i.e., the fitted line) or the other (to a limited extent).

Confidence limits are determined by using these standard deviations and assuming a normal distribution. This is a reasonable approximation as long as we restrict ourselves to 90% or 95% confidence levels. Assuming a normal distribution is highly misleading only when one pushes it to an extreme.

To calculate 90% confidence limits, we add and subtract (slightly more than) 1.6 standard deviations.

Comparisons

Here are what we would have calculated as (our estimate of the) Safe Withdrawal Rates in 1929, 1937, 1965 and 1966 using this method and assuming that we could have predicted the exact annualized return (i.e., return0) that occurred 14 years later. All of these years placed retirement portfolios under stress. The year associated with the worst case varies with allocations and the fine grain details of the withdrawal schedule.

For HDBR50 and 14 years:

The 1929 value of Return0 at 14 years was 1.45%. [The value of HDBR50 turned out to be 4.5%.]
The 1937 value of Return0 at 14 years was (0.01%). [The value of HDBR50 turned out to be 3.9%.]
The 1965 value of Return0 at 14 years was 0.30%. [The value of HDBR50 turned out to be 4.2%.]
The 1966 value of Return0 at 14 years was (0.14%). [The value of HDBR50 turned out to be 4.1%.]

The equation for HDBR50 at 14 years is:
HDBR50 = [Return0+8.0652]/2.1245.
This equation has an excellent curve fit. R squared is 0.9027.

These are my (conditional) estimates:
For 1929, the (conditional) Safe Withdrawal Rate with 50% stocks was 4.48% (or 4.478795%).
For 1937, the (conditional) Safe Withdrawal Rate with 50% stocks was 3.79% (or 3.7915745%).
For 1965, the (conditional) Safe Withdrawal Rate with 50% stocks was 3.94% (or 3.9374912%).
For 1966, the (conditional) Safe Withdrawal Rate with 50% stocks was 3.73% (or 3.7303836%).

The standard deviation at 14 years and 50% stocks is 0.39%. The 90% confidence limits are plus and minus 0.62% (i.e., plus and minus 1.6 times the standard deviation).

For HDBR80 and 14 years:

The 1929 value of Return0 at 14 years was 0.78%. [The value of HDBR80 turned out to be 4.4%.]
The 1937 value of Return0 at 14 years was 1.67%. [The value of HDBR80 turned out to be 4.5%.]
The 1965 value of Return0 at 14 years was (0.46%). [The value of HDBR80 turned out to be 4.0%].
The 1966 value of Return0 at 14 years was (0.91%). [The value of HDBR80 turned out to be 3.9%.]

The equation for HDBR80 at 14 years is:
HDBR80 = [Return0+6.8875]/1.8432.
This equation has an excellent curve fit. R squared is 0.9045.

These are my (conditional) estimates:
For 1929, the (conditional) Safe Withdrawal Rate with 80% stocks was 4.16% (or 4.159885%).
For 1937, the (conditional) Safe Withdrawal Rate with 80% stocks was 4.64% (or 4.6427409%).
For 1965, the (conditional) Safe Withdrawal Rate with 80% stocks was 3.49% (or 3.4871419%).
For 1966, the (conditional) Safe Withdrawal Rate with 80% stocks was 3.24% (or 3.2430013%).

The standard deviation at 14 years and 80% stocks is 0.67%. The 90% confidence limits are plus and minus 1.07% (i.e., plus and minus 1.6 times the standard deviation).

We can see that the actual Historical Database Rates were almost always better than these (conditional) Safe Withdrawal Rates. The exception was in 1937 with an 80% stock allocation. We can also see that all of the Historical Database Rates are within the 90% confidence limits.

Because the curves associated with these (conditional) Safe Withdrawal Rates used all of the data with a large (effective) number of degrees of freedom and because the exact value of return0 was used, we can identify the sequence of returns as being the reason for any difference. That is, the actual historical sequences under stressful conditions were lucky sequences. Their order of returns happened to produce higher Historical Database Rates.

Have fun.

John R.
JWR1945
***** Legend
Posts: 1697
Joined: Tue Nov 26, 2002 3:59 am
Location: Crestview, Florida

Post by JWR1945 »

Individual columns:

Table A. Return0 = y. HDBR50 = x. m = slope. b = intercept.

Code: Select all

Years
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

Code: Select all

R Squared
0.0908
0.1704
0.2519
0.3386
0.4022
0.471
0.537
0.6018
0.6775
0.7381
0.8002
0.8643
0.8949
0.9027
0.8964
0.8773
0.8665
0.8509
0.8036
0.7286
0.6626
0.6045
0.5293
0.4287
0.3156
0.2079
0.11
0.038
0.0109
0.0004

Code: Select all

Slope
2.647
2.6542
2.506
2.5412
2.4671
2.6452
2.4858
2.4853
2.4061
2.341
2.3113
 2.33
2.2709
2.1245
1.9819
1.8006
1.6398
1.5422
1.412
1.2552
1.1094
0.9825
0.8381
0.6779
0.5041
0.3336
0.2031
0.1084
0.0603
0.0116

Code: Select all

Intercept
-10.053
-10.527
-9.8705
-10.112
-9.7509
-9.7732
-9.8994
-9.9486
-9.5746
-9.2439
-9.107
-9.2065
-8.8728
-8.0652
-7.2668
-6.2552
-5.3589
-4.7903
-4.0325
-3.1208
-2.2726
-1.5285
-0.6976
0.2077
1.1781
2.1127
2.829
3.3421
3.583
3.8169

Code: Select all

Equation
y = 2.647x - 10.053
y = 2.6542x - 10.527
y = 2.506x - 9.8705
y = 2.5412x - 10.112
y = 2.4671x - 9.7509
y = 2.6452x - 9.7732
y = 2.4858x - 9.8994
y = 2.4853x - 9.9486
y = 2.4061x - 9.5746
y = 2.341x - 9.2439
y = 2.3113x - 9.107
y = 2.33x - 9.2065
y = 2.2709x - 8.8728
y = 2.1245x - 8.0652
y = 1.9819x - 7.2668
y = 1.8006x -6.2552
y = 1.6398x - 5.3589
y = 1.5422x - 4.7903
y = 1.412x - 4.0325
y = 1.2552x - 3.1208
y = 1.1094x - 2.2726
y = 0.9825x - 1.5285
y = 0.8381x - 0.6976
y = 0.6779x + 0.2077
y = 0.5041x + 1.1781
y = 0.3336x + 2.1127
y = 0.2031x + 2.829
y = 0.1084x + 3.3421
y = 0.0603x + 3.583
y = 0.0116x + 3.8169
Have fun.

John R.
JWR1945
***** Legend
Posts: 1697
Joined: Tue Nov 26, 2002 3:59 am
Location: Crestview, Florida

Post by JWR1945 »

Individual Columns:

Table B. Return0 = y. HDBR80 = x. m = slope. b = intercept.

Code: Select all

Years
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

Code: Select all

R Squared
0.1258
0.2332
0.3294
0.4193
0.4715
0.5241
0.5778
0.6309
0.6951
0.7478
0.8085
0.8703
0.9001
0.9045
0.891
0.8566
0.8395
0.8151
0.7602
0.6819
0.617
0.5699
0.5099
0.4265
0.3218
0.2284
0.1451
0.0826
0.0551
0.0318

Code: Select all

Slope
2.9412
2.9192
2.6717
2.616
2.4141
2.2778
2.2064
2.1431
2.0267
1.9526
1.9398
1.9776
1.9485
1.8432
1.7278
1.5774
1.4588
1.3856
1.2813
1.1517
1.0346
0.9358
0.8232
0.6936
0.5417
0.4031
0.2931
0.2118
0.1774
0.1399

Code: Select all

Intercept
-12.533
-13.189
-11.883
-11.611
-10.377
-9.5372
-9.0847
-8.7466
-8.0839
-7.6448
-7.5947
-7.8088
-7.584
-6.8875
-6.112
-5.1143
-4.3331
-3.8072
-3.0685
-2.1588
-1.3363
-0.6359
0.1334
0.9921
1.9799
2.852
3.542
4.0356
4.2041
4.3784

Code: Select all

Equation
y = 2.9412x - 12.533
y = 2.9192x - 13.189
y = 2.6717x - 11.883
y = 2.616x - 11.611
y = 2.4141x - 10.377
y = 2.2778x - 9.5372
y = 2.2064x - 9.0847
y = 2.1431x - 8.7466
y = 2.0267x - 8.0839
y = 1.9526x - 7.6448
y = 1.9398x - 7.5947
y = 1.9776x - 7.8088
y = 1.9485x - 7.584
y = 1.8432x - 6.8875
y = 1.7278x - 6.112
y = 1.5774x - 5.1143
y = 1.4588x - 4.3331
y = 1.3856x - 3.8072
y = 1.2813x - 3.0685
y = 1.1517x - 2.1588
y = 1.0346x - 1.3363
y = 0.9358x - 0.6359
y = 0.8232x + 0.1334
y = 0.6936x + 0.9921
y = 0.5417x + 1.9799
y = 0.4031x + 2.852
y = 0.2931x + 3.542
y = 0.2118x + 4.0356
y = 0.1774x + 4.2041
y = 0.1399x + 4.3784
Have fun.

John R.
Post Reply