/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