Frequently Asked Questions

  1. Saving Portfolio and Timing Models
  2. Importing Custom Data Series
  3. Modeling Advisor Fees
  4. Locating Ticker Symbols
  5. Expense Ratios, Dividends and Short Positions
  6. Methodology
  7. Data Sources for Factor Returns
  8. Data Sources for Asset Class Returns
  9. Data Sources for Market Data
  10. Data Accuracy
  11. 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.
Save portfolio link Profile menu dropdown
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.
Import return series page
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 payment schedule for fees can be monthly, quarterly or annual. You can access and create fee structures on your preferences page. In portfolio backtesting fees are applied first before any scheduled withdrawals or contributions. Note that the fee structure selection is only visible in portfolio backtesting if fee structures have been configured.
Modeled fee structures Edit fee structure page
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. Short positions can be entered by specifying a negative allocation weight for the shorted assets.

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

Asset Class Allocation Backtesting

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%.

Portfolio Backtesting

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. 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%.

Mean Variance Optimization

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
The mean variance optimization also shows a simple inverse volatility weighted risk parity portfolio as an additional benchmark. The risk parity portfolio aims to equalize the risk allocation across the portfolio assets and thus overweights safer assets.

References:

Black-Litterman Model

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:

Monte Carlo Simulation

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.

Efficient Frontiers

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)

Asset Correlations

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.

Factor Regression

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:

Factor Exposure Matching

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.

Market Timing

Valuation-based market timing with Shiller PE10 ratio

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:

Moving average model

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:

Relative strength based momentum model

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:

Dual momentum model

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.

Rapach and Strauss and Zhou (2013) find that the US stock market leads the world markets even at the monthly frequency, so the supported options include specifying a single asset to be used for absolute momentum. As discussed in Gary Antonacci's Dual Momentum book, we can first apply absolute momentum based on the US stock market (e.g. S&P 500 TR) and assuming the excess return over the risk free rate is positive, we use relative momentum to choose between US equity and international equity. If the absolute momentum excess return is negative, the model is invested in the selected out-of-market asset, e.g., Barclays U.S. Aggregate Bond Index.

References:

Adaptive asset allocation model

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:

Target volatility model

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.

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 Data1 1972-1976
Vanguard 500 Index Fund (VFINX) 1977+
US Large Cap Value
Professor Kenneth French's Research Data1 1972-1992
Vanguard Value Index Fund (VIVAX) 1993+
US Large Cap Growth
Professor Kenneth French's Research Data1 1972-1992
Vanguard Growth Index Fund (VIGRX) 1993+
US Mid Cap Blend
Professor Kenneth French's Research Data1 1972-1998
Vanguard Mid Cap Index Fund (VIMSX) 1999+
US Mid Cap Value
Professor Kenneth French's Research Data1 1972-2006
Vanguard Mid Cap Value Index Fund (VMVIX) 2007+
US Mid Cap Growth
Professor Kenneth French's Research Data1 1972-2006
Vanguard Mid Cap Growth Index Fund (VMGIX) 2007+
US Small Cap Blend
Professor Kenneth French's Research Data1 1972-1989
Vanguard Small Cap Index Fund (NAESX) 1990+
US Small Cap Value
Professor Kenneth French's Research Data1 1972-1998
Vanguard Small Cap Value Index Fund (VISVX) 1999+
US Small Cap Growth
Professor Kenneth French's Research Data1 1972-1998
Vanguard Small Cap Growth Index Fund (VISGX) 1999+
US Micro Cap
Professor Kenneth French's Research Data1 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-02-18
Support core-satellite portfolio backtesting combining strategic core portfolio allocation with a tactical asset allocation based satellite portfolio
2017-02-08
Support the use of a single asset for absolute momentum in dual momentum model
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.
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: February 18th, 2017