Stock Returns Documentation
Introduction
When a person or a computer is trying to predict what the stockmarket will do in the shortterm, they are essentially trying to predict what other market participants — whether human or machine — are going to do next. This is like a frantic carousel where everyone is trying to get in front of everyone else. It's a fool's game!
When investing for the longterm you are instead trying to predict the company's longterm future growth, and whether the stock may be revalued up or down relative to its sales or earnings. This was studied extensively in [Pedersen 2020] and it can be simulated using different models as described here.
Models
These are the different kinds of models for simulating stock returns. It is very easy to copypaste your input data from one model to another, so you can easily try your input data with all the models, to find the one you prefer to work with.
 Earnings Yield and shareprice change is simulated in the YLDSTK models. These are the simplest and fastest models to use. Their limitation is that they only consider the future earnings and shareprices for a single period, but this is often sufficient to quickly assess whether a stock seems cheap or expensive.
 Present Value (PV) is simulated in the PVSTK models using up to 10 years of future earnings and shareprices. These models require for you to choose a discount rate, which essentially serves as a baseline comparison for the required rate of return on the investment. The stock's present value can then be compared to the current shareprice, to assess whether the stock seems cheap or expensive.
 Internal Rate of Return (IRR) is simulated in the IRRSTK models using up to 10 years of future earnings and shareprices. The IRR is the discount rate that makes the present value equal to the current shareprice, so it avoids the need to select a discount rate, and it measures the annualized rate of return more directly. Unfortunately the IRR models cannot handle all inputvalues.
 Total Return (TR) is simulated in the TRSTK models using up to 10 years of future earnings and shareprices. The TR models assume the dividends are reinvested immediately in the same stock. These models also measure the annualized rate of return on the stock, but in a different way than the IRR models, so the TR models may be able to handle input data that the IRR models cannot.
