Dividend Sustainability on Indian Stocks (NSE): 15.81% CAGR Over 25 Years
The dividend sustainability screen on NSE stocks returned 15.81% CAGR over 25 years with 3.75% annual excess over the Sensex. Down capture of -13.3% means the strategy gained on average during market declines.
India produced the highest returns of any exchange we tested with the dividend sustainability screen. 15.81% CAGR from 2000 to 2025, turning $10,000 into roughly $390,000. That's 3.75% annual excess over the Sensex, with a max drawdown of just -13.5%. The strategy also posted positive returns in 2008 (+26.4%) while the Sensex returned 7.3%.
Contents
- Method
- The Screen (SQL)
- What We Found
- 25 years of data. 3.75% annual excess over the Sensex.
- Year-by-year returns
- 2008: a year of genuine protection
- 2005-2006: first two invested years
- 2020-2023: four years of dominance
- Limitations
- Takeaway
- Part of a Series
- References
- Run This Screen Yourself
Data: FMP financial data warehouse, 2000–2025. Updated March 2026.
Method
We applied the same 5-component sustainability score used in our US dividend sustainability study. Five dimensions scored 0-2 each (payout ratio, debt/equity, FCF coverage, ROE, Piotroski F-Score), total 0-10. Minimum score 7, yield above 2%, top 30 by score, equal weight, annual July rebalance. See the US blog for full methodology and score breakdown.
Universe: NSE (National Stock Exchange), market cap > 20B INR (~$240M USD) Period: 2000-2025 (25 years) Benchmark: Sensex (BSE Sensex, INR) Execution: Next-day close (market-on-close after signal)
The Screen (SQL)
WITH latest_ratios AS (
SELECT r.symbol, r.dividendPayoutRatio, r.debtToEquityRatio,
r.dividendYield, r.date,
ROW_NUMBER() OVER (PARTITION BY r.symbol ORDER BY r.date DESC) AS rn
FROM financial_ratios r
JOIN profile p ON r.symbol = p.symbol
WHERE r.period = 'FY'
AND r.dividendPayoutRatio > 0
AND r.dividendYield IS NOT NULL
AND p.exchange IN ('NSE')
),
latest_cf AS (
SELECT c.symbol, c.freeCashFlow, c.commonDividendsPaid, c.date,
ROW_NUMBER() OVER (PARTITION BY c.symbol ORDER BY c.date DESC) AS rn
FROM cash_flow_statement c
JOIN profile p ON c.symbol = p.symbol
WHERE c.period = 'FY'
AND c.commonDividendsPaid < 0
AND p.exchange IN ('NSE')
),
latest_metrics AS (
SELECT k.symbol, k.returnOnEquity, k.marketCap, k.date,
ROW_NUMBER() OVER (PARTITION BY k.symbol ORDER BY k.date DESC) AS rn
FROM key_metrics k
JOIN profile p ON k.symbol = p.symbol
WHERE k.period = 'FY'
AND k.marketCap IS NOT NULL
AND p.exchange IN ('NSE')
),
latest_scores AS (
SELECT symbol, piotroskiScore FROM scores
),
scored AS (
SELECT r.symbol, r.date,
ROUND(r.dividendPayoutRatio * 100, 1) AS payout_pct,
ROUND(r.debtToEquityRatio, 2) AS debt_equity,
ROUND(c.freeCashFlow / NULLIF(ABS(c.commonDividendsPaid), 0), 2) AS fcf_coverage,
ROUND(k.returnOnEquity * 100, 1) AS roe_pct,
s.piotroskiScore AS piotroski,
ROUND(r.dividendYield * 100, 2) AS yield_pct,
ROUND(k.marketCap / 1e9, 1) AS mktcap_bn,
CASE WHEN r.dividendPayoutRatio < 0.5 THEN 2
WHEN r.dividendPayoutRatio < 0.8 THEN 1 ELSE 0 END AS c_payout,
CASE WHEN r.debtToEquityRatio >= 0 AND r.debtToEquityRatio < 0.5 THEN 2
WHEN r.debtToEquityRatio >= 0 AND r.debtToEquityRatio < 1.5 THEN 1
ELSE 0 END AS c_debt,
CASE WHEN c.freeCashFlow > 0 AND c.commonDividendsPaid < 0
AND c.freeCashFlow / ABS(c.commonDividendsPaid) > 2 THEN 2
WHEN c.freeCashFlow > 0 AND c.commonDividendsPaid < 0
AND c.freeCashFlow / ABS(c.commonDividendsPaid) > 1 THEN 1
ELSE 0 END AS c_fcf,
CASE WHEN k.returnOnEquity > 0.15 THEN 2
WHEN k.returnOnEquity > 0.08 THEN 1 ELSE 0 END AS c_roe,
CASE WHEN s.piotroskiScore >= 7 THEN 2
WHEN s.piotroskiScore >= 5 THEN 1 ELSE 0 END AS c_piotroski
FROM latest_ratios r
JOIN latest_cf c ON r.symbol = c.symbol AND c.rn = 1
JOIN latest_metrics k ON r.symbol = k.symbol AND k.rn = 1
LEFT JOIN latest_scores s ON r.symbol = s.symbol
WHERE r.rn = 1
AND r.dividendYield > 0.02
AND k.marketCap > 20e9
)
SELECT symbol, date, payout_pct, debt_equity, fcf_coverage, roe_pct, piotroski,
yield_pct, mktcap_bn,
c_payout + c_debt + c_fcf + c_roe + COALESCE(c_piotroski, 0) AS sustainability_score,
c_payout, c_debt, c_fcf, c_roe, COALESCE(c_piotroski, 0) AS c_piotroski
FROM scored
WHERE c_payout + c_debt + c_fcf + c_roe + COALESCE(c_piotroski, 0) >= 7
ORDER BY sustainability_score DESC, yield_pct DESC
LIMIT 30
[Run this query on Ceta Research]https://cetaresearch.com/data-explorer?q=aWf5C1boqO&utm_source=blog&utm_campaign=sustainability_india
What We Found

