QARP on Indian Stocks: Lower Risk, Not Higher Returns

Growth of 10,000 INR invested in QARP India (BSE and NSE) vs Sensex from 2000 to 2025.

QARP on BSE returned 9.21% CAGR. NSE returned 8.59%. Both trailed the Sensex's 11.35% over the same period. The strategy didn't beat the Indian market. But it offered dramatically lower drawdowns: BSE's worst peak-to-trough was -17.08%, roughly a third of the Sensex's -51.34%. QARP in India is a risk-reduction tool, not an alpha generator. The 846% total return on BSE and 718% on NSE came with far less pain than buying and holding the index.

Contents

  1. Method
  2. The Screen (SQL)
  3. Combined Results
  4. Year-by-Year Returns
  5. BSE vs Sensex
  6. NSE vs Sensex
  7. Key Observations
  8. 2000-2009: Ten years of cash
  9. 2010-2013: Rocky start
  10. 2014: Modest Modi rally
  11. 2020-2021: Post-COVID strength
  12. 2023-2024: The standout period
  13. Currency Note
  14. BSE vs NSE Comparison
  15. Limitations
  16. Takeaway
  17. Part of a Series
  18. Run This Screen Yourself

Method

Signal: Piotroski >= 7, ROE > 15%, D/E < 0.5, CR > 1.5, Income Quality (OCF/NI) > 1.0, P/E 5-25, Market Cap > ₹20B (~$240M USD) Portfolio: Equal weight all qualifying stocks. Semi-annual rebalance (January, July). Cash rule: Hold cash if fewer than 10 stocks qualify. Period: 2000-2025 (51 semi-annual periods) Benchmark: Sensex (^BSESN, INR)

For the full methodology and Piotroski computation details, see the main US QARP post.


The Screen (SQL)

SELECT
    k.symbol,
    p.companyName,
    p.exchange,
    k.returnOnEquityTTM * 100 as roe_pct,
    f.debtToEquityRatioTTM as debt_to_equity,
    k.currentRatioTTM as current_ratio,
    k.incomeQualityTTM as income_quality,
    s.piotroskiScore,
    f.priceToEarningsRatioTTM as pe_ratio,
    k.marketCap / 1e9 as market_cap_billions
FROM key_metrics_ttm k
JOIN financial_ratios_ttm f ON k.symbol = f.symbol
JOIN scores s ON k.symbol = s.symbol
JOIN profile p ON k.symbol = p.symbol
WHERE k.returnOnEquityTTM > 0.15
    AND f.debtToEquityRatioTTM >= 0 AND f.debtToEquityRatioTTM < 0.5
    AND k.currentRatioTTM > 1.5
    AND k.incomeQualityTTM > 1
    AND s.piotroskiScore >= 7
    AND f.priceToEarningsRatioTTM > 5 AND f.priceToEarningsRatioTTM < 25
    AND k.marketCap > 20e9  -- ₹20B (~$240M USD)
    AND p.exchange IN ('BSE', 'NSE')
ORDER BY s.piotroskiScore DESC, k.returnOnEquityTTM DESC

Run this query on Ceta Research


Combined Results

Growth of 10,000 INR invested in QARP on Indian exchanges vs Sensex from 2000 to 2025. BSE grew to 94,600 INR, NSE to 81,800 INR, Sensex to 113,500 INR. Returns in INR.
Growth of 10,000 INR invested in QARP on Indian exchanges vs Sensex from 2000 to 2025. BSE grew to 94,600 INR, NSE to 81,800 INR, Sensex to 113,500 INR. Returns in INR.

Metric BSE (INR) NSE (INR) Sensex (INR)
CAGR 9.21% 8.59% 11.35%
Total Return 846% 718% 1,035%
Max Drawdown -17.08% -19.38% -51.34%
Sharpe Ratio 0.173 0.137 0.186
Volatility - - 26.15%
Excess CAGR vs Sensex -2.14% -2.76% -
Win Rate (semi-annual) - 43.14% -
Avg Stocks per Period 15.8 16.1 -
Cash Periods 29 / 51 26 / 51 -

