How We Can Backtest Leveraged ETFs All the Way Back To 1885

Leveraged ETFs on the S&P 500 are a relatively new phenomenon. ETFs as a whole are.

The first ETF on the S&P 500 was launched in 1993. The SPDR® S&P 500® ETF, also called SPY.

Therefore backtesting levereaged ETFs is much more complicated than it first may seem.

On this page we explain our methodology which allows us to accurately backtest leveraged ETFs all the way back to 1885.

What Data To Use?

What do leveraged ETFs like the or track? The S&P 500 Total Return Index (S&P500TR)
What is a total return index? It's simply the price index including events such as dividends. The so called is one of them.
The Problem we face now is that easily accessible data for the S&P 500 Total Return Index only goes back to 1988. Using that data, like many other backtesting tools and websites, would not include major historical events such as , , the and more.
Luckily we aren't the first to encounter this problem. This GitHub Repo uses a clever combination of different publicly available datasets and some clever math to get us the data we need as it creates a simulated SPY that goes back to 1885.
We did a small adjustment though. At first we removed the TER calculations from the simulation. Afterwards starting in ~1988 onwards we simply use real S&P 500 Total Return Index data from Yahoo Finance. That reduces tracking errors for recent data drastically and allows us to use the Total Return Index as a basis for our simulations instead of dealing with the SPY, which adds tracking noise and already includes a TER.

Simulating Leveraged ETF Returns

Now that we have a complete dataset for the S&P 500 Total Return Index going back to 1885, we look into how we can simulate the returns of leveraged ETFs.

To do so we need to account for various factors, including:

  • daily rebalancing effects
  • management fees - Total Expense Ratio (TER)
  • borrowing costs
  • additional costs such as spread

Daily rebalancing

Leveraged ETFs are rebalanced daily to maintain the leverage ratio. This means that the value of the ETF will fluctuate based on the daily changes in the S&P 500. This sounds very fancy and complicated, but the math is very simple:

leveraged return = 2 * (S&P 500 return)

This means that if the S&P 500 goes up by 1% today, the leveraged ETF will go up by 2%. Then we simply do this for each day in our dataset. For 3x leveraged ETFs we simply replace the 2 with a 3.

Management fees - Total Expense Ratio (TER)

The TER is the management fee that the ETF issuer charges to manage the ETF. It is deducted from the value of the ETF daily and is just a tiny bit more complicated to account for:

leveraged return = ((1 - TER) / trading days per year) * (S&P 500 return)

This means we simply apply the TER to the value of the ETF daily.

But beware: trading days per year vary. Especially if we go back further in time.

We got that covered. Since we have the daily data avaialble, we can simply count the number of trading days for each year from our dataset.

Borrowing costs

Now this is where it gets interesting. We work on the assumption that leveraged ETF providers are able to borrow money at the Fed rate. Or often referred to as the risk-free rate. Luckily, the FRED API has us covered. We can take the historical rates and apply them accordingly. We use the Federal Funds Effective Rate for this.

Additional Costs

There are some additional costs that are not immediately obvious. Transaction costs, unknown fees, etc.

To account for that, we apply additional daily costs of ~0.003%. That is about 0.70% per year. The value is then multiplied by the leverage factor to account for increasing costs with higher leverage

We get to this value by testing different values and comparing the results to real data. We also use a value that slightly "underperforms" the real data to make sure that our simulations are more conservative and trustworthy.

Our 2x Leverage Simulation vs Real SSO Data

Here can you see how our simulation of the SSO performs compared to the real SSO data from Yahoo Finance.
May 2010Feb 2011Oct 2011Jul 2012Apr 2013Dec 2013Oct 2014Jun 2015Mar 2016Dec 2016Sep 2017Jun 2018Feb 2019Oct 2019Jul 2020May 2021Feb 2022Nov 2022Jul 2023May 2024Feb 202508501.7k2.5k3.4k

Our 3x Leverage Simulation vs Real UPRO Data

And here you can see how our simulation of the UPRO performs compared to the real UPRO data from Yahoo Finance.
May 2010Feb 2011Oct 2011Jul 2012Apr 2013Dec 2013Oct 2014Jun 2015Mar 2016Dec 2016Sep 2017Jun 2018Feb 2019Oct 2019Jul 2020May 2021Feb 2022Nov 2022Jul 2023May 2024Feb 202502.5k5.0k7.5k10k

Improving Our Simulations

Since the markets are always changing and delivering new data, we can consistently improve our simulations. This includes recalibrating simulation parameters and cost assumptions to minimize tracking differences. We strive to do so at least once a week.

If you still have questions, feedback or ideas to improve our simulations, please let us know.

About

Learn