- Saving Portfolio and Timing Models
- Importing Custom Data Series
- Modeling Advisor Fees
- Locating Ticker Symbols
- Expense Ratios, Dividends and Short Positions
- Methodology
- Data Sources for Factor Returns
- Data Sources for Asset Class Returns
- Data Sources for Market Data
- Data Accuracy
- Change History

When you are signed in with your registered account you will see a "Save Portfolio" link under the portfolio asset allocation section of the test results.
Similarly if the portfolio is already saved or you have selected an existing saved portfolio, the section will refer to the saved portfolio name.
The results section for timing models will also include a corresponding link to save timing models.
You can also save both portfolio backtest and timing model results as benchmarks. In the save dialog you can change the "Save As" option to "Benchmark",
and you can then use the saved benchmark series as a comparison in any other model tests by selecting it from the benchmark list.
The login menu in the top right hand corner provides the options to view and manage the list of saved models and benchmarks.
You can click on the screenshots below to see the links in detail.

You can import custom monthly return series for use as a portfolio asset or a benchmark.
The custom benchmark series will be available for factor analysis, and can also be used as an asset class for asset allocation analysis,
Monte Carlo simulation and efficient frontier generation. To import a benchmark series access the login menu in the top right hand corner
after signing in and select the "Import Benchmark" option to open the page for benchmark imports. The import benchmark page provides an option
to download a sample file showing the expected file layout, and the import can be done using either Excel or CSV file format.
Below you can click the screenshot to see the import page in more detail and also download a sample file in the Excel format.

You can model advisor fees and include them into portfolio backtesting. The supported fee structures include:

- Fixed percentage
- Fixed fee amount
- Tiered percentage based on assets
- Tiered fee amount based on assets

The search icon next to the ticker entry fields (magnifying glass) can be used to quickly locate ticker symbols based on asset name or type.
The search box also helps identifying special tickers such as CASHX used for cash and ^GOLD used for gold price index.
In most ticker entry fields you can also just type a partial name or a set of name components, e.g., "vanguard bond" to enable the ticker symbol lookup.

The expense ratios of mutual funds and ETFs are captured in the fund share price, and the displayed performance calculated from the adjusted close prices accounts for the fund expense ratio. This SEC publication provides more information on how the mutual fund share prices are calculated and how any fees are handled.

All returns for long positions are based on total return including dividends and capital gains distributions. Returns for short positions with negative allocation weights are based on the price return.

This section provides additional technical information and clarifications regarding the tools to address common questions.

The asset allocation backtesting tool uses asset class return data to backtest simulated portfolio returns. The asset allocation backtesting tool calculates portfolio returns (end balance, CAGR, IRR), risk characteristics (standard deviation, Sharpe ratio, Sortino ratio, maximum drawdown), and rolling returns based on monthly data. The risk free rate is based on historical 1-month treasury bill return data from Professor Kenneth French's data library. Inflation adjusted returns, withdrawals and contributions are based on the CPI-U data from the Bureau of Labor and Statistics. Internal rate of return (IRR) is shown for portfolios with periodic withdrawals or contributions. By default the simulated portfolio is rebalanced annually. Asset allocation drift data is displayed under the results section if rebalancing is disabled. Besides annual rebalancing the rebalancing period can also be set to monthly, quarterly, or semi-annual. Rebalancing bands are also supported, and the default rebalancing bands are based on 5% absolute deviation from the target allocation (large allocations), or 25% relative deviation from the target allocation (small allocations). If the target allocation for an asset is 60%, then the absolute deviation threshold would trigger rebalancing when the asset's weight in the portfolio hits 65% or 55%. If the target allocation for an asset is 10%, then the relative deviation threshold would trigger rebalancing when the asset's weight in the portfolio hits 12.5% or 7.5%.

The portfolio backtesting tool calculates portfolio returns (end balance, CAGR, IRR) based on monthly asset returns. Risk characteristics (standard deviation, Sharpe ratio, Sortino ratio) are calculated from monthly returns and annualized, and maximum drawdown is calculated from monthly portfolio balances. The portfolio backtesting tool tool uses total return data for the specified mutual funds, ETFs and stocks, and assumes by default that all dividends and capital gains distributions are reinvested. Dividends are not included for short positions, which can be specified using a negative percentage allocation to a given asset. The risk free rate is based on historical 1-month treasury bill return data from Professor Kenneth French's data library. Inflation adjusted returns, withdrawals and contributions are based on the CPI-U data from the Bureau of Labor and Statistics. Internal rate of return (IRR) is shown for portfolios with periodic withdrawals or contributions. By default the simulated portfolio is rebalanced annually. Asset allocation drift data is displayed under the results section if rebalancing is disabled. Besides annual rebalancing the rebalancing period can also be set to monthly, quarterly, or semi-annual. Rebalancing bands are also supported, and the default rebalancing bands are based on 5% absolute deviation from the target allocation (large allocations), or 25% relative deviation from the target allocation (small allocations). If the target allocation for an asset is 60%, then the absolute deviation threshold would trigger rebalancing when the asset's weight in the portfolio hits 65% or 55%. If the target allocation for an asset is 10%, then the relative deviation threshold would trigger rebalancing when the asset's weight in the portfolio hits 12.5% or 7.5%.