25 years of data. 3.75% annual excess over the Sensex.
| Metric | Sustainability (India) | Sensex |
|---|---|---|
| CAGR | 15.81% | 12.06% |
| Total Return | 3,822% | - |
| Volatility | 24.1% | - |
| Max Drawdown | -13.5% | - |
| Sharpe Ratio | 0.386 | - |
| Sortino Ratio | 1.684 | - |
| Win Rate (annual) | 52% | - |
| Up Capture | 109.5% | - |
| Down Capture | -13.3% | - |
| Beta | 0.670 | - |
| Alpha | 5.59% | - |
| Avg Stocks per Period | 24.5 | - |
| Cash Periods | 5 of 25 | - |
| Avg Sustainability Score | 8.3/10 | - |
$10,000 invested in 2000 grew to roughly $390,000. The strategy had 5 cash years (2000-2004) when fewer than 10 Indian stocks qualified on NSE, then compounded aggressively once the universe matured.
The down capture is -13.3%, meaning the strategy gained on average when the Sensex fell. A beta of 0.670 reflects below-market sensitivity, while 5.59% alpha shows the sustainability filter added consistent value above what the Sensex delivered. The Sortino ratio (1.684) reflects strong downside protection relative to the returns generated. The -13.5% max drawdown is the shallowest across all 13 exchanges in the study.
Year-by-year returns

