Usually, we look at investment returns in terms of annual returns. However, your numbers may be expressed as daily, weekly, or monthly returns. Here’s how to convert them.

The idea is that you compound to use the general formula for returns and compound them to an annual period.

\[r_a = (1 + r)^n - 1\]

Where \(r_a\) is the annual return, \(r\) is the return (in decimal) and \(n\) is the number of periods in a year.

def annual_return(r, n):
  r = r / 100
  return (1 + r)**n - 1

Say you have a 5% quarterly return, because we have four quarters in a year then

annual_return(5, 4) * 100
## 21.550625000000025

If you have a 5% monthly return, because we have twelve months in a year then

annual_return(5, 12) * 100
## 79.58563260221301

If you have a 0.1% daily return, because we have 365 days in a year then

annual_return(0.1, 365) * 100
## 44.02513134295205

If you have a 2% weekly return, because we have 52 weeks in a year then

annual_return(2, 52) * 100
## 180.03281854481816

You can have returns for any number of days and convert them to annualized returns by dividing the days in a year by the days you have returns for. In other words, the period becomes the proportion of the year that you have returns for. Let’s say you have a 6% returns over 52 days, then

n = 365 / 52
annual_return(6, n) * 100
## 50.53161051538271

Some natural question that follows up, in my mind at least, is how to go from any given period (daily, monthly, weekly, etc.) to any other. This question is not addressed very well as far as I can tell. I’ll do a write-up when I find the answer.