The portfolio optimization tool performs mean variance optimization on the provided portfolio to find the optimal risk adjusted portfolio that lies on the efficient frontier. The approach is based on the modern portfolio theory developed by Harry Markowitz. Markowitz stated that a rational investor should either maximize his expected return for a given level of risk, or minimize his risk for a given expected return. Modern portfolio theory supports portfolio risk optimization via diversification, i.e., an investor can reduce portfolio risk simply by holding a combination of assets that are not perfectly correlated, and may get the same portfolio expected return with reduced risk. Mean variance optimization calculates the optimal portfolio asset allocation weights in order to maximize the expected return of the portfolio for a given level of risk. However, while intuitively straight-forward, mean variance optimization has several underlying weaknesses including:

- Assumption that asset returns follow the normal distribution
- Optimization concentrates the portfolio assets into the best performers based on past performance thus losing future diversification benefits
- Instability of results as even small changes to input parameters change the optimization results significantly, and asset returns and returns statistics change over time rather than being exact fixed values

References:

- Harry Markowitz - Portfolio Selection (Journal of Finance, March 1952)
- Harry Markowitz - Portfolio Selection: Efficient Diversification of Investment (John Wiley & Sons, 1959)
- Clifford S. Asness, Andrea Frazzini, and Lasse H. Pedersen - Leverage Aversion and Risk Parity (2012)

The Black-Litterman asset allocation model combines ideas from the Capital Asset Pricing Model (CAPM) and the Markowitzâ€™s mean-variance optimization model to provide a a method to calculate the optimal portfolio weights based on the given inputs. The model first calculates the implied market equilibrium returns based on the given benchmark asset allocation weights, and then allows the investor to adjust these expected returns based on the investor's views. The opinion adjusted returns are then passed to the mean variance optimizer to derive the optimal asset allocation weights. The Black-Litterman model supports both absolute views (expected return for the given asset) and relative views (asset #1 will outperform asset #2 by X), and addresses many of the shortcomings of mean-variance optimization, which often results in concentrated portfolios based on past asset performance.

References:

- Black, Fischer and Robert Litterman - Global Portfolio Optimization (Financial Analysts Journal, vol. 48, no. 5, September/October 1992)
- Attilio Meucci - The Black-Litterman Approach: Original Model and Extensions (2010)
- Jay Walters - The Black-Litterman Model in Detail (2014)
- Thomas M. Idzorek - A Step-By-Step Guide To The Black-Litterman Model (2005)
- Simon Benninga - Financial Modeling, Fourth Edition (MIT Press 2014)

The Monte Carlo portfolio simulation tool provides a means to test long term expected portfolio growth and portfolio survival based on withdrawals. The following simulation models are supported for portfolio returns:

- Historical Returns - Simulates future annual returns by randomly selecting the returns for each year from the database of available annual returns (empirical sampling). Using a single year as the bootstrapping model retains the cross asset correlations for the configured portfolio allocation for each simulated year and avoids overweighting any specific year. Using block bootstrapping selects a random sequence of annual returns and better captures the serial correlation and mean reversion of assets. Block bootstrapping may overweight the central periods unless circular block bootstrapping is used, in which case the year range for the block sequence is allowed to wrap around, e.g., selecting a 10-year block with random start year of 2010 would first use returns from 2010-2014 and then wrap around to 1972-1976. The inflation for each simulated year is based on the selected historical year's inflation rate.
- Statistical Returns - Simulates future annual returns based on the mean and standard deviation of the selected asset allocation's actual historical return. The historical return statistics for the asset allocation assume annual rebalancing. The statistical model for returns can be configured to use normal distribution or fat-tailed distribution. Student's t-distribution with 30 degrees of freedom is used as the fat-tailed distribution. The inflation for each simulated year is by default based on normal distribution matching the historical annual CPI-U data mean and standard deviation. Alternatively the mean and standard deviation for inflation can be specified explicitly.
- Forecasted Returns - Simulates future annual returns based on any forecasted mean and standard deviation of asset classes. This model generates multivariate correlated normal samples based on user specified mean and standard deviation. The asset class correlations for the simulated returns are based on historical data. The inflation for each simulated year is by default based on normal distribution matching the historical annual CPI-U data mean and standard deviation. Alternatively the mean and standard deviation for inflation can be specified explicitly. Inflation is correlated with asset class returns based on historical data. The generated returns are normally distributed, and this simulation model does not currently support fat-tailed distributions or negative skewness.
- Parameterized Returns - Simulates future annual returns based on the specified statistical distribution with the given mean and standard deviation. The inflation for each simulated year is by default based on normal distribution matching the historical annual CPI-U data mean and standard deviation. Alternatively the mean and standard deviation for inflation can be specified explicitly.

Annual contributions and withdrawals are supported, and the fixed amounts can be adjusted for inflation as described above. For withdrawals the tool also supports withdrawing a fixed percentage from the portfolio annually, or withdrawing a variable percentage based on remaining life expectancy. Life expectancy tables are based on IRS Publication 590-B. For percentage based withdrawals the tool displays the annual withdrawals both in nominal dollars and present dollars per the simulated inflation model.

The efficient frontier is a concept in modern portfolio theory introduced by Harry Markowitz in 1952. The efficient frontier tool shows the return and risk curve for the mix of the selected assets that minimizes the portfolio risk for the given expected return. Efficient frontiers can be constructed based on historical returns, or forecasted returns for and volatilities. Forward-looking efficient frontier portfolios based on user-specified, expected returns and volatility use historical asset class correlations.

References:

- Harry Markowitz - Portfolio Selection (Journal of Finance, March 1952)

