Shinde and Nalavade's top five NIFTY 50 stocks tell us who won between 2015 and 2025. The paper gives no number for how a list picked in 2015 would have performed.

That omission matters more than the choice of metrics. The authors start from a straightforward concern: ranking by price or raw return favours stocks whose gains came with violent swings. Their risk-adjusted performance ranking scores growth alongside risk. The sample contains daily data for 52 companies that belonged to NIFTY 50 at some point during the window. They calculate CAGR, annualized volatility (daily standard deviation times the square root of 252), Sharpe, Sortino and maximum drawdown for each stock. A liquidity screen removes stocks below the 20th percentile of average daily volume or turnover. The remaining stocks receive cross-sectional Z-scores for each metric, combined as 0.45 Sharpe + 0.35 CAGR + 0.15 Sortino + 0.05 MDD.

TITAN leads with 1.829, followed by HINDUNILVR (1.735), BAJFINANCE (1.591), KOTAKBANK (0.853) and HDFC (0.833). The authors then use K-means with K = 3, selected through a WCSS elbow, to group stocks by CAGR against volatility, Sharpe, drawdown and cumulative growth. Another K-means exercise uses K = 8 to cluster the previous session's closing price (Previous Close) against Open, High, Low, Last and Close. The experimental setup describes ARIMA forecasting, which the abstract and conclusion also claim. The paper presents a decision-support ranking and "a foundation for improving portfolio allocation strategies", without claiming a trading edge.

The endpoint chooses the shortlist

The score draws every input from the complete 2015-2025 series, final price included. The liquidity screen also uses the whole period. Its table reports average turnover of ₹4,848,475,984 for HDFC and ₹1,426,772,766 for TITAN. Those figures work as historical description. Applied to the "stock selection" proposed in the conclusion, however, the ranking contains look-ahead by construction. An investor in 2015 could have calculated none of these numbers. We found no portfolio returns, transaction costs or index benchmark in the results. The results section identifies four phases (ranking, liquidity, clustering, price stability), leaving forecasting outside them.

The paper says "the stability of the ranking, from a methodological viewpoint, supports the soundness of the normalization and weighting process." We found no subperiod split or weight perturbation to support that statement.

What does a 5% drawdown weight achieve?

Very little, judging by the paper's table.

We can reproduce the Sharpe values by dividing CAGR minus about 6.5% by volatility. For TITAN, (0.255 - 0.065)/0.337 = 0.564. For BAJFINANCE, (0.264 - 0.065)/0.479 = 0.415, compared with the reported 0.416. All five agree within 0.002. We inferred the risk-free rate; we did not find it stated. If that inference is right, Sharpe depends on CAGR and volatility, leaving 80% of the weight on CAGR twice. Sortino receives another 15% and uses the same numerator.

Only the remaining 5% goes to drawdown. BAJFINANCE has a -93.3% drawdown, deeper than the -89.32% centroid of the paper's own "high fragility" cluster in the CAGR-drawdown panel. Yet it places third, ahead of KOTAKBANK by 0.738 points.

The authors say "the weights were chosen so that they do not overemphasize any one dimension." Growth enters three of the four terms, making that claim hard to reconcile with the formula.

The drawdown sign leaves an implementer with a consequential choice. The text calls drawdown "a penalty" without specifying whether the Z-score uses its raw negative value or its magnitude. A +0.05 weight on the Z-scored negative value penalises deeper drawdowns. Applied to the Z-scored magnitude, the same weight rewards them. If reversing the sign cannot change the top five, the 5% allocation has almost no effect.

Four clusterings, four "best" clusters

The authors report three common regimes across the panels, yet the centroids disagree. The best cluster has a CAGR of 26.58% against volatility and 26.60% against Sharpe. Against drawdown it has 17.43%; against cumulative growth, 41.43% (26.29x). Each comes from a separate fit on a separate pair.

At 41.43%, that centroid exceeds BAJFINANCE's 0.264, the highest CAGR among the top five. Some group therefore grew faster than every stock on the shortlist. The paper neither identifies those stocks nor explains whether the liquidity screen or the score excluded them.

The claim that the high-efficiency cluster "independently proves the ranking methodology" fails because of how the exercise is constructed. The cluster and ranking both use the same CAGR and Sharpe columns. Agreement is therefore expected.

With K = 8, the panels group observations by price level. The Previous Close against Close centres are 1,265-1,265 and 28,845-28,856, showing that stocks trade near the previous close. The authors acknowledge that price size separates the clusters. They nevertheless infer high intraday stability and use it to justify the volatility figures, a conclusion price-level clustering cannot establish. The upper bands also receive the label "index-level" regimes, even though the methods say NIFTY50_all.csv was excluded.

Choices left to the implementer

We could not run a point-in-time test ourselves. We lack Indian equity price and turnover histories, as well as the historical NIFTY 50 membership needed for a 52-company universe assembled across the full decade.

A version worth testing would rank stocks using trailing data at each semi-annual index review, then hold the top five. Returns that beat the index after costs would give the 45/35/15/5 weights a reason for another look.

Until then, the table remains a well-presented record of the winners.