5-year Nifty Return Analysis (+ ‘Next’ 2 year Returns)

Many people treat 5 years as long term. I don’t. But generally, 5 years is a sufficiently long period when it comes to investing in equity and comparing the returns with safer debt options like debt funds, PPF, fixed deposits, NPS, etc..

So I wanted to analyse the 5-year rolling returns for Nifty50. Having done several detailed analysis in past, I already had a hint of what I was going to find. But I decided to anyways do it from scratch. And this is not a simple Nifty annual returns analysis. It’s a rolling 5-year return analysis for the index Nifty50.

For the analysis, the period picked is from 1st Jan 1999 to 31st December 2019. That’s a solid 21 years of data consisting of 5200+ trading days data.

And what exactly is a 5-year rolling period?


  • For 1st Jan 1999, the 5-year period is till 31st Dec 2003
  • For 4th Jan 1999, the 5-year period is till 5th Jan 2004
  • For 22nd Apr 2008, the 5-year period is till 22nd Apr 2013
  • For 1st Jan 2015, the 5-year period is till 31st Dec 2019
  • Dates after 1st Jan 2015 not considered as they do not have full 5-year return data. For example, for 24th Feb 2017, the 5-year period is still not complete (and will be available after 24th Feb 2022).

So between the starting data point (1st Jan 1999) and ending data point (31st Dec 2019), there are almost 3900+ days which have full 5-year return data available. And this is the workable dataset for us.

Let’s see how things look when the numbers are crunched:

5year Nifty Rolling Returns

The above table is fairly simple to understand. In all 3995 applicable data points, there were only 40 such periods of 5-years (just 1%), where Nifty gave negative returns (CAGR basis) over 5-year periods. In other words, 99% of the time, the 5-year return of Nifty was positive.

But we just don’t want positive returns. When investing in equity and taking risks, we want returns which are higher than risk-free returns. Right? So if I draw a line at simple 8%, then Nifty gave better than 8% returns during 73% of the times. Have a look below. Not bad:

5year Nifty vs Risk Returns

But what about the minimum, maximum returns during these 5 year periods?

Here is the answer:

Nifty 5 year maximum minimum return

You can read the above as: In the past 20 years, the maximum 5-year return that Nifty has given is 44.9% CAGR while minimum has been -1.2% CAGR. The average returns have been 14.2% with a standard deviation of 9.3%.

Or in other words and combining all the above tables, Nifty in 5-year periods has produced losses just 1% of the time. 99% of the time you could have expected to get positive returns and 73% of the time you can expect to get more than risk-free rate of returns (~8%). But since the aggregate figures hide a lot of details, some more data is required. So here it is: your returns can fluctuate between -1% and 45% but the average is about 14.2% and this can deviate by about 9.3%. So just because the average is 14.2% doesn’t mean that everyone will get that (Why averages lie and how the stock markets don’t move in straight lines). Depending on the actual year your 5-year period begins and ends, the returns will fluctuate between -1% and 45%. That is what the historical data says. And you very well know that it’s not necessary that history and future may be similar. So that risk remains in such analysis.

But I am sure you would also agree that market constituents, general environment and the economy haven’t been constant throughout these 20 years. Right?

So how about grouping data further and see if there is anything interesting?

Let’s see…

I have grouped the data in batches of 5-6 years like 1999-2004, 2005-2009, 2010-2014, 2015-2019:

Nifty 5 year return groupings

The shows how Nifty 5-year returns have fared in these year groupings. So as an example, between 1999-2004, Nifty 5-year returns were above 24% CAGR for 22+17=39% of the times. Why? Because the period coincided with the great Indian bull run of the mid-2000s. I suggest you spend some time with the data above. I am sure you will be able to make more inferences yourself.

Now let’s take a step further.

How about looking at 5+2 years returns?

What this means is that we analyze that given that the index delivered X% returns in 5 years, what happened in the next 2 year? For example, suppose we are sitting on 17th Nov 2006. Now we check the 5-year return first, i.e. up to 16th Nov 2011. And then compare this 5-year return with the next 2 year returns, i.e. from 16th Nov 2011 to 18th Nov 2013.

Why do I want to know this?

To see if this theory stands ground – ‘’if returns in recent past have not been great, then chances of mean reversion taking place are high and the market can be expected to give good returns going forward

Controversial statement but seems logical to an extent when we give some weightage to mean reversion.

And maybe the first part of using 5-year is not the right period for such an analysis. Maybe doing it with 3-year would be better. But let’s have a look at it anyway.

Here is the tabular analysis of 5-year Returns Vs ‘Next’ 2-year Returns:

Nifty 5 and 2 year returns

Data can be presented in ways to make it say anything. But nevertheless, there are a few interesting observations here

First, When the 5-year return is low, i.e. below 8% (as in the first two rows), the returns in the next 2 years tend to be high. A majority of the data points in the first two rows are towards the right side, i.e. higher returns ranging from 8% to 32+%. Here I am highlighting the same:

High Returns follow Low Returns

Second, When the 5-year return is very high, i.e. Above 8% (last two rows), the returns in the next 2 years tends to be low. A majority of the data points in the last two rows are towards the left side, i.e. lower returns ranging from 8% and below. Here I am highlighting the same:

Low Returns follow How Returns

Interesting right?

I can go on further by bringing in more data points. Like (let’s say) Nifty PE valuations to evaluate how 5-year returns (during various value levels) impact the next 2 years returns. Or doing similar analysis for all different types of Nifty indexes. But maybe I will do that another day.

As of now, I hope you found this Nifty 5-year returns analysis useful.


  1. Dev – thanks for the useful analysis on the 5 year rolling returns data of Nifty 50. May I request you to do similar exercise on 10 year rolling (while I know data points will get reduced ). Also, can we do a similar exercise on the Nifty Next 50 index too. Thanks

  2. did not understand the table.. in 1st table did not get no of period.. ex 40, 1048 etc of 3995..

  3. Hi sir.
    Could you please share the similar analysis for midcap and smallcap index.
    Thanks in advance.

Leave a Reply