The asset correlation tool computes the Pearson correlation for the selected assets based on daily, monthly or annual asset returns. The tool also shows the annualized return for the selected assets based on the compound annual growth rate formula and the selected asset return series. Monthly standard deviation is calculated based on full calendar months within the time period for the selected tickers. Annualized standard deviation is calculated from the standard deviation of monthly log returns.

The factor regression analysis tool enables factor analysis of mutual funds and ETFs. The supported models include the capital asset pricing model (CAPM), the Fama-French three factor model, the Carhart four-factor model and the Fama-French five factor model. The multiple linear regression shows how well the returns of the given assets or a portfolio are explained by market, size, value and momentum factors, and the Fama-French five-factor model extends the three-factor model with profitability (RMW) and investment (CMA) factors. The tool also supports other factor models including Quality Minus Junk (QMJ) and Bet Against Beta (BAB) factors (Asness, Frazzini, Pedersen). The analysis is based on monthly asset returns (total return) and monthly factor returns. Term and credit risk factors are also supported to enable analysis of fixed income funds and balanced funds. The supported fixed income factor models include:

- Term and credit risk based 2-factor model where the term risk premium is calculated as the difference between long-term treasuries and treasury bills and the credit risk premium is calculated as the difference between long-term corporates and long-term treasuries. This model is not adjusted to account for the differences in the interest rate sensitivities of long-term treasuries and corporate bonds (refer to the Hallerbach and Houweling, and Asvanunt and Richardson papers listed below).
- Term and credit risk based 2-factor model where the term risk premium is calculated as the difference between long-term treasuries and treasury bills and the credit risk premium is calculated from the long-term corporates and long-term treasuries while accounting for the differences in the interest rate sensitivities of long-term treasuries and corporate bonds (refer to the Hallerbach and Houweling, and Asvanunt and Richardson papers listed below).
- Term and credit risk based 4-factor model where term factor is split to intermediate term (intermediate term treasuries minus risk free rate) and long term (long minus intermediate term treasuries) interest rate risk factors, and high yield credit risk (high yield corporates minus intermediate term treasuries adjusted for interest rate sensitivity) is added as an additional credit risk factor in addition to the credit risk premium calculated from the long-term corporates and long-term treasuries while accounting for the differences in the interest rate sensitivities of long-term treasuries and corporate bonds (refer to the Hallerbach and Houweling, and Asvanunt and Richardson papers listed below).

The fixed income factor premiums are calculated using the following funds:

- Long-term treasury bond returns are based on Vanguard Long-Term Treasury Bond Index (VUSUX)
- Intermediate-term treasury bond returns are based on Vanguard Intermediate-Term Treasury Fund (VFIUX)
- Long-term corporate bond returns are based on Vanguard Long-Term Corporate Bond Index (VLTCX)
- High-yield corporate bond returns are based on Vanguard High-Yield Corporate Fund (VWEAX)

Note that historical equity factor returns are sometimes revised based on changes to CRSP database. Examples include updating and correcting the number of shares outstanding in past periods and changes in the treatment of deferred taxes described in FASB 109, i.e., factor returns published after August 2016 no longer add Deferred Taxes and Investment Tax Credit to BE for fiscal years ending in 1993 or later.

References:

- Eugene F. Fama, Kenneth R. French - The Cross-Section of Expected Stock Returns (Journal of Finance, June 1992)
- Mark M. Carhart - On Persistence in Mutual Fund Performance (Journal of Finance, March 1997)
- Andrea Frazzini, Lasse Heje Pedersen - Betting Against Beta
- Clifford S. Asness, Andrea Frazzini, Lasse Heje Pedersen - Quality Minus Junk
- Winfried G. Hallerbach, Patrick Houweling - Ibbotson's Default Premium: Risky Data (The Journal of Investing, Summer, Vol. 22 No. 2)
- Attakrit Asvanunt, Scott A. Richardson - Credit Risk Premium: Its Existence and Implications for Asset Allocation
- Eugene F. Fama, Kenneth R. French - A Five-Factor Asset Pricing Model
- Eugene F. Fama, Kenneth R. French - Dissecting Anomalies with a Five-Factor Model
- Clifford S. Asness, Andrea Frazzini, Ronen Israel, Tobias J. Moskowitz - Fact, Fiction, and Value Investing

The factor exposure matching tool enables testing whether the factor exposures and performance of the given asset can be replicated using other available assets, e.g., by using cheaper and more widely available funds or ETFs with same factor exposures and performance rather than investing in a more expensive product. The tool computes the factor exposures of the target asset using the specified factor model and time period, and then explores the combinations of the given alternative assets to find the closest match. For factor exposure matching the tool tries to match any factor loadings that are statistically significant based on the provided p-value threshold. The factor matching can be weighted equally, in which case the tool tries to minimize the sum square of factor loading differences for statistically significant factors, or based on t-stat, in which case the absolute t-stat value of the factor loading is used to weight the squared differences to prioritize matching based on the most significant factors. The tool also displays the closest match based on straight performance matching for comparison purposes. The straight performance matching is based on a combination of alternative assets that minimizes the sum square of monthly return differences.

This model compares a baseline balanced portfolio (60% stocks, 40% treasury notes) with a portfolio that adjusts the stock and bond allocation based on the market valuation. The baseline portfolio is rebalanced annually, and the timing portfolio adjusts its allocation at the start of each year based on the Shiller PE10 ratio. The allocation changes to the timing portfolio are based on market valuation differing significantly from PE10 value of 18 (PE10 average since 1950).

References:

- Wade D. Pfau - Long-term investors and valuation-based asset allocation
- Cliff Asness, Antti Ilmanen, Thomas Maloney - Back in the Hunt

Moving average model uses the crossover of the moving average with the price or another moving average to decide whether to invest in the given asset. If the end-of-month price is greater than or equal to the moving average, the model will invest in the selected asset (risk on). If the end-of-month price is less than the moving average, the model will invest in an alternative safe asset, e.g., cash (risk off). Alternatively the crossover of price and moving average can be replaced with the crossover of two moving averages, typically using a shorter term moving average being higher than the longer term moving average as the buy signal. The moving average is calculated from adjusted close prices either based on end-of-month prices for monthly moving averages or daily prices when the moving average is specified in trading days. The start year of the timing model backtest is adjusted forward if necessary so that there is enough historical data to trigger the timing signal from the start of the timing period. All trades are performed using the end-of-month close price.

References:

The relative strength model uses the relative strength of an asset compared to other assets to decide which assets to invest in. The model favors assets with the best recent performance (momentum), and invests in one or more assets based on a performance ranked list of assets. Two options for relative strength timing windows are provided:

- Single Period - Single period model uses one timing window to calculate each asset's past performance. The calculated performance number is the asset's total return over the timing period. The calculated performance number can be volatility adjusted, in which case the model adjusts the asset return performance by calculating the average daily return over the timing period divided by the standard deviation of daily total returns over the volatility window period. The cash ticker (CASHX), if used, is excluded from the volatility adjustment.
- Multiple Period - This model uses multiple weighted timing periods. The model first calculates the relative performance of the assets for each timing period based on total return, and then weights either the rankings or the asset performance based on user supplied weights for the timing periods. If weighted rankings are used and two or more assets have the same weighted rank, then the performance or volatility window with the largest weighting determines the order. If the window weights are also equal, then the first specified time window is used to break the tie. Volatility can be used as an additional negative ranking factor, i.e., the asset with the lowest volatility is ranked first for the volatility window. Volatility calculations are based on the standard deviation of daily total returns.

Both models above also support moving average based risk controls, which allows the relative strength model selections to be overridden so that the model invests in cash instead of the asset if the price of the asset is below its moving average. The moving average is calculated as described above. The start year of the timing model backtest is adjusted forward if necessary so that there is enough historical data to trigger the timing signal from the start of the timing period. The months in the timing period are calendar months, and monthly changes are based on the end-of-month adjusted close price. All trades are performed using the end-of-month close price.

References:

The dual momentum model combines relative momentum and absolute momentum based timing. Relative strength is used to select the best performing model asset(s) and absolute momentum is then applied as a trend-following filter to only invest in the selected asset(s) if the excess return over the risk free rate has been positive. If the excess return is negative, then the model invests in short- to intermediate-term fixed income instruments (the out-of-market asset) until the trend turns positive. The relative momentum performance is calculated as the asset's total return over the timing period, and the return of 1-month treasury bills is used as the risk free rate for the absolute momentum filter. The months in the timing period are calendar months, and monthly changes are based on the end-of-month adjusted close price. All trades are performed using the end-of-month close price.

References:

- Gary Antonacci - Risk Premia Harvesting Through Dual Momentum
- Gary Antonacci - Absolute Momentum: A Simple Rule-Based Strategy and Universal Trend-Following Overlay

The adaptive asset allocation model combines relative strength momentum model with different asset weighting. The relative strength model uses an equal weight allocation for the model selected assets, whereas the adaptive asset allocation uses either inverse volatility based allocation or minimum variance allocation for the model assets, i.e., it either equalizes the risk contribution across the selected assets or weights the assets in order to minimize the expected volatility. Both the relative strength momentum timing period and the period for daily volatility and return calculations can be specified. The default model uses 6-month relative momentum with 60-day volatility window.

References:

The target volatility model uses dynamic asset allocation to achieve a stable level of volatility. The model manages volatility by forecasting future equity volatility based on historic realized volatility and then dynamically adjusts the market exposure to target a set level of volatility. The historic realized volatility calculation assumes that the given portfolio allocation is maintained (no adjustment for asset allocation drift). The model calculates the realized portfolio volatility (annualized daily volatility) based on daily total returns, and then either increases or decreases the equity exposure of the portfolio to maintain the target risk level. If the predicted volatility of the portfolio is above the set target level, the model shifts assets to a risk free asset, typically cash, so that the predicted volatility is in line with the target volatility. For example, if the target annual volatility is 4% and the realized volatility is 6%, then the portfolio asset weights are multiplied by 40/60 and the remaining assets are allocated to the selected risk free asset. The strategy aims to sell assets when their risk-adjusted expected return is falling (rising market volatility) and buying equities when their risk-adjusted expected return is rising (falling market volatility) to provide better risk-adjusted portfolio returns and to account for investor's risk tolerance. However, volatility targeting tends to reduce equity exposure after a sharp market drop, which means the portfolio may miss the early part of the market recovery.

References:

The data sources for factor analysis are listed below.

- Professor Kenneth French's Data Library - Mkt, HmL, SmB, UmD, RmW, CmA factors for US and developed market stocks
- AQR's Data Library - Mkt, HmL, SmB, UmD, QmJ, BaB factors for US and international developed markets
- Professor Robert Novy-Marx's Data Library - Profitability factor (PMU) data for US stocks

The bond factors for term risk and credit risk are calculated as follows:

