/home/bill/PROJECTS/Investments/References/Howell - model SP500 PE10 vs Treasury 10y.txt
www.BillHowell.ca 11Apr2020 initial
see "http://www.billhowell.ca/economics,%20markets/S&P%20500%20Shiller-forward%20PE%20versus%2010y%20Treasury%20bond%20rates.html"
"http://www.billhowell.ca/economics,%20markets/Howell%20-%20SP500%20PE%20Shiller%20ratios%20versus%2010%20year%20Treasury%20bond%20yields,%20with%20earnings%20growth%20&%20discount%20factors.ods"
http://www.billhowell.ca/economics, markets/Howell - SP500 PE Shiller ratios versus 10 year Treasury bond yields, with earnings growth & discount factors.ods
based on :
1) https://www.gurufocus.com/news/429977/how-much-do-interest-rates-affect-the-markets-pe-ratio
How Much Do Interest Rates Affect the Marketâ€™s P/E Ratio?
Taking a look at the relationship between the two
July 22, 2016
Ben Reynolds, Articles (798) | Author's Website |
2) https://www.suredividend.com/interest-rates-valuation/
P/E Ratios & Interest Rates: A Formula for Fair P/E Ratios Incorporating Interest Rates
Updated August 22nd, 2018 by Ben Reynolds
ToDos :
11Apr2020 - add crashes with respect to solar [Tchijevsky, Kondriatieff]
use FULL series 1871-2020 (Dow to 1926?)
>> At 0% interest rate, you still have to pay back the bond!!
What are theoretical results?
What is a third major factor to clean up Ben Reynold's S&P500 PE10 vs 10 yr Treasury rate?
growth rate
technology transformation
govt policies
Steven Puetz
very high debt levels - normal given interest rates?
inflation rates - bonds don't adjust!
dividend rates
commodities - oil etc?
other risks - political etc
taxes
volatility - [SP500, Treasury 10y interest rates]
He uses linear regression, but it's definitely NOT linear!!
*************************************
********************
Simple model - ignore [crash, recession, inflation]s
"forecast to the next [crash, recession] only! use constant dollar (inflation-adjusted) basis
Howell : From "+-----+" section above :
200411 Multipl.com Shiller PE ratio 1880-2020, daily updates.png
09Apr2020 Shiller = 26.32
Interest rates are even lower today (0.25% 1 year Treasury?), but the market now looks even priced versus [PE10, 10y Treasury]
Howell's theoretical analysis for initial investment Inv ;
Simple approach, given :
10y Treasury bond growth rate in S&P500 over 10 years = SP500_growFuture
SP500 index, variable [dividends, internal investment & stock buybacks, earnings]
Do present value calculations for simplicity, payback is (not considering inflation) :
simple assump - dividends are fixed over time
sum(dividends) = div_yr*[(1 + t10)^9 + (1 + t10)^8 + ...+ + t10)^0]
from : https://www.wikihow.com/Calculate-an-Annual-Payment-on-a-Loan
(binomial theorem?)
annuity payment C = r*P / (1 - (1 + r)^(-n))
https://www.investopedia.com/retirement/calculating-present-and-future-value-of-annuities/
Value at end P = C*((1+r)^n - 1)/r
discount rate is different for [Treasuries, SP500] :
10y Treasury bond : Treas_FV10 = Treas_pay0*(1 + t10)^10
SP500 index : SP500_FV10 = SP500_price10 + sum(dividends)
= SP500_price0*(1 + SP500_growFuture)^10 + div_yr*((1+t10)^10 - 1)/t10
Present Values :
10y Treasury bond : Treas_PV = Treas_FV10 / (1 + Treas_disRate)^10
= Treas_pay0*(1 + t10)^10 / (1 + Treas_disRate)^10
SP500 index : SP500_PV = SP500_FV10 / (1 + SP500_disRate)^10
= { SP500_price0*(1 + SP500_growFuture)^10 + div_yr*((1+t10)^10 - 1)/t10 }
/ (1 + SP500_disRate)^10
SP500 growth & earnings
- ultimately, I need the SP500_PE10 value
- plus I need the SP500_growFuture projection
- to some degree these are related (complex, including [dividend rates, inflation, etc])
Simply let SP500_growFuture = SP500_earning_growth during recent "stable growth" period
(ie, don't include crashes)
Crashes - bumpy up&down [sideways, down] until stable growth resumes
Examples : see "Howell 2020 Great Crash & depression forecasts.ods"
200319 MarketWatch Michael Batnick DJIA 1919-2018 with post- crash recovery.png
200313 S&P500 90 year chart, macrotrends.net.png
The second uses inflation-adjusted (I don't know if [PPI, CPI, what]) which is the proper long-term basis, and semi-log plot. I think it uses the SP500.
For analysis of "stable growth periods" see "Howell 2020 Great Crash & depression forecasts.ods"
Simple approximation - as predicting earnings growth is difficult, use an historical average SP500 SP500_growFuture for "stable growth periods" from 1947-present but weighted by years (see spreadsheet)
SP500_growFuture_average = 0.37 (log(del(SP500))/year
Now look at "balance" of [Treas_PV, SP500_PV] :
Treas_PV = SP500_PV
Treas_pay0 *(1 + t10)^10 / (1 + Treas_disRate)^10
= { SP500_price0*(1 + SP500_growFuture)^10 + div_yr*((1+t10)^10 - 1)/t10 }
/ (1 + SP500_disRate)^10
But for equal initial investments, also :
Treas_pay0 = SP500_price0
so :
(1 + t10)^10 / (1 + Treas_disRate)^10
= { (1 + SP500_growFuture)^10 + div_yr_per_SP500*((1+t10)^10 - 1)/t10 }
/ (1 + SP500_disRate)^10
... I'm still screwed
+-----+
Try (ignore dividends for now) :
SP500_PV = SP500_price0 * sum[y = 0 to 9; SP500_earnFuture(y)*(1-SP500_disRate)^y]/y/SP500_earnings10
assume constant earnings growth, so :
SP500_earningsFuture(y) = SP500_earnings10*(1+SP500_earnGrwth)^y
so present value SP500_PV :
SP500_PV = SP500_price0 * sum[y = 0 to 9; SP500_earnings10* (1+SP500_earnGrwth)^y*(1-SP500_disRate) ^y] /y/SP500_earnings10
= SP500_price0 * sum[y = 0 to 9; {(1+SP500_earnGrwth)*(1-SP500_disRate)}^y] /y
Now look at "balance" of [Treas_PV, SP500_PV] :
Treas_PV = SP500_PV
Treas_pay0 * (1 + t10)^10 / (1 + Treas_disRate)^10
= SP500_price0 * sum[y = 0 to 9; {(1+SP500_earnGrwth)*(1-SP500_disRate)}^y] /y
But for equal initial investments, also :
Treas_pay0 = SP500_price0
so :
(1 + t10)^10 / (1 + Treas_disRate)^10
= sum[y = 0 to 9; {(1+SP500_earnGrwth) *(1-SP500_disRate)}^y] /y
Sanity checks :
- if SP500_earnGrwth = 0, then
{(1 + t10)^10 / (1 + Treas_disRate)^10 - 1} = sum[y = 0 to 9; (1-SP500_disRate)^y] /y
This is wrong!
- if SP500_earnGrwth = SP500_earnings10 - wrong! mixing two different concepts
{(1 + t10)^10 / (1 + Treas_disRate)^10 - 1} = {(1+SP500_earning10)*(1-SP500_disRate)}^y] /y
Hmm, not sure ... maybe this can work, but I doubt it?
SP500_PV = SP500_price0 * sum[y = 0 to 9; {(1+SP500_earning10)*(1-SP500_disRate)}^y] /y
Wrong? If SP500_earnGrwth = SP500_disRate maybe I should get SP500_price0???
- if 1 = sum[y = 0 to 9; {(1+SP500_earnGrwth) *(1-SP500_disRate)}^y] /y
(1 + t10)^10 / (1 + Treas_disRate)^10
= sum[y = 0 to 9; {(1+SP500_earnGrwth) *(1-SP500_disRate)}^y] /y
= 1
Wrong.
+-----+
Try again, define :
SP500_priceNow = SP500_earningsFutureDis * SP500_PEnow
try SP500_earningsFutureDis = linear trended average of earnings projected for 10 years?
SP500_earningsFutureDis
= SP500_earningsNow * sum[y = 0 to 9; {(1+SP500_earnGrwth)/(1+SP500_disRate)}^y] /y
as approximations :
SP500_earningsNow = historical SP500_earnings10 (avg over last 10y) linear trended to now
= SP500_earningsLinear10
Now look at "balance" of [Treas_PV, SP500_PV] :
Treas_PV = SP500_PV
Treas_pay0 * (1 + t10)^10 / (1 + Treas_disRate)^10
= SP500_priceNow * sum[y = 0 to 9; {(1+SP500_earnGrwth)/(1+SP500_disRate)}^y] /y
But for equal initial investments, also :
Treas_pay0 = SP500_priceNow
so :
(1 + t10)^10 / (1 + Treas_disRate)^10
= sum[y = 0 to 9; {(1+SP500_earnGrwth)/(1+SP500_disRate)}^y] /y
Sanity checks :
if SP500_earnGrwth = 0, then
{(1 + t10)^10 / (1 + Treas_disRate)^10 - 1} = sum[y = 0 to 9; (1+SP500_disRate)^(-y)] /y
This is wrong!
if SP500_earnGrwth = SP500_disRate
1 = sum[y = 0 to 9; {(1+SP500_earnGrwth)/(1+SP500_disRate)}^y] /y
therefore :
(1 + t10)^10 / (1 + Treas_disRate)^10
= 1
so :
(1 + t10)^10 = (1 + Treas_disRate)^10
This implies that t10 = Treas_disRate, the latter might usually be assumed to be 0
so t10 = 0
Not so plausible? But maybe...
SP500_PEnow :
SP500_priceNow = SP500_earningsFutureDis * SP500_PEnow
so :
SP500_PEnow
= SP500_priceNow / SP500_earningsFutureDis
= SP500_priceNow / {SP500_earningsNow * sum[y = 0 to 9; {(1+SP500_earnGrwth)/(1+SP500_disRate)}^y] /y}
= SP500_PEnow / {sum[y = 0 to 9; {(1+SP500_earnGrwth)/(1+SP500_disRate)}^y] /y}
or :
{sum[y = 0 to 9; {(1+SP500_earnGrwth)/(1+SP500_disRate)}^y] /y} = 1
NUTS!!! Wrong!
+-----+
Try again, define :
SP500_priceNow = SP500_earningsFutureDis * SP500_PEnow
try SP500_earningsFutureDis = linear trended average of earnings projected for 10 years?
SP500_earningsFutureDis
= SP500_earningsNow * sum[y = 0 to 9; {(1+SP500_earnGrwth)/(1+SP500_disRate)}^y]
(that y shouldn't be there ???)
as approximations :
SP500_earningsNow = historical SP500_earnings10 (avg over last 10y) linear trended to now
= SP500_earningsLinear10
Now look at "balance" of [Treas_PV, SP500_PV] for equal 1 k$ investment :
1 k$ Treas_pay0 = 1 k$ @ SP500_priceNow =
Treas_pay0 * (1 + t10)^10 / (1 + Treas_disRate)^10
= SP500_earningsNow * sum[y = 0 to 9; {(1+SP500_earnGrwth)/(1+SP500_disRate)}^y]
But for equal initial investments, also :
Treas_pay0 = SP500_priceNow = SP500_PEnow * SP500_earningsNow
so :
SP500_PEnow * SP500_earningsNow * (1 + t10)^10 / (1 + Treas_disRate)^10
= SP500_earningsNow * sum[y = 1 to 10; {(1+SP500_earnGrwth)/(1+SP500_disRate)}^y]
or :
SP500_PEnow
= sum[y = 1 to 10; {(1+SP500_earnGrwth)/(1+SP500_disRate)}^y]
/ {(1 + t10)^10 / (1 + Treas_disRate)^10}
Sanity checks :
if SP500_earnGrwth = 0, and both disRates = 0, then
SP500_PEnow * (1 + t10)^10 = y (y=10)
so if t10 = 0%, then SP500_PEnow = 1 (what?
if t10 = 10%, then SP500_PEnow = 1 / (1.1)^10 = 0.39
if t10 = 20%, then SP500_PEnow = 1 / (1.2)^10 = 0.16
This is WRONG!! Although as interates rise, PEs should go down, but not like that!!???
if SP500_earnGrwth = 10%, and both disRates = 0, then
SP500_PEnow (1 + t10)^10 = 1
so if t10 = 0%, then SP500_PEnow = 1 (what?
if t10 = 10%, then SP500_PEnow = 1 / (1.1)^10 = 0.39
if t10 = 20%, then SP500_PEnow = 1 / (1.2)^10 = 0.16
This is WRONG!! Although as interates rise, PEs should go down, but not like that!!???
Actually, if I multiply results by 10, they look not bad? (see sheet)
That "Y" shouldn't be there?
Try plotting the result and see?
***********************
Next stage of complexity : where dividends are assumed to grow with t10 (for simplicity,check later)
vary year by year, so I need a simplifying assumption
Inflation effect :
which inflation? what is dnt to get "real" SP5historical numbers for comparisons?
Producer Price Index (PPI)? - not very useful for todays service economy?
BUT - investors are very vulnerable to tax rates (themselves and comps they invest in) and other variables
Simple calculation:
balance
# enddoc