Comparison
The following plot compares different models for simulating 10 years of stock returns. The input data is identical for all models, except for the discount rates used for the Net Present Values. The simulation years are normally shown individually in a socalled violinplot, but have been combined into a single plot here, so as to show the entire probability distribution for all 10 years.
The plot shows that the Total Return (TR) and Internal Rate of Return (IRR) are quite similar, even though they are calculated very differently. The TR values are slightly lower than the IRR values. The difference is probably because the TR model reinvests the dividends at whatever shareprices happen to prevail in the future, while the IRR model does not reinvest dividends. The Present Values (PV) have very different probability distributions, that also depend on the choice of discount rate, where the red curve uses 12% and the green curve uses 8%.
Earnings Yield
One of the simplest methods for assessing whether a stock is cheap or expensive, is to consider the Earnings Yield, which is the company's earnings for the next year, divided by the current marketvalue of all its shares (we could also use pershare values instead): \[ Earnings\ Yield = \frac{Earnings}{MarketCap} \] Assuming the earnings were to continue every year into the future, and they were to be paid out as dividends, then the earnings yield can be compared to government bond yields, to assess whether the stock would give a sufficient return, considering that the stock is probably more risky than government bonds.
Perpetual earnings growth can also be taken into account, simply by adding the annual growthrate to the earnings yield. For example, if the earnings are $300m and the marketcap is $10b then the earnings yield is only 3%. If the government bond yield is 5% then the company's future earnings would have to grow 2% every year, for the earnings yield to merely match the government bond yield. If we want a return premium because the stock is more risky, then the future earnings would have to grow even more, or the shareprice and marketcap would have to decrease before we buy the stock, so the earnings yield would increase.
The earnings yield is identical to the Internal Rate of Return (IRR) when we only forecast earnings for a single period and use terminal growthrates for all future years — except that the earnings yield can also handle negative earnings, which the IRR model cannot. So if you only want to forecast a single year's earnings, then it is recommended that you simulate the earnings yield instead of IRR.
The earnings can be simulated as \( Earnings = Sales \cdot Profit\ Margin \) and the marketcap can be simulated as shown in Eq.\eqref{eq_marketcap} below. If the future earnings will be delayed \( N \) years into the future, e.g. if we are considering a startup company, or a company that is having trouble and will have zero earnings for a few years, then we may calculate the annualized earnings yield as follows, by using the earnings in future year \( N \) divided by the current marketcap: \[ \label{eq_ann_earnings_yield} Annualized\ Earnings\ Yield_N = \left( \frac{Earnings_N}{MarketCap} \right) ^ {1/N}  1 \]
Valuation Ratio
A stock's valuation ratio measures the marketvalue of the stock relative to e.g. the company's earnings or sales. This is also useful for assessing whether the stock is cheap or expensive. It can also be used to simulate future shareprices using Eq.\eqref{eq_share_price} below.
If you are using historical data for the valuation ratio, then it is recommended that you use the P/S (PriceToSales) ratio, because it is always welldefined when the sales are greater than zero, which is the case for most publicly traded stocks. The sales are usually also far more stable than the earnings. The problem with the P/S ratio is that it can be difficult to interpret and compare across different stocks.
Although it is easier to interpret and compare the P/E (PriceToEarnings) ratio across different stocks, the problem is that the earnings typically fluctuate much more than the sales, and the earnings may also be zero or negative, which causes the P/E ratio to be illdefined, as shown in the plots below. That is why the simulation models using the P/E ratio only allow positive earnings.
We will use the P/S ratio in the formulas below, but you could use another valuation ratio such as the P/E or P/Book ratios in the formulas.
Price Change
If you can perfectly predict the future valuation ratio of a stock, such as its P/E or P/S ratio, and its future earnings or sales, then you can predict the future change in shareprice with complete accuracy, because the change in shareprice can be mathematically decomposed into the change in these two individual components. To see this consider the trivial rewrite of the shareprice using the P/S ratio: \[ \label{eq_share_price} Share\ Price = \frac{Share\ Price}{Sales\ Per\ Share} \cdot Sales\ Per\ Share = P/S \cdot Sales\ Per\ Shares \] It is often more convenient to use the marketcap instead of the shareprice, and hence also use the sales for the entire company instead of the sales per share, so the formula becomes: \[ \label{eq_marketcap} MarketCap = \frac{MarketCap}{Sales} \cdot Sales = P/S \cdot Sales \] This basic formula is used in many different models for simulating a company's future marketcap from probability distributions for the P/S and sales, because it is often easier to give reasonable estimates for these two individual components rather than the marketcap or shareprice directly.
The values for future years are denoted with the subscript \( N \), while the values for the current year do not have a subscript. So the change in marketcap from now until \( N \) years into the future, can be calculated from the change in the company's sales and P/S ratio over this period: \[ \label{eq_price_change} Price\ Change_N = \frac{ MarketCap_N }{ MarketCap} = \frac{ P/S_N }{ P/S } \cdot \frac{ Sales_N }{ Sales} \] The annualized return from the change in shareprice over those \( N \) years, is then calculated as follows: \[ \label{eq_ann_price_change} Annualized\ Price\ Change_N = Price\ Change_N ^ {1/N}  1 \]
Total Return
Changes in shareprices and dividend payouts are the only direct sources of shareholder returns. We dealt with the change in shareprices above, so we will now consider the dividends. First assume all earnings are paid out as dividends (note the caveats further below): \[ \label{eq_dividend} Dividend_N = Earnings_N \cdot (1  TaxRateDividend) \] The Total Return assumes the dividends are reinvested immediately in the same stock. Obviously somebody must be selling their shares for this to work in practice, but it is a reasonable "what if" scenario for use in valuation. So the remaining shareholders increase their number of shares according to the factor \( \Delta Shares_N \) (the Greek letter "Delta") defined as: \[ \label{eq_delta_shares} \Delta Shares_N = 1 + \frac{Dividend_N}{MarketCap_N} \]
The cumulative change in shares over \( N \) years, is the product of the changes for the individual years: \[ \Delta Shares\ Cumulative_N = \prod_{t=1}^N \Delta Shares_t \] The Total Return then scales the actual marketcap with this change in shares for the remaining shareholders: \[ Total\ Return_N = MarketCap_N \cdot \Delta Shares\ Cumulative_N \] The capital gains after \( N \) years is the total return at that point, minus the marketcap that was originally paid at the beginning, and minus all dividend payouts during those \( N \) years, because the dividends were reinvested in the same stock and should therefore be considered a part of the purchase price: \[ Capital\ Gains_N = Total\ Return_N  MarketCap  \sum_{t=1}^N Dividend_t \] If the capital gains are negative then there is no tax, which is calculated as follows: \[ TaxCapGains_N = (1  TaxRateCapGains) \cdot \max(Capital\ Gains_N, 0) \] The total return net of the capital gains tax is then: \[ Net\ Total\ Return_N = Total\ Return_N  TaxCapGains_N \] The annualized total return when reinvesting all dividends in the same stock over those \( N \) years, is then: \[ \label{eq_ann_tot_ret} Annualized\ Total\ Return_N = \left( \frac{Net\ Total\ Return_N}{MarketCap} \right) ^ {1/N}  1 \]
Excess Cash
Some companies may have accumulated a lot of cash from earnings in previous years, that they haven't paid out as dividends yet, and that they cannot possibly use for investments or acquisitions in the foreseeable future. This is deemed to be excess cash that we typically include in stock valuations, by assuming it is paid out immediately as dividends. This effectively lowers the purchase price of the company's shares. We call this the marketcap net of excess cash, and it is calculated as follows: \[ \label{eq_net_mcap} MarketCap\ NetCash = MarketCap  Excess\ Cash \cdot (1  TaxRateDividend) \] This should then be used as the purchase price when calculating stockreturns, such as the pricechange in Eq.\eqref{eq_price_change}, or the earnings yield in Eq.\eqref{eq_ann_earnings_yield}, or the total return in Eq.\eqref{eq_ann_tot_ret} which becomes: \[ \label{eq_ann_tot_ret_net} Annualized\ Total\ Return_N = \left( \frac{Net\ Total\ Return_N}{MarketCap\ NetCash} \right) ^ {1/N}  1 \]Caveats
 The net marketcap in Eq.\eqref{eq_ann_tot_ret_net} must be positive otherwise the simulation results are marked as invalid, because the shareholder return would be virtually infinite. But this can actually happen in the real world especially during stockmarket panics, where some companies trade at such low shareprices that their marketcap is lower than the company's excess cash. It sounds incredible but it does happen sometimes.
 If a company has held large amounts of excess cash for several years, it has likely distorted the historical valuation ratios such as P/S and P/E, because the marketcap has likely included the excess cash to some extent. If you then assume the excess cash is paid out as dividends now, then the future valuation ratio should be lowered correspondingly. So it can be a bit messy to take excess cash into account when using historical data for the valuation ratios. But it is rare that companies hold large amounts of excess cash for longer periods, so this problem can usually be ignored.
 Eq.\eqref{eq_dividend} assumes all the earnings are paid out as dividends, which is often not the case in reality. But this is also assumed in the other simulation models, so this makes it easier to use the same inputdata in different models and compare the results. If you want to use lower or maybe even zero dividends, then you should use the model that simulates P/S ratios, because you can use the lower dividends in place of the earnings and it will not impact the simulated shareprices. But this is not possible for the model that simulates P/E ratios, because the earnings are used to simulate both the future shareprices and dividends. So if you were to lower the earnings to reflect a lower dividend, it would also lower the simulated future shareprices.
 If all earnings were not paid out as dividends, it would require a more complicated model, because we would need to model what happens to the retained earnings. One possibility is that they accumulate as excess cash, but then we would also need to simulate the interest income, as well as the impact on the company's marketcap from the excess cash. This would be much more complicated to model and simulate, and may not even provide a better gauge for shareholder value, than simply assuming all earnings are paid out as dividends.
 Eq.\eqref{eq_delta_shares} also has problems when the earnings are negative, which means the company is having a deficit. Negative dividends mean the deficit is being funded through a new share issuance, which dilutes the current shareholders' ownership of the company. The company would likely get a future taxcredit for the deficit, and there would be no dividendtax on a new share issuance. But we ignore those tax implications, to keep the different simulation models simple and compatible, as similar assumptions are made for the present value and IRR models for stocks. But this means the total return should be considered a somewhat more rough estimate of the shareholder return, when there are negative earnings and dividends in the future years.