- Term Risk = Difference between long-term treasuries and treasury bills
- Credit Risk = Difference between long-term corporates and long-term treasuries
- Long-term treasury bond returns are based on Vanguard Long-Term Treasury Bond Index (VUSTX)
- Long-term corporate bond returns are based on Vanguard Long-Term Corporate Bond Index (VLTCX)

The data sources for monthly asset class returns are listed below. The table of annual asset class returns shows the calculated annual returns based on the data sources below. You can also import a custom return series to be used as an asset class, as a portfolio asset or as a benchmark.

- US Stock Market
- AQR US MKT Factor Returns 1972-1992 (AQR Data Sets)
- Vanguard Total Stock Market Index Fund (VTSMX) 1993+
- US Large Cap Blend
- Professor Kenneth French's Research Data
^{1}1972-1976 - Vanguard 500 Index Fund (VFINX) 1977+
- US Large Cap Value
- Professor Kenneth French's Research Data
^{1}1972-1992 - Vanguard Value Index Fund (VIVAX) 1993+
- US Large Cap Growth
- Professor Kenneth French's Research Data
^{1}1972-1992 - Vanguard Growth Index Fund (VIGRX) 1993+
- US Mid Cap Blend
- Professor Kenneth French's Research Data
^{1}1972-1998 - Vanguard Mid Cap Index Fund (VIMSX) 1999+
- US Mid Cap Value
- Professor Kenneth French's Research Data
^{1}1972-2006 - Vanguard Mid Cap Value Index Fund (VMVIX) 2007+
- US Mid Cap Growth
- Professor Kenneth French's Research Data
^{1}1972-2006 - Vanguard Mid Cap Growth Index Fund (VMGIX) 2007+
- US Small Cap Blend
- Professor Kenneth French's Research Data
^{1}1972-1989 - Vanguard Small Cap Index Fund (NAESX) 1990+
- US Small Cap Value
- Professor Kenneth French's Research Data
^{1}1972-1998 - Vanguard Small Cap Value Index Fund (VISVX) 1999+
- US Small Cap Growth
- Professor Kenneth French's Research Data
^{1}1972-1998 - Vanguard Small Cap Growth Index Fund (VISGX) 1999+
- US Micro Cap
- Professor Kenneth French's Research Data
^{1}1972-1981 - DFA US Micro Cap I (DFSCX) 1982-1997
- Bridgeway Ultra Small Market (BRSIX) 1998+
- International Stock Market
- AQR Global ex US MKT Factor (AQR Data Sets) 1986-1996
- Vanguard Total International Stock Index Fund (VGTSX) 1997+
- International Developed Markets (EAFE)
- AQR Global ex US MKT Factor (AQR Data Sets) 1986-1999
- Vanguard Developed Markets Index Fund (VTMGX) 2000+
- International Small Cap
- DFA International Small Cap Value I (DISVX) 1995-2009
- Vanguard FTSE All-World ex-US Small Cap Index Fund (VFSVX) 2010+
- International Value
- DFA International Value I (DFIVX) 1995-2005
- iShares MSCI EAFE Value ETF (EFV) 2006+
- European Stocks
- AQR Europe MKT Factor (AQR Data Sets) 1986-1990
- Vanguard European Stock Index Fund (VEURX) 1991+
- Pacific Region Stocks
- AQR Pacific MKT Factor (AQR Data Sets) 1986-1990
- Vanguard Pacific Stock Index Fund (VPACX) 1991+
- Emerging Markets
- Vanguard Emerging Markets Stock Index Fund (VEIEX) 1995+
- Total Bond Market
- Vanguard Total Bond Market Index Fund (VBMFX) 1987+
- Short Term Treasuries
- FRED Interest Rate Data (2-year maturity) 1977-1991
- Vanguard Short Term Treasury Fund (VFISX) 1992+
- Intermediate Term Treasuries
- FRED Interest Rate Data (5-year maturity) 1972-1991
- Vanguard Intermediate-Term Treasury Fund (VFITX) 1992+
- Long Term Government Bonds
- FRED Interest Rate Data (30-year maturity) 1978-1986
- Vanguard Long Term Treasury Fund (VUSTX) 1987+
- TIPS
- Vanguard Inflation-Protected Security Fund (VIPSX) 2001+
- Cash - Risk Free Return Benchmark
- 1-month Treasury Bills 1972+
- Short Term Tax Exempt
- Vanguard Short-Term Tax-Exempt Fund (VWSTX) 1978+
- Intermediate Term Tax Exempt
- Vanguard Intermediate-Term Tax-Exempt Fund (VWITX) 1978+
- Long Term Tax Exempt
- Vanguard Long-Term Tax-Exempt Fund (VWLTX) 1978+
- Short Term Investment Grade
- Vanguard Short-Term Investment Grade Fund (VFSTX) 1983+
- Corporate Bonds
- iShares Investment Grade Corporate Bond ETF (LQD) 2003+
- Long Term Corporate Bonds
- Vanguard Long-Term Investment Grade Fund (VWESX) 1974+
- High Yield Corporate Bonds
- Vanguard High Yield Corporate Fund (VWEHX) 1979+
- Global Bonds (Unhedged)
- PIMCO Global Bond Fund (PIGLX) 1994+
- Global Bonds (USD Hedged)
- PIMCO Global Bond (US Dollar-Hedged) Fund (PGBIX) 1994+
- Real Estate (REIT)
- DFA Real Estate Securities I (DFREX) 1994-1996
- Vanguard REIT Index Fund (VGSIX) 1997+
- Gold
- Gold Fixing Price in London Bullion Market 10:30 AM (London time) 1972-2004
- SPDR Gold Shares (GLD) 2005+
- Precious Metals
- Vanguard Precious Metals Fund (VGPMX) 1985+
- Commodities
- iShares S&P GSCI Commodity-Indexed Trust (GSG) 2007+
- Inflation (CPI-U)
- Bureau of Labor and Statistics Consumer Price Index (CPI-U) 1972+