BSE has the higher CAGR but both trail the Sensex. The drawdown story is the real differentiator: BSE's -17.08% max drawdown is a third of the Sensex's -51.34%. Cash periods are high. BSE was in cash for 29 of 51 periods, NSE for 26. Most of that cash is concentrated in 2000-2009 when too few Indian large-caps passed the screen.


Year-by-Year Returns

QARP BSE and NSE annual returns vs Sensex from 2000 to 2025. Ten years of cash early, then mixed results with standout years in 2023 and 2024.
QARP BSE and NSE annual returns vs Sensex from 2000 to 2025. Ten years of cash early, then mixed results with standout years in 2023 and 2024.

BSE vs Sensex

Year BSE (INR) Sensex (INR) Excess
2000 0.0% (cash) -25.2% +25.2%
2001 0.0% (cash) -18.6% +18.6%
2002 0.0% (cash) +2.9% -2.9%
2003 0.0% (cash) +79.1% -79.1%
2004 0.0% (cash) +10.8% -10.8%
2005 0.0% (cash) +40.6% -40.6%
2006 0.0% (cash) +48.5% -48.5%
2007 0.0% (cash) +46.8% -46.8%
2008 0.0% (cash) -51.3% +51.3%
2009 0.0% (cash) +76.3% -76.3%
2010 +10.2% +17.1% -7.0%
2011 -17.1% -24.5% +7.4%
2012 +18.7% +27.0% -8.3%
2013 -10.6% +6.0% -16.6%
2014 +36.4% +33.5% +2.9%
2015 0.0% (cash) -8.1% +8.1%
2016 +9.8% +3.8% +6.0%
2017 +26.0% +27.1% -1.1%
2018 +5.2% +6.2% -1.0%
2019 +11.9% +16.0% -4.1%
2020 +38.0% +15.7% +22.3%
2021 +30.0% +22.9% +7.2%
2022 +1.9% +3.4% -1.5%
2023 +60.9% +17.5% +43.4%
2024 +38.8% +11.2% +27.6%
2025 +7.6% +4.3% +3.3%

NSE vs Sensex

Year NSE (INR) Sensex (INR) Excess
2000-2009 0.0% (cash) (same as above) -
2010 +12.0% +17.1% -5.1%
2011 -19.4% -24.5% +5.1%
2012 +48.4% +27.0% +21.4%
2013 -11.2% +6.0% -17.1%
2014 +30.0% +33.5% -3.5%
2015 0.0% (cash) -8.1% +8.1%
2016 +8.9% +3.8% +5.1%
2017 +43.3% +27.1% +16.1%
2018 -3.3% +6.1% -9.4%
2019 +6.0% +16.0% -10.0%
2020 +25.9% +15.7% +10.1%
2021 +20.7% +22.8% -2.2%
2022 -4.6% +3.4% -8.0%
2023 +58.3% +17.5% +40.8%
2024 +34.3% +11.2% +23.1%
2025 +7.1% +4.3% +2.7%

Key Observations

2000-2009: Ten years of cash

The strategy sat in cash for a full decade. India's large-cap universe was small in the early 2000s, and too few companies passed all seven filters at a ₹20B market cap threshold. The Sensex returned +79.1% in 2003 and +48.5% in 2006. QARP missed all of it. The 9.21% CAGR is computed over the full 25 years, including ten years of dead weight. Active returns only started in 2010.

2010-2013: Rocky start

Once the strategy deployed capital, results were mixed. BSE gained 10.2% in 2010 but dropped 17.1% in 2011. Both exchanges trailed the Sensex in most of these years. The qualifying stock universe was still thin.

2014: Modest Modi rally

BSE gained 36.4%, narrowly beating the Sensex's 33.5%. NSE gained 30.0%, trailing the benchmark. The election of a business-friendly government lifted quality stocks, but QARP's concentrated portfolio didn't capture the full re-rating the way the broader index did.

2020-2021: Post-COVID strength

BSE returned +38.0% in 2020 and +30.0% in 2021, beating the Sensex both years. Quality companies with strong balance sheets recovered faster. This was QARP doing what it's designed to do: outperforming when financial discipline matters.

2023-2024: The standout period

