Data to 5 October 2026

ResearchIPOssample post

Indian IPOs don't lag the market over the long run. The typical one still does

Ritter's famous result says new issues underperform for years after listing. On a decade of NSE listings the portfolio keeps pace, while most individual IPOs trail.

Does not replicate in India Pre-registered on 1 Oct 2026

A portfolio of every mainboard IPO in its first three years earned an alpha of +4.1% a year over the Nifty 500, statistically indistinguishable from zero. The underperformance Ritter found in the US does not show up, but the median IPO trails the market at every horizon.

Replicating: Ritter, Jay R. (1991). The Long-Run Performance of Initial Public Offerings. Journal of Finance 46(1), 3-27.

In 1991 Jay Ritter showed that American companies which went public between 1975 and 1984 did badly afterwards. Three years after listing, a rupee’s worth of new issues was worth about 0.83 of what the same money in matched firms would have become. The finding became one of the best-known anomalies in finance, and it gave a name to a common suspicion: that companies sell shares when investors are most willing to overpay for them.

India has had a decade of busy IPO markets since 2016, with 529 mainboard listings on the NSE. That is enough to ask Ritter’s question here, provided the test is fixed before the answer is known. It was: the specification was committed on 1 October 2026, before a single return was computed.

The portfolio test

Averaging each IPO’s three-year return and comparing it with the market sounds like the obvious test, but it double-counts. IPOs that list in the same busy year share the same market, so their returns are not independent, and a few enormous winners dominate any average. The test the literature settled on is a calendar-time portfolio: each month, hold every IPO that is between one and thirty-six months past its listing, equally weighted, and ask whether that portfolio beat the market after allowing for its risk.The listing month itself is left out, so the large first-day gains, which only allottees capture, play no part in the long-run test.

The risk adjustment is a regression of the portfolio’s monthly excess return on the market’s:

rp,t−rf,t=a+b (rm,t−rf,t)+εtr_{p,t} - r_{f,t} = a + b\,(r_{m,t} - r_{f,t}) + \varepsilon_t

Here aa is the alpha. Ritter’s result predicts it is negative. The standard errors allow for three months of autocorrelation (Newey-West), because overlapping cohorts make neighbouring months alike.

The IPO portfolio ended ahead of the Nifty 500, with more risk

Monthly, equal-weighted, price returns. The portfolio's beta against the Nifty 500 is 1.22.

IPOs, months 1 to 36 after listingNifty 500

Loading chart…

Source: NSE past issues list (issue price, issue dates) via Data bank nse_ipo_history; prices from NSE bhavcopy, adjusted for splits, bonuses, rights and demergers (compute/prices.py); benchmarks: Nifty 500, Nifty500 Equal Weight and Nifty Smallcap 250 price indices (niftyindices)
Method JSON

Over 124 months, from June 2016 to September 2026, the portfolio held a median of 79 stocks. Its alpha against the Nifty 500 was +4.1% a year, with a t-statistic of 0.89. The pre-registered bar for significance was a p-value under 0.0167, because three primary tests were run; this one came in at 0.37. The sign is the opposite of Ritter’s, and it is not distinguishable from zero.

The same holds against the closer benchmarks. Against the Nifty500 Equal Weight and the Smallcap 250, which look more like the companies that list, the alphas are smaller still and none is significant.

The median IPO trails

The portfolio result is not the whole story. Buy-and-hold returns per issue tell a different one, and the gap between them is the most useful thing in the study.

The average IPO beats the market. The typical one doesn't

Buy-and-hold return after listing, minus the Nifty 500 over the same days. Mainboard listings from 2016.

Mean IPOMedian IPO
1 year
3 years
5 years
level with the Nifty 500
Source: NSE past issues list (issue price, issue dates) via Data bank nse_ipo_history; prices from NSE bhavcopy, adjusted for splits, bonuses, rights and demergers (compute/prices.py); benchmarks: Nifty 500, Nifty500 Equal Weight and Nifty Smallcap 250 price indices (niftyindices)

At one year the mean IPO was 6.5 points ahead of the Nifty 500 and the median was 7.6 points behind. At five years the mean was 51.9 points ahead and the median 29.2 points behind. Only 41% of IPOs held for three or five years beat the index. A handful of very large winners carry the average: Mazagon Dock rose 11.4 times in three years.

For an investor this is the practical finding. Buying every IPO and holding it would have done fine. Picking one at random would usually have been worse than buying the index.

The measure behind those numbers is simple:

BHARi=(1+Ri)−(1+RNifty 500, i)\text{BHAR}_i = (1 + R_i) - (1 + R_{\text{Nifty 500},\,i})

with both returns taken over exactly the same sessions, from the listing-day close.

Method

Universe. NSE’s own list of past issues from January 2016: 529 mainboard and 728 SME listings. An issue counts as a fresh listing only if its ISIN never traded before, which removes FPOs, relistings and companies that listed on the BSE first. Delisted companies stay in until their last trade.

Returns. Prices are adjusted for splits, bonuses, rights and demergers. Dividends are left out on both sides, so IPOs are compared with the Nifty 500 price index. Horizons are counted in the stock’s own sessions: 250 for a year, 750 for three, 1,250 for five. An issue enters a horizon only once that many sessions have passed.

The test. The calendar-time regression above, estimated in outline like this (the pipeline’s own function):

def _ols_nw(y, x, lags):
    """OLS coefficients and Newey-West standard errors."""
    X = np.column_stack([np.ones(len(y)), x])
    beta, *_ = np.linalg.lstsq(X, y, rcond=None)
    e = y - X @ beta
    xtx_inv = np.linalg.inv(X.T @ X)
    S = (X * e[:, None]).T @ (X * e[:, None])
    for l in range(1, lags + 1):
        w = 1 - l / (lags + 1)
        G = (X[l:] * e[l:, None]).T @ (X[:-l] * e[:-l, None])
        S += w * (G + G.T)
    cov = xtx_inv @ S @ xtx_inv
    return beta, np.sqrt(np.diag(cov))

A month needs at least 10 stocks in the portfolio to count.

Robustness

Flipping. A big first-day gain does not predict a bad first year. The rank correlation between listing gain and the one-year abnormal return is 0.003 (p = 0.95, n = 402).

Hot markets. Issues that listed in hot months, when listings were many and first-day gains high, trailed the rest by 7.0 points over a year (p = 0.27, 221 hot and 154 other issues). Averaged by month, the gap is 19.1 points with p = 0.056. That points the way the hot-market literature predicts, but it clears neither the pre-registered bar of 0.0167 nor the conventional 0.05.

Size. Against the Smallcap 250 the mean abnormal returns shrink to +4.4% at one year, +5.4% at three and +30.6% at five.

What this sample can’t say. The long horizons rest on few cohorts and include no full market cycle after the 2021 boom.1

What it means

Ritter’s anomaly does not travel to India in this decade. That is a null result, and it is the headline. The second finding is the one investors feel: the typical IPO trails the market, and the portfolio only keeps up because a few issues multiply.

Footnotes

  1. The study will be rerun as the sample grows. Any change to the method before that happens has to be logged in the specification with a date and a reason. ↩