^{1}Synthetic Equity Index Details- The "100 Portfolios Formed on Size and Book-to-Market" data from Professor Kenneth French's research data library is used to derive synthetic index data for US market equities.
The methodology used is identical to the one discussed in this online article at Portfolio Charts. The market capitalization ranges used match the CRSP index ranges:
- Large Cap - Includes U.S. companies that comprise the top 85% of investable market capitalization
- Mid Cap - Includes U.S. companies that fall between the top 70%-85% of investable market capitalization
- Small Cap - Includes U.S. companies that fall between the bottom 2%-15% of the investable market capitalization
- Micro Cap - Includes U.S. companies that comprise the bottom 2% of investable market capitalization

Below you can find a list of references to additional market data sources:

- US Equities, Mutual Funds and ETFs
- CSI (www.csidata.com)
- Canadian Equities and ETFs
- CSI (www.csidata.com)
- Historical Returns on Stocks and Treasuries
- Professor Kenneth French's Data Library (Download Data)
- Professor Aswath Damodaran's Data Library (Download Data)
- Professor Robert Shiller's Data Library
- AQR Data Sets
- REIT Returns
- NAREIT Real Estate Index
- US Treasury Interest Rates
- US Treasury Yield Curve Rates
- Federal Reserve Interest Rates Data
- Synthetic TIPS Data
- Asset Allocation with Inflation-Protected Bonds by S.P. Kothari and Jay Shanken
- Creating a History of U.S. Inflation Expectations by Jan Groen and Menno Middeldorp
- Gold Prices
- London AM Gold Price in USD
- London PM Gold Price in USD
- Index Data
- S&P 500 Monthly Total Returns 1988+ (S&P Dow Jones Indices)
- MSCI Index Data (MSCI Indexes)
- Alerian MLP Index 1996+ (Alerian)
- Canadian Data
- Canada Inflation Rates (Statistics Canada)
- Canada Treasury Interest Rates (Bank of Canada)
- Shiller PE Ratio
- Shiller PE Ratio Site

Historical data for annual asset class returns is not 100% reliable and authoritative sources often differ on exact returns for a particular investment.
Typical differences for historical asset class returns based on the data source are below 50 basis points.
Data for U.S. and Canadian securities, mutual funds, and ETFs is provided by Commodity Systems Inc.
The capital gains and dividends for mutual funds are typically reflected within two weeks of the payment date, for ETFs they are typically reflected by the next business day.
If you note a specific data error, please use the contact form to report it and provide a data source for comparison.

