Asset classes with a long history: methodology
Many ETFs have only existed for 15 or 20 years. That is too short to test a strategy across several interest rate cycles and crises. The asset classes in Portfolio Lab therefore extend tradable funds with older index data, bonds calculated from interest rates and related series. This methodology shows step by step how the monthly series in euros are built, which assumptions they contain and where their limits lie.
How an asset class is built
Portfolio Lab offers 202 asset classes in 18 groups, from “Equities” through “Bond maturities” and “Credit” to “Crypto” and “Overlay & options”. Each has a symbol with “@”, such as @AKTIEN_WELT or @BUND_10J, and works like a ticker in the Backtest and the other tools. Behind each symbol is a chain of sources in a fixed order. Each source has one of four roles:
- Fund: a tradable ETF or index fund. Its costs are already reflected in the price, and distributions are reinvested.
- Index: index data without costs, such as an index series with reinvested net dividends, or Fama and French factor returns for a region.
- Synthetic: a bond with a constant maturity or a cash investment, calculated from central bank interest rate series.
- Proxy: a related series before the actual data begin, for example the US stock market for the global stock market.
All series are monthly returns in euros at month end. From them, a price index is built with a starting value of 100 at the end of the month before the first return. Because asset classes only have monthly values, a backtest calculates monthly as soon as an asset class is involved, even if it only serves as a proxy. Long series spanning many decades are the basis of almost every statement about risk premia; Dimson et al. (2002) and Siegel (2014) compiled such series for equities, bonds and the money market over more than a hundred years.
Chaining the sources
The chaining works through the chain from front to back. The first source with data forms the core. Each further source only adds months that lie before the start or after the end of the result so far. It thus extends the series backwards and, if the fund has no recent prices, forwards too. Returns are chained, not prices: the price index is only built afterwards from the monthly returns, so there are no jumps in level at the joins.
The code fills gaps in the middle from the first source in the chain that has data for those months. If a gap still remains, it discards everything before it and uses only the most recent gap-free segment, because a series with holes would distort metrics such as volatility. The page's “Data coverage by source” table shows which source supplies which period, with From, To and the number of months.
The result is cached for twelve hours. If a source was missing when the series was built, the series is only valid for one hour and is then retried. If a fetch fails completely, the code uses the last stored state instead of omitting the asset class.
Synthetic bonds and money market
For government bonds there are long yield series, but no long price series. Portfolio Lab therefore models a bond with a constant maturity: at month end, a bond is bought at par, so its coupon equals the current yield. One month later it is one month shorter; it is valued at the new yield, sold and replaced by a new one. The monthly return consists of the price change and the accrued coupon:
r = y₀ · AF(y₁, T − 1/12) + (1 + y₁)^−(T − 1/12) − 1 + (1 + y₀)^(1/12) − 1- y₀, y₁
- yield at the end of the previous month and at the end of the month (decimal p.a.)
- T
- remaining maturity of the bond in years, for example 10
- AF(y, t)
- annuity factor (1 − (1 + y)^−t) / y: present value of annual coupons of 1 over t years
For German Bunds, the source is the yield curve of listed German federal securities, first as daily values (taking the last value in the month), then as month-end values. The month-end values go back to 09/1972 for two, five and ten years, and to 06/1986 for 15 and 20 years. For the years before that, the code uses the ten-year yield or, for two years, the 3-month rate in Germany as a proxy. Government bonds of other countries are built from the ten-year market yield in local currency. For euro countries the series only begin in 1999, because earlier yields applied to the old national currencies and cannot be cleanly carried over into euros.
The money market follows the same logic with a simpler formula: the monthly return is the interest rate at the end of the previous month divided by 12, so 0.25% at 3% p.a. For the euro money market, Portfolio Lab first uses a fund tracking the overnight rate, before that a cash account built from overnight rates (€STR, before that EONIA, before that interbank overnight money in Frankfurt), and as a fallback the 3-month rate.
Conversion into euros
The code converts sources in foreign currencies into euros month by month. The euro return combines the return in local currency with the change in the exchange rate in the same month:
r_EUR = (1 + r_local) · (1 + Δ exchange rate) − 1- r_local
- monthly return in the source's currency
- Δ exchange rate
- change in the euro price of one unit of that currency from the end of the previous month to month end
The series are therefore not currency-hedged: the exchange rate risk is fully contained in the euro return, as with an unhedged ETF. Whether hedging pays off depends on the horizon and the asset class. Froot (1993) found that over many years it reduces volatility less than over short periods; Campbell et al. (2010) show that some currencies even dampen equity risk. More on this in the article Currency risk.
The euro has only existed since 1999. For the period before that, Portfolio Lab uses the dollar rate of the Deutsche Mark and converts it into a euro equivalent at the fixed conversion rate of 1.95583 Deutsche Marks per euro: daily rates from 1999, month-end rates from 1960 to 1998 and, before that, the fixed parities of the Bretton Woods system back to the currency reform of June 1948. For the early years, the pound, the yen, the Swiss franc and the Canadian and Australian dollars are converted via the US dollar.
Fund costs
An index costs nothing; a fund does. So that the segments fit together, Portfolio Lab deducts the ongoing charges (TER) of the asset class's fund in months taken from index, synthetic or proxy sources, one twelfth per month. In fund months nothing happens, because the costs are already reflected in the price; the same applies to proxies that are themselves funds. The stored TERs range from 0 to 1.75% p.a. In “Settings”, the deduction can be turned off with the “Deduct fund costs in index segments” switch.
Using the first ETF in the US, Elton et al. (2002) showed that an index fund lags its index on average by almost exactly its costs. The deduction only models this part. Taxes within the fund, trading costs, income from securities lending and other deviations from the index are left out.
Proxy sources and backtest proxies
Proxies are the weakest link in the chain: they measure something related, not the asset class itself. Examples are US sectors before the launch of global sector ETFs, the ten-year yield for a five-year Bund before the yield curve begins, or a commodity future before the matching ETF. 66 of the 202 asset classes have at least one proxy. If you only want the actual data, switch off “Proxies before the index data begin” in the settings; the series then begin later.
The same principle exists for individual securities in the backtest: a proxy extends a young ETF backwards. The code takes the proxy's prices up to the ETF's first price and scales them so that they join the ETF's starting price exactly. Before the start, therefore, only the proxy's returns count.
Suggestions come first from a fixed mapping (such as a global ETF to @AKTIEN_WELT), otherwise from the taxonomy. Candidates are asset classes in the same subcategory and, for interest rates, credit, money market, commodities and real estate, also those in the same main category. Each candidate receives points; the best one is suggested, and three more are offered as alternatives:
| Feature | Points |
|---|---|
| same subcategory / only same main category | 100 / 60 |
| same style, such as value | +20 (factor class for a broad fund −30, otherwise a different style −15) |
| small cap versus large cap | −40 |
| same size class | +10 |
| maturity class same / adjacent / further away | +50 / +20 / −20 |
| same currency | +5 |
| core group equities, bonds or precious metals | +10 |
| name contains a keyword of the asset class | +25 (sector without keyword −40) |
There are no suggestions for individual stocks, leveraged or inverse products and unclassified securities. A proxy is only applied if it starts at least 365 days earlier than the security and the security only starts after the selected start date. Even so, an extended series is not a real history of the fund; Brown et al. (1992) show how merely selecting the series that still exist today can distort results.
Analysis on the page
The Asset classes page loads the selected groups, by default equities, bonds and precious metals. The overview shows start, end, years, CAGR, the volatility (standard deviation of monthly returns × √12), the maximum drawdown and the first year of each source type. For the selection (by default global equities, German Bunds 10y, gold and money market euro), the page then shows performance, metrics as in the metrics methodology, annual returns for full calendar years only and the correlation of monthly returns. With “Common start”, all series begin in the same month; otherwise each uses its full length. All monthly returns can be downloaded as CSV.
Limitations of the long series
- Gold before 2000 is based on monthly averages instead of month-end prices. Averages smooth the series: volatility looks lower, and consecutive returns are artificially correlated. Working (1960) showed that even a pure random series acquires an autocorrelation of up to 0.25 this way.
- Gold from 2000 to 2008 comes from the front-month futures contract: when it rolls to the next contract, the price jumps by the premium of the later contract, and between rolls the premium decays again. Over time the series follows the gold price, but individual months are slightly distorted. As with index data, the Xetra-Gold fee is deducted if desired.
- Index data are not fund data: the cost deduction is a flat rate, and taxes within the fund and tracking differences are missing.
- Synthetic bonds are idealised: no default risk, bought at par every month, no bid-ask spread. Real bond funds hold a mix of maturities.
- Fama and French factor returns are value-weighted research portfolios with a broader equity universe than the usual indices.
- Surviving markets: long series exist mainly for markets that still exist today; their returns tend to overstate what investors could expect at the time Dimson et al. (2002).
- Monthly values hide movements within a month; as a result, a drawdown usually looks somewhat smaller than with daily prices.
Frequently asked questions
Why does an asset class start later than expected?
If a gap remains in the chain, the code only uses the most recent gap-free segment. Without proxies, the oldest segments also drop out, and government bonds of individual euro countries only start in 1999. The “Data coverage by source” table shows which source supplies which months.
Are the returns before or after costs?
After costs, as long as the deduction is switched on (the default): fund months include the costs in the price, and in all other months the code deducts one twelfth of the TER. Taxes are only calculated by the backtest, depending on the asset class's tax category (equity fund, other fund, gold with a delivery claim, crypto or ETC).
Are the series currency-hedged?
No. All series are calculated in euros without hedging, and exchange rate fluctuations are fully reflected in the return. A hedged version would also need the interest rate differential between the currencies, which Portfolio Lab does not include here.
How does a synthetic bond differ from a bond fund?
The synthetic bond always has exactly the same remaining maturity, no default risk and no costs other than the TER deduction. A bond fund holds many bonds with different maturities and replaces them according to its own rules. Over longer periods both behave similarly, but in individual months they can differ considerably.
Can I use an asset class as a proxy for my ETF?
Yes. In the backtest, you can assign a proxy to any security, including a symbol with @. The backtest then calculates monthly, because asset classes only have monthly values.
Literature
- Brown, Stephen J.; Goetzmann, William; Ibbotson, Roger G.; Ross, Stephen A. (1992): Survivorship Bias in Performance Studies. Review of Financial Studies 5 (4), pp. 553–580. doi:10.1093/rfs/5.4.553
- Campbell, John Y.; Serfaty-de Medeiros, Karine; Viceira, Luis M. (2010): Global Currency Hedging. The Journal of Finance 65 (1), pp. 87–121. doi:10.1111/j.1540-6261.2009.01524.x
- Dimson, Elroy; Marsh, Paul; Staunton, Mike (2002): Triumph of the Optimists: 101 Years of Global Investment Returns. Princeton University Press.
- Elton, Edwin J.; Gruber, Martin J.; Comer, George; Li, Kai (2002): Spiders: Where Are the Bugs?. The Journal of Business 75 (3), pp. 453–472. doi:10.1086/339891
- Froot, Kenneth A. (1993): Currency Hedging over Long Horizons. National Bureau of Economic Research, Working Paper 4355. doi:10.3386/w4355
- Siegel, Jeremy J. (2014): Stocks for the Long Run. McGraw-Hill Education, 5th edition.
- Working, Holbrook (1960): Note on the Correlation of First Differences of Averages in a Random Chain. Econometrica 28 (4), pp. 916–918. doi:10.2307/1907574
This page describes how Portfolio Lab calculates; past results are not a forecast. All terms in the glossary.