Methodology
Data sources
All historical stock price data is sourced from Yahoo Finance via the yfinance Python library. Yahoo Finance provides split-adjusted closing prices, which means all historical prices have been retroactively adjusted to account for stock splits. For example, if a stock split 4-for-1, all pre-split prices are divided by 4 so that returns can be accurately calculated across the full time period.
The S&P 500 benchmark data uses the SPDR S&P 500 ETF (SPY), which has tracked the S&P 500 index since January 1993.
Calculation method
For each investment scenario, we calculate returns using the following approach:
Shares purchased = Investment amount / Start price
Current value = Shares purchased x Current price
Total return = (Current value - Investment) / Investment
CAGR = (Current price / Start price)^(1/years) - 1
Start prices use the closing price on the first trading day of January for each start year. Current prices reflect the most recent available closing price at the time of the last data refresh.
What is included
All calculations use split-adjusted closing prices, which means stock splits are fully accounted for. The year-by-year breakdown shows the value of the investment on the first trading day of each calendar year.
What is not included
Current calculations reflect price returns only. The following are not included:
Dividends. Dividend reinvestment is not currently factored into the return calculations. For dividend-paying stocks, actual total returns would be higher than shown.
Taxes. Capital gains taxes, dividend taxes, and other tax implications are not considered.
Trading fees. Brokerage commissions and transaction costs are not deducted.
Inflation. All values are shown in nominal (not inflation-adjusted) dollars.
Update frequency
Price data is refreshed monthly. The date of the most recent data refresh is shown on each individual page.
Accuracy
We make every effort to ensure accuracy, but this site is provided for informational and educational purposes only. Numbers are derived from publicly available market data and may contain minor discrepancies due to rounding, data availability, or differences in how adjusted prices are calculated across data providers. If you find an error, please contact us.