- 2017-01-16
- Support advisor fee structures in the tactical asset allocation model backtesting
- 2017-01-13
- Better handling of custom imported asset class data in the efficient frontier tool
- 2017-01-10
- Add support for other out-of-market assets in the relative strength momentum model when moving average risk controls are used
- 2016-12-30
- Ability to model advisor fee structures and include them in portfolio backtesting
- 2016-12-19
- Improved efficient frontier tool with support for constraints and dual efficient frontier plots to see the impact of additional assets on the efficient frontier
- 2016-12-13
- Show portfolio risk decomposition by each asset in portfolio backtesting results
- 2016-12-04
- Support ticker entry and lookup by name when entering portfolio assets
- 2016-11-30
- Add support for adaptive asset allocation model, which combines relative strength momentum model with inverse volatility or minimum variance based asset weights.
- 2016-11-27
- Use monthly returns for historical asset class data. The asset class return data has been revised accordingly.
- 2016-10-20
- Add support for rolling mean variance and risk parity portfolio optimization models
- 2016-10-19
- Add support for asset autocorrelation and cointegration testing
- 2016-10-18
- Allow trading delay to be specified in timing models to support lag between timing model signal and trade execution
- 2016-10-15
- Allow portfolio backtest, optimization and timing model results to be saved as benchmarks
- 2016-10-14
- Allow portfolio allocations to be imported from CSV and Excel files
- 2016-10-12
- Show custom benchmarks with assigned tickers in the ticker symbol lookup tool
- 2016-09-09
- Highlight statistically significant values in fund and ETF factor regression tables
- 2016-09-08
- Increase number of allowed assets in portfolio optimization
- 2016-08-01
- Add support for short-term and long-term reversal factors in the factor regression tool when custom factor returns option is selected
- 2016-07-30
- Use monthly returns for asset class covariance matrix when imported custom asset class data is used for efficient frontier plots
- 2016-07-28
- Add oil price index data based on West Texas Intermediate price (^WTI)
- 2016-07-08
- Black-Litterman asset allocation model support
- 2016-07-05
- Allow up to 25 benchmark and custom asset return series to be imported in either Excel or CSV formats
- 2016-06-29
- Include three, four and five factor models in factor regression and factor premium tables
- 2016-04-24
- Allow imported data series to be used as portfolio assets and asset class data sources
- 2016-04-18
- Support generating forward-looking efficient frontier portfolios using user-specified, expected returns combined with historical asset class volatility and correlations
- 2016-04-17
- Support Monte Carlo simulation based on user-specified, forecasted asset class returns
- 2016-04-16
- Market model regression support for beta analysis based on selected assets or imported benchmarks
- 2016-04-15
- Add additional portfolio metrics including historical and delta normal value-at-risk to portfolio analysis
- 2014-04-14
- Add data for long-term US corporate bonds to asset allocation tool
- 2014-04-13
- Allow cash asset in portfolio optimization
- 2016-03-20
- Allow any ticker symbol to be used as a portfolio benchmark
- 2016-03-14
- Add support for custom factor models in factor exposure matching
- 2016-02-06
- Add support for moving average crossover based timing signals.
- 2016-02-05
- When multiple asset selections are routed to cash in the dual momentum model, constrain the maximum weight of non-cash assets based on target number of assets rather than equal weighting based on the number of distinct assets for the timing period. For example, if the model holds three assets and two are routed to cash, then the remaining asset is kept at one third allocation rather than getting an equal weight with cash to make the model more conservative.
- 2016-01-29
- Allow custom combinations of factors in the factor analysis tool to support the AQR 6-factor model
- 2016-01-05
- Asset class returns updated for 2015.
- 2015-12-11
- Add support for volatility targeting based tactical asset allocation.
- 2015-12-10
- Add support for factor exposure matching.
- 2015-11-23
- Add support for allocation constraints (min/max percentage) in portfolio optimization.
- 2015-10-30
- Improved efficient frontier rendering and added efficient frontier chart to mean variance optimization tool.
- 2015-10-23
- Allow leveraged and short positions in portfolio backtesting. Short positions use price rather than total return (no dividends).
- 2015-10-07
- Allow historical data period to be specified in Monte Carlo simulations
- 2015-10-04
- Allow month-to-month backtesting periods and monthly contributions/withdrawals in portfolio backtesting
- 2015-09-01
- Display detailed information on drawdowns in portfolio backtesting
- 2015-08-31
- Added virtual ticker (^GOLD) for historical gold price data (latest daily London fixing for 1 ounce of fine gold in USD)
- 2015-08-04
- Allow backtesting of larger portfolios along with related UI improvements
- 2015-07-07
- Add support for Dual Momentum timing model
- 2015-07-06
- Allow multiple timing windows to be weighted by asset performance as an alternative to rank order within the timing window
- 2015-06-20
- Add support for Fama-French five-factor model based factor regressions
- 2015-06-19
- Add support for factor analysis based on daily returns to cover new funds with shorter history
- 2015-06-07
- Portfolio optimization support based on Markowitz mean-variance optimization
- 2015-06-05
- Add support for monthly, quarterly and semi-annual rebalancing and rebalancing bands in portfolio backtesting
- 2015-06-03
- Show the trade for the current month in the timing periods tab when testing timing models
- 2015-05-04
- Registered users can now import monthly return series for use as portfolio and timing model benchmarks or as inputs to factor analysis
- 2015-04-27
- Add year-to-date support to portfolio backtesting and timing models
- 2015-04-24
- Improved support for fixed income factor models (credit risk model revised per Attakrit Asvanunt's and Scott A. Richardson's paper, multiple term factors plus high yield credit risk factor)
- 2015-04-15
- Show inflation adjusted end balance and compound annual growth rate (CAGR) in portfolio backtesting results
- 2015-04-13
- Add new filterable table to cover fund performance attribution based on factor loadings and factor premiums
- 2015-04-12
- Allow dynamic filtering on the ETF and mutual fund factor regression table and allow data to be downloaded in CSV and Excel formats
- 2015-04-10
- Switched to Commodity Systems Inc. as the market data source for both US and Canadian markets
- 2015-03-25
- Revised the list of asset class return data sources
- 2015-03-20
- Registered users can now download data and results in CSV format
- 2015-03-19
- Make inflation adjustment on withdrawals and contributions optional in portfolio backtesting
- 2015-03-11
- Add support for Canadian ETFs and stocks listed on the Toronto Stock Exchange (TSX). Excludes less than one year old funds
- 2015-03-02
- Add option to register on the site to store and retrieve configured portfolio and timing models
- 2015-02-28
- Add 10-year treasury note returns to asset allocation backtesting. Update 1-month t-bill annual returns to match the latest factor returns data file
- 2015-02-15
- Add support for block bootstrapping in Monte Carlo simulations
- 2015-02-14
- Allow moving average for relative strength timing model risk controls to be specified in trading days
- 2015-02-06
- Enable efficient frontier plots for any two assets and add support for CAGR vs. volatility charts
- 2015-02-05
- Resolved a data update issue that caused some ticker data to be reported as missing
- 2015-01-19
- Add support for multiple weighted timing periods in relative strength backtesting
- 2015-01-18
- Add methodology section to the FAQ to provide more detailed technical descriptions regarding the tools
- 2015-01-17
- Modify the methodology for timing models so that the start period of the timing model backtest is adjusted forward if necessary so that there is enough historical data to trigger the timing signal from the start of the timing period
- 2015-01-16
- Finalized 2014 inflation data (CPI-U)
- 2015-01-12
- Add support for moving average based risk controls to relative strength timing models
- 2015-01-10
- Allow more tickers to be tracked and held in relative strength timing models
- 2015-01-08
- Allow non-alphabetical tickers to be entered, e.g., BRK-A and BRK-B
- 2015-01-04
- Updated with asset class returns for 2014. Note that some tickers may still be pending a data update for December 2014 dividends and capital gains distributions. CPI-U for 2014 will be finalized when December 2014 data is released on January 16, 2015
- 2015-01-01
- Display additional maximum drawdown details and render portfolio growth chart based on monthly balances
- 2014-12-30
- Support fixed percentage based withdrawals in portfolio backtesting
- 2014-12-27
- Added data for US corporate bonds when testing asset allocations
- 2014-12-22
- Display additional portfolio component statistics when backtesting mutual fund, ETF and stock portfolios
- 2014-12-21
- Use monthly returns as the basis for annualized standard deviation, Sharpe Ratio and Sortino Ratio
- 2014-12-20
- Allow fraction of a percentage allocations in portfolio backtesting
- 2014-12-08
- Revise Sharpe Ratio calculation to use the ex post Sharpe Ratio per William Sharpe's 1994 paper
- 2014-12-01
- Improved print view and page layout for printing results
- 2014-11-28
- Make annual rebalancing optional in portfolio backtesting to allow exploration of rebalancing benefits
- 2014-11-25
- Support factor regression for a portfolio of assets in addition to individual assets
- 2014-11-12
- Show maximum drawdown statistics in the Monte Carlo simulation tool
- 2014-11-09
- Add support for parameterized inflation models in the Monte Carlo simulation tool
- 2014-11-01
- Add support for capital asset pricing model (CAPM) in the factor analysis tool
- 2014-10-31
- Add support for monthly and annual correlation calculations in the asset correlation tool
- 2014-09-18
- Minor user interface improvements
- 2014-09-02
- Add support for fixed annual percentage and life expectancy based withdrawals to Monte Carlo simulation
- 2014-08-26
- Allow time periods to be defined in trading days for relative strength timing models
- 2014-08-20
- Allow specification of the out-of-market asset for moving average timing models
- 2014-08-19
- Updated factor regression support with region and country specific factor returns and improved statistics rendering
- 2014-08-05
- Display p-values and annual alpha in factor regression results
- 2014-08-03
- Add support for Quality Minus Junk (QMJ) and Bet Against Beta (BAB) factors in factor analysis
- 2014-06-22
- Calculate maximum drawdown based on monthly returns for stock, mutual fund and ETF portfolios
- 2014-06-21
- Add table of factor regressions for common mutual funds and ETFs based on regression fit
- 2014-06-20
- Updated to more mobile user friendly responsive HTML interface
- 2014-05-25
- Updated momentum based backtesting to support different rebalancing periods and multi-asset portfolios
- 2014-04-26
- Minor update to address a denial of service attack
- 2014-04-16
- Display Internal Rate of Return (IRR) in portfolio analysis when withdrawals or contributions are defined
- 2014-04-10
- Add term and credit risk factors to factor analysis
- 2014-04-08
- Allow annual contributions in addition to withdrawals in Monte Carlo simulation
- 2014-03-20
- Calculate maximum drawdown for analyzed portfolios
- 2014-03-11
- Ability to enter up to 25 assets per portfolio for backtesting. Display Sharpe and Sortino ratios for each portfolio asset
- 2014-03-10
- Ability to test using moving averages (SMA/EMA) timing model for each asset in a portfolio
- 2014-03-02
- Optionally display portfolio yield and income in addition to total return in annual returns
- 2014-02-23
- Support for both simple and exponential moving averages when testing timing models
- 2014-02-22
- Added factor regression analysis support against global developed market factor returns
- 2014-02-08
- Allow annual withdrawal or contribution to be specified for portfolio backtesting
- 2014-02-03
- Added cash ticker CASHX to represent cash/money market returns (VUSXX / 1-month t-bill returns) for ETF/MF/stock portfolio backtesting
- 2014-01-28
- Finalized Fama-French research factors data for 2013. Note that the CRSP data set is going through updates, which impacts some past factor returns
- 2014-01-16
- Added gallery of examples. Finalized 2013 inflation data (CPI-U)
- 2014-01-08
- Support for backtesting momentum based rotation across assets, e.g., Asset Class ETF Momentum Strategy
- 2014-01-06
- Support for moving averages based backtesting for stocks, ETFs and mutual funds
- 2014-01-05
- Add support for user specified statistical model for annual returns when doing Monte Carlo simulations
- 2014-01-02
- Updated with asset class returns for 2013. CPI-U for 2013 will be finalized when December 2013 data is released on January 16, 2014
- 2013-12-27
- Support for testing market timing models based on moving averages and Shiller PE ratio
- 2013-12-25
- Improved user interface for asset class portfolio entry
- 2013-12-24
- Ability to directly link to specific analysis results
- 2013-12-23
- Support for Monte Carlo simulations and visualizing efficient frontiers for asset classes
- 2013-11-23
- Allow multiple simultaneous portfolio comparisons when backtesting mutual fund, ETF and stock portfolios
- 2013-10-31
- Added alpha, correlation coefficient and standard error values to rolling factor analysis charts
- 2013-10-27
- Better display for portfolio backtesting results for stock, ETF and mutual fund portfolios
- 2013-10-23
- Ability to display both t-stat and std. error for factor regression analysis
- 2013-10-19
- Support for rolling factor regression analysis based on configurable time window
- 2013-10-18
- Support for 4-factor analysis with momentum factor
- 2013-09-25
- Provide table view for historical asset class returns
- 2013-08-14
- Support for rolling correlation analysis for portfolio assets
- 2013-08-01
- Initial release with portfolio backtesting, Fama-French three-factor analysis and asset correlations

Last Modified: January 16th, 2017