| Year | Sustainability | Sensex | Excess |
|---|---|---|---|
| 2000 | 0.0% (cash) | -29.3% | +29.3% |
| 2001 | 0.0% (cash) | -4.1% | +4.1% |
| 2002 | 0.0% (cash) | +9.6% | -9.6% |
| 2003 | 0.0% (cash) | +35.2% | -35.2% |
| 2004 | 0.0% (cash) | +49.4% | -49.4% |
| 2005 | +36.5% | +47.0% | -10.4% |
| 2006 | +34.0% | +37.1% | -3.1% |
| 2007 | -2.3% | -6.8% | +4.5% |
| 2008 | +26.4% | +7.3% | +19.2% |
| 2009 | +57.1% | +19.1% | +38.0% |
| 2010 | +4.5% | +7.8% | -3.2% |
| 2011 | +6.8% | -7.5% | +14.4% |
| 2012 | +3.4% | +11.9% | -8.5% |
| 2013 | +60.9% | +32.8% | +28.2% |
| 2014 | +8.5% | +8.1% | +0.3% |
| 2015 | +15.1% | -2.4% | +17.5% |
| 2016 | +26.8% | +14.5% | +12.3% |
| 2017 | +8.6% | +12.9% | -4.4% |
| 2018 | -2.1% | +12.9% | -15.0% |
| 2019 | -11.6% | -10.0% | -1.7% |
| 2020 | +64.0% | +46.4% | +17.6% |
| 2021 | -0.4% | +1.4% | -1.8% |
| 2022 | +40.3% | +22.5% | +17.8% |
| 2023 | +69.2% | +21.8% | +47.3% |
| 2024 | +3.1% | +5.0% | -1.9% |
2008: a year of genuine protection
The Sensex returned just 7.3% in 2008 (in local currency terms). Indian NSE sustainability stocks returned +26.4%. That's 19.2% of excess in a single year. Indian companies scoring 7+ on the sustainability composite carried low debt, generated cash, and maintained strong ROE through the global financial crisis. While global banks imploded, India's dividend payers (dominated by IT services, pharma, and consumer staples) held firm.
2005-2006: first two invested years
The NSE universe didn't reach the 10-stock minimum until 2005 (BSE was included in earlier runs, which pulled in more stocks sooner). The first two invested years returned +36.5% and +34.0%. Both slightly lagged the broader Sensex, but the strategy was finding its footing in a narrower, higher-quality universe. The alpha came later once more NSE companies matured.
2020-2023: four years of dominance
+64.0%, -0.4%, +40.3%, +69.2%. Three of these four years exceeded 40%. The post-COVID recovery was exceptionally kind to Indian quality stocks. Low leverage, strong cash generation, and improving fundamentals were exactly what the market rewarded. 2023 stands out: +69.2% vs +21.8% for the Sensex, a 47-point gap.
Limitations
- 5 cash years at the start. NSE coverage before 2005 was thin. The strategy sat in cash from 2000-2004, which flatters early risk metrics but also means the effective invested backtest is 20 years.
- Currency risk not modeled. Returns are in local currency (INR). USD-based investors would see different results depending on INR/USD movements.
- Higher volatility. 24.1% annualized. The returns justify it, but the ride is rougher than developed markets.
- NSE only. The backtest uses NSE exclusively. Including BSE adds coverage (especially pre-2005) but introduces ~38% duplicate listings, inflating stock counts without adding independent positions. NSE-only is the cleaner, more conservative test.
Takeaway
India holds up well for the dividend sustainability screen when tested on NSE alone. 15.81% CAGR, 5.59% alpha over the Sensex, and negative down capture (-13.3%). When benchmarked against the local index, the sustainability filter consistently added value above what India's own market delivered. The strategy's max drawdown was -13.5%, the shallowest across all 13 exchanges in the study. For investors willing to accept emerging market volatility and currency exposure, NSE sustainability stocks offer strong risk-adjusted returns with genuine downside protection.
Part of a Series
This analysis is part of our dividend sustainability global exchange comparison: - Dividend Sustainability Score: US Stocks - 12.03% CAGR, full methodology - [Dividend Sustainability on German Stocks (XETRA)][GERMANY_BLOG_URL] - 11.53% CAGR, best Sharpe (0.613) - [Dividend Sustainability on Canadian Stocks (TSX)][CANADA_BLOG_URL] - 9.54% CAGR, +5.59% vs TSX Composite - [Dividend Sustainability on UK Stocks (LSE)][UK_BLOG_URL] - 8.52% CAGR, -15.93% max drawdown - [Dividend Sustainability: 13-Exchange Global Comparison][COMPARISON_BLOG_URL] - full comparison table
References
- DeAngelo, H., DeAngelo, L. & Skinner, D. (1992). "Dividends and Losses." Journal of Finance, 47(5), 1837-1863.
- Piotroski, J. (2000). "Value Investing: The Use of Historical Financial Statement Information to Separate Winners from Losers." Journal of Accounting Research, 38, 1-41.
- Benartzi, S., Michaely, R. & Thaler, R. (1997). "Do Changes in Dividends Signal the Future or the Past?" Journal of Finance, 52(3), 1007-1034.
Run This Screen Yourself
Via web UI: [Run the sustainability screen on Ceta Research]https://cetaresearch.com/data-explorer?q=aWf5C1boqO&utm_source=blog&utm_campaign=sustainability_india. The query is pre-loaded. Hit "Run" and see what passes today.
Get your API key at cetaresearch.com. The full backtest code (Python + DuckDB) is on GitHub.
Data: Ceta Research, FMP financial data warehouse. Universe: NSE, market cap > 20B INR. Annual rebalance (July), equal weight top 30 by sustainability score, 2000-2025.