Return Curves
Depending on your inputdata and simulation model, the stock returns often show characteristic downwardssloping curves that we call Return Curves. They arise from the definition of annualized return such as Eq.\eqref{eq_ann_price_change}, when varying the current shareprice and marketcap, and hence varying the current valuation ratio \( P/S \) in the denominator of Eq.\eqref{eq_price_change}. This shows as a socalled reciprocal downwardssloping curve in the plot. The steepness of the curve is determined by the number of investment years \( N \), where the curve becomes more flat as the number of investment years increases. This is because the change in the stock's valuation ratio is spread over more years, so its effect on the annualized return is lower.
The following plot shows the simulated Total Return for all holding periods between 110 years, so there are 10 of these return curves in the plot. The steepest curve is for a 1year holding period, the second steepest curve is for a 2year holding period, etc. In this example the simulation model's input distributions are very narrow so the return curves for the different holding periods are clearly separated. In real usecases with wider input distributions, you often don't see the return curves separately, but instead see a wider smearing of the simulated stock returns.
We can also show this phenomenon using a simplified version of Eq.\eqref{eq_ann_price_change}, by setting all numbers in that formula to 1 except for the current marketcap. But here we use the current shareprice instead of the marketcap, so the plot labels are the same. The simple formula for the annualized return from a change in shareprice is then: \[ Annualized\ Return_N = \frac{1}{Current\ Share\ Price ^ {1/N}}  1 \] The plot below shows this formula for different choices of investment years \( N \). Compare this to the plot above, which uses a simulation model whose input distributions were also centered around 1. These two plots essentially show the same return curves.
Such downwards sloping curves often show up in plots of investment returns for different simulation models, when the purchase price is being varied. It is simply because the investment return is calculated using a fraction with the purchase price in the denominator, thus showing a reciprocal downwardssloping curve. When plotting annualized returns, the steepness of the curve is also affected by the investment duration, with shorter durations having steeper return curves.
References

[Pedersen 2020] Pedersen, M.E.H. "LongTerm Stock Forecasting", 2020. [PDF]