compounding vs volatility

This is the fifth in my Hedge Fund Hacks series in which I dig below the surface of some of the common challenges of hedge fund performance analysis. For many, this may seem like very basic obvious stuff. But even if you have plenty of experience, take 5 minutes to scan through this post – we can all benefit from being reminded of the basics.

Anti Lake Wobegone

In Lake Wobegone, according to the Prairie Home Companion, all the children are above average. We know this cannot be so. We know that some folks are above average and some below and that’s just how averages work.

Or is it? We know that such a thing as an average monthly return exists. Mean variance portfolio optimization uses it combined with variance of monthly returns to build “optimum” portfolios. We shall shortly see that because rates of return vary up and down each month, on average, everyone is below average!

When it comes to investment returns, we live in Anti Lake Wobegone.

Compounding vs Volatility

What rate should we expect our assets to grow if they return R% each month?


When I was at Cage Green Primary School in the UK I had a savings account with a building society and the yield was about 15%. Every Saturday I would go into the building society and deposit my savings from my allowance and a teller would update my little savings account book. To my amazement and joy, I earned more than 12 x R% in a year, I actually earned ((1 + R%)^12 – 1).

For anyone younger than about thirty, I do indeed mean 15%, NOT 1.5%! A building society was a mutual savings bank that used its members’ deposits to fund mortgages. Think: George Bailey and Bailey Brothers Building & Loan (surely you know “It’s a Wonderful Life”?). This was before commercial banks were allowed to write mortgages in the UK. Oh, and savings, that’s what you have when you spend less than you earn.

Arithmetic averages arise from an additive process. Compounding is a geometric or multiplicative process.

Consider 2 month’s of returns at 1%:

Let’s start with 100 units of capital and say we gain 1% simple interest per month for 2 months. We end up with

100.(1 + 1/100 + 1/100) = 100.(1 + 2/100) = 102

However, if we gain 1% compound interest we end up with

100.(1 + 1/100).(1 + 1/100) = 100.(1 + 2/100 + 1/10000) = 102.01

That extra 1/10000? That right there is compounding. “The most powerful force in the universe” – something Einstein never said.


If we have an asset that delivers an average return of 1% per month, then we should make

(1 + 0.01)^12 – 1 = 12.68% per year

Well, not exactly. The problem is that the return of 1% is simply an arithmetic average of all the monthly returns. Some months we only get 0.5%, others we get 2%, and of course we probably have some months where we lose some.

This is volatility and it affects our overall compound rate of return. We are not going to get a nice neat (1 + 0.01)^12, we are going to get (1 + 0.01).(1 – 0.005).(1 + 0.015)…. We are going to earn the geometric average of the returns each month, NOT the arithmetic average.

Let’s go back to our 2-month toy example and we will use “e” to represent some volatility of returns (note the arithmetic average remains 1%):

(1 + 1/100 + e).(1 + 1/100 – e) = (1 + 0.02 + 1/10000 – e^2) < (1 + 1/100)^2

It should be clear that the only time a series of returns with an arithmetic average of R% per month delivers (1 + R%)^12 over the course of a year is when the volatility is zero. Furthermore, this is the highest return a series with an arithmetic average of R% per month can possibly deliver. Every other series will be below the average R% – Anti Lake Wobegone.

How Volatility Affects Compounding

I am going to consider a variety of return series with an arithmetic average monthly return of 1% but with different volatilities. In this experiment I explore a range of annualized volatilities from 0% to 40% in 5% increments. Monthly volatility is annual volatility divided by square root of 12.

We know that when volatility is zero, over the course of a year we are going to earn (1 + 1/100)^12 – 1 = 12.68%. For each of the other volatility levels I generate a 100,000 series of returns using R’s random normal distribution (with mean=0 and standard deviation = monthly volatility). Since the returns are random, any given series of 12 months will not average to 1%, so I simply re-center the return series by subtracting the actual average and adding back 1%.

For each return series I figure out the compound average growth rate (i.e. the compounded return). I then take the average of all 100,000 return series for that volatility level. For each volatility level, I plot the return. Here’s what we get:

Compounding vs Volatility

To take away a single data point, consider that a volatility of around 25% gives a Sharpe Ratio of about 0.5. At that point, the compounded yield has dropped from almost 13% to 9.5%, a decline of around 25%. Furthermore, the decline accelerates with increasing volatility.

Here’s the R code used to generate the above:

  CAGR &lt;- function(rets) prod(1 + rets)^(12 / length(rets)) - 1

  mcCount <- 100000 # Number of MC simulations to run
  months <- 12
  expReturn <- 0.01 # 1% per month arithmetic average return
  compRet <- (1 + expReturn)^months - 1 # Compounded return with 0 vol
  annVol <- seq(0.05, 0.40, by=0.05) # Range of vols to test
  actRets <- matrix(ncol=length(annVol), nrow=mcCount) # Matrix to store results
  for (i in 1:length(annVol)){
    # For each vol randomly generate returns and store in mcCount rows of matrix
    returns <- matrix(rnorm(months * mcCount, 0, annVol[i] / sqrt(12)), ncol=months)
    # Each row represents 12 months returns. Recenter them to expReturn
    returns <- returns - apply(returns, 1, mean) + expReturn
    # Figure the compound annual growth rate for each 12 months series
    actRets[ , i] <- apply(returns, 1, CAGR)
  # Plot the mean of CAGRs (in columns) vs the annualized vols.
  plot(100 * c(0, annVol), c(compRet, apply(actRets, 2, mean)), pch=16, col="#ff2b00", bty="n", 
       ylim=c(0.0, compRet), 
       main=paste0("Compound Return vs. Volatility"), 
       xlab="Annualized Volatility (%)", 
       ylab="Compound Ann. Return")
  text(0, 0.04, paste0(100 * expReturn, "% Avg. Mo. Return = ", round(100 * compRet, 2), "% Compounded @ 0 Vol."), pos=4)


Think about what this means at the portfolio level, both in terms of returns you get and the portfolio optimization process.

  • Your main objective in selecting managers is to build a set who, together, will reduce volatility as much as possible.
  • Focus on how each manager controls the volatility of their return stream.
  • Consider the implications of this well-known phenomenon for the way you optimize your portfolios – instead of using a monthly time-frame, perhaps your rebalancing interval should be used.

The bottom line is that controlling volatility is vital to getting the returns you expect.

Image Credit: Photo by Marc Sendra Martorell on Unsplash

New Commodity Pool Launches

Please provide your name and email address so we can send you our quarterly compilation of new commodity pools registered with NFA.

Thank you. Your file will be available after you confirm your subscription. Check your in-box!

Biggest Hedge Funds By $AUM

Please provide your name and email address so we can send you our quarterly compilation of biggest hedge funds by $AUM as reported on the SEC's Form ADV.

Thank you. Your file will be available after you confirm your subscription. Check your in-box!

The Case For Hedge Funds And Managed Futures

Please provide your name and email address so we can send you a pdf of the article you requested.

Thank you. Your file will be available after you confirm your subscription. Check your in-box!


Don't miss our technical articles!

Thank you! Check your email for confirmation message.

Share This


If you found this post informative, please share it!