# Why annualized return and cumultive return aren't equal over 1-year period with Performance Analytics package in R?

I use Performance Analytics package in R to compare annualized and cumulative return of a portfolio. My expectation is that both should be equal over a period of 1-year but results tell me I'm wrong.

It is not clear for me how annualized return could be 122.55 from 2014-01-01 to 2014-12-31 while the cumulative return is 205.71 over the same period. Geometric is set to its default value (TRUE) and I think number of period in a year is set by default to 252 (daily scale).

statistic <- rbind(Return.annualized(bench)*100, Return.cumulative(bench)*100)


To know better what is the return I can expect from this portfolio could somebody please explain to me why both returns are not equal ?

• You should add links to the documentation of the package. Have you had a look there? What does it say about the difference between these two methods? – SRKX Feb 12 '15 at 6:36

The documentation of the R package PerformanceAnalytics provides examples for both the Return.annualized() and Return.cumulative() functions.

The annualized return scales up sub-annual returns to an annual return. You may observe the difference by typing Return.annualized (without any parameters) in your R console to see the functions implementation. Look for how the return is calculated if geometric linkage is applied:

 if (geometric) {
result = prod(1 + R)^(scale/n) - 1
}


The cumulative returns are actual returns that are calculated over an annual period. The formula for the calculation is similar, but lacks the scaling piece:

else {
return(prod(1 + R) - 1)
}


If the period being analyzed is exactly one year annualized and cumulative returns are the same:

data(managers)
Return.annualized(managers[121:132])
Return.cumulative(managers[121:132,])


But if the period is not equal to one year they are expected to be different:

data(managers)
Return.annualized(managers[115:132])
Return.cumulative(managers[115:132,])

• Thanks. For my Annualized Return to be 122.55 I've found that n must be equal to 352 in prod(1 + R)^(scale/n) - 1 (n is the total number of periods for which I have observation). The consequence is that ratio (scale/n) is different from 1 (with scale = 252). It is not clear what is wrong because periodicity(bench) returns Daily periodicity from 2014-01-14 to 2014-12-31. – Florent Feb 16 '15 at 11:56
• I get it. n equal 352 because I have saturday and sunday in my dataset ;-) and PerformanceAnalitics is not designed to work with 7 days of trading per week. – Florent Feb 16 '15 at 12:02
• The most frequent assumption for stock returns is that it's 252 trading days in a year. There are other day count conventions but they usually play a larger role when looking at fixed income data since returns would be very often evaluated rather than observed... – RndmSymbl Feb 16 '15 at 16:35