BSE returned +60.9% in 2023, +38.8% in 2024. NSE returned +58.3% and +34.3%. Both crushed the Sensex by 25-40 percentage points. Domestic consumption growth, manufacturing policy (PLI schemes), and expanding market depth all contributed. These two years account for most of QARP's total return on Indian exchanges.


Currency Note

All returns in this post are in Indian Rupees. The benchmark (Sensex) is also in INR, so the comparison is apples-to-apples. For US-based investors, note that the INR/USD exchange rate moved from roughly 43 in 2000 to roughly 84 in 2024. That's about a 2.7% annual drag on USD-converted returns. The relative performance vs the Sensex is unaffected by currency.


BSE vs NSE Comparison

Metric BSE NSE
CAGR 9.21% 8.59%
Total Return 846% 718%
Max Drawdown -17.08% -19.38%
Sharpe Ratio 0.173 0.137
Avg Stocks 15.8 16.1
Cash Periods 29/51 26/51
Win Rate - 43.14%

BSE has the higher CAGR and the smaller drawdown. NSE has slightly more periods with capital deployed (26 cash periods vs 29). Both exchanges have similar average stock counts when invested. Many Indian companies are listed on both exchanges, but the composition of qualifying stocks differs because of differing listing populations and market microstructure.


Limitations

Cash drag. BSE was in cash for 29 of 51 periods. NSE for 26. The strategy produced zero returns for ten straight years (2000-2009). Investors with shorter time horizons would have abandoned it.

Survivorship bias. Exchange membership uses current company profiles, not historical. Indian exchanges had different compositions in the early 2000s. Delisted companies aren't captured.

Market cap filter in INR. The ₹20B threshold (~$240M USD at 2025 rates) is in Indian Rupees, matching how FMP stores market cap data. This threshold targets liquid mid-cap companies appropriate for India's market structure. In USD terms, this is lower than the $1B threshold used for US exchanges, reflecting different market size distributions across regions.

Liquidity concerns. Some BSE-listed stocks that pass the screen may have thin trading volumes. The backtest assumes frictionless execution at closing prices. Real-world slippage on mid-cap Indian stocks can be material.

No transaction costs or taxes. India's Securities Transaction Tax (STT) and short-term capital gains tax aren't modeled. These reduce realized returns.


Takeaway

QARP didn't produce alpha on Indian exchanges. 9.21% CAGR on BSE and 8.59% on NSE both trail the Sensex's 11.35%. Ten years of cash at the start and frequent cash periods throughout are the main drag.

What QARP did deliver is drawdown protection. BSE's worst drawdown was -17.08%. NSE's was -19.38%. The Sensex hit -51.34%. That's a massive difference for investors who care about downside risk. The Calmar ratio (CAGR / max drawdown) tells the story: BSE's 0.54 vs the Sensex's 0.22. You gave up 2 percentage points of annual return and got a third of the drawdown in exchange.

When the strategy was invested, it worked well. 2020-2024 produced strong excess returns. The problem is the strategy spent too much time in cash, missing extended bull runs. QARP's strict filters are a poor match for a market where valuations run high and quality comes at a premium. In India, the screen is a volatility dampener, not a return enhancer.


Part of a Series

This analysis is part of our QARP global exchange comparison: - QARP on US Stocks (NYSE + NASDAQ + AMEX) - 10.42% CAGR, +2.65% vs S&P 500 - QARP on German Stocks (XETRA) - 8.75% CAGR, +3.69% vs DAX - QARP on Chinese Stocks (SHZ + SHH) - SHH beats SSE Composite - QARP on Hong Kong Stocks (HKSE) - +2.71% vs Hang Seng - QARP: Global Exchange Comparison - full comparison table


Run This Screen Yourself

All metrics used in this analysis (Piotroski scores, ROE, P/E, income quality, debt ratios) are queryable via SQL on Ceta Research. Filter by exchange (BSE or NSE) and see what passes today.

The full backtest code (Python + DuckDB) is available in our GitHub repository.


Data: Ceta Research, FMP financial data warehouse. Universe: BSE + NSE. Benchmark: Sensex. Semi-annual rebalance, equal weight, 2000-2025. All returns in INR.

Read more