Dividend Sustainability on German Stocks: 11.53% CAGR Over 25 Years
The dividend sustainability screen on XETRA stocks returned 11.53% CAGR with a 0.613 Sharpe ratio and 6.49% annual excess over the DAX. Down capture of just -6.7% vs the local benchmark.
Germany delivered strong risk-adjusted returns with the dividend sustainability screen. 11.53% CAGR with a 0.613 Sharpe ratio, beating the local DAX by 6.49% annually. The strategy was fully invested all 25 years (zero cash periods), held an average of 21.8 stocks per period, and produced that excess with only 15.55% volatility.
Contents
- Method
- The Screen (SQL)
- What We Found
- 25 years of data. 6.49% annual excess over DAX. Best Sharpe in the global series (0.613).
- Year-by-year returns
- 2000-2003: dot-com protection, German style
- 2008: limited damage
- 2014-2016: European recovery
- 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: XETRA, market cap > 500M EUR (~$545M USD) Period: 2000-2025 (25 years) Benchmark: DAX (Deutsche Aktienindex, EUR) 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 ('XETRA')
),
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 ('XETRA')
),
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 ('XETRA')
),
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 > 500e6
)
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][SUSTAINABILITY_GERMANY_QUERY_URL]
What We Found

25 years of data. 6.49% annual excess over DAX. Best Sharpe in the global series (0.613).
| Metric | Sustainability (Germany) | DAX |
|---|---|---|
| CAGR | 11.53% | 5.04% |
| Volatility | 15.55% | - |
| Max Drawdown | -37.46% | - |
| Sharpe Ratio | 0.613 | - |
| Sortino Ratio | 1.363 | - |
| Win Rate (annual) | 60% | - |
| Up Capture | 90.5% | - |
| Down Capture | -6.7% | - |
| Beta | 0.541 | - |
| Alpha | 7.88% | - |
| Avg Stocks per Period | 21.8 | - |
| Cash Periods | 0 of 25 | - |
| Avg Sustainability Score | 8.9/10 | - |
What makes Germany stand out isn't raw return (India and the US matched or exceeded it) but how those returns were earned relative to the local market. Volatility of 15.55% is modest for a developed-market equity strategy. Down capture of -6.7% means the strategy actually tilted positive during the DAX's losing years on average. The Sharpe ratio of 0.613 is the highest of any exchange we tested.
Zero cash periods. The XETRA universe consistently produced enough qualifying stocks. German industrials (the Mittelstand companies) tend to carry low debt, generate strong cash flows, and maintain disciplined payout policies. These are exactly the traits the sustainability score rewards.
Year-by-year returns

| Year | Sustainability | DAX | Excess |
|---|---|---|---|
| 2000 | +29.2% | -12.2% | +41.4% |
| 2001 | -5.6% | -31.3% | +25.7% |
| 2002 | -8.6% | -22.8% | +14.2% |
| 2003 | +37.1% | +23.4% | +13.7% |
| 2004 | +11.5% | +15.6% | -4.1% |
| 2005 | +19.7% | +23.6% | -3.9% |
| 2006 | +28.5% | +39.3% | -10.8% |
| 2007 | -21.6% | -20.8% | -0.8% |
| 2008 | -20.2% | -25.2% | +5.0% |
| 2009 | +33.5% | +23.6% | +9.9% |
| 2010 | +20.9% | +27.6% | -6.7% |
| 2011 | +10.3% | -12.7% | +23.0% |
| 2012 | +16.1% | +21.8% | -5.7% |
| 2013 | +10.4% | +25.3% | -14.9% |
| 2014 | +21.4% | +12.0% | +9.4% |
| 2015 | +4.7% | -12.5% | +17.2% |
| 2016 | +30.2% | +28.5% | +1.7% |
| 2017 | +15.0% | -1.9% | +16.9% |
| 2018 | +3.8% | +2.4% | +1.4% |
| 2019 | +4.6% | +0.7% | +3.9% |
| 2020 | +31.2% | +24.1% | +7.1% |
| 2021 | +7.3% | -18.4% | +25.7% |
| 2022 | +17.3% | +25.9% | -8.6% |
| 2023 | +4.4% | +14.3% | -9.9% |
| 2024 | +14.6% | +29.5% | -14.9% |
2000-2003: dot-com protection, German style
+29.2% in 2000 while the DAX dropped 12.2%. German sustainability stocks weren't exposed to the tech bubble. The companies that scored 7+/10 were industrials and consumer staples with real earnings, low leverage, and strong cash generation. The pattern continued in 2001 and 2002 as the DAX shed 31.3% and 22.8% while the strategy lost far less. These three years alone built a compounding advantage that persisted.
2008: limited damage
The strategy lost 20.2% vs the DAX's 25.2%. The sustainability screen's D/E filter excluded highly leveraged companies, and the FCF component kept cash-burning businesses out of the portfolio. The max drawdown of -37.46% reflects a deeper multi-year trough than the 2008 figure alone suggests.
2014-2016: European recovery
Three strong years: +21.4%, +4.7%, +30.2%. German companies benefited from ECB quantitative easing and the eurozone recovery. Sustainability stocks with low debt and strong ROE were well positioned. The 2015 return of +4.7% vs the DAX's -12.5% shows the screen's defensive character clearly.
Limitations
- Concentrated market. XETRA has fewer large-cap stocks than US exchanges. The average of 21.8 stocks per period means the portfolio sometimes can't fill all 30 slots, increasing concentration risk.
- Currency risk. Returns are in EUR. USD investors face EUR/USD conversion effects.
- Sector skew. German industrials and autos dominate the sustainable dividend universe. When these sectors sell off (as in 2007), the portfolio has limited diversification.
Takeaway
Germany is the risk-adjusted champion of the dividend sustainability screen. 11.53% CAGR, 0.613 Sharpe, -6.7% down capture vs DAX, and 6.49% annual excess. The XETRA universe is rich with the kind of companies this strategy loves: family-controlled industrials with conservative balance sheets, strong cash generation, and disciplined dividend policies. The strategy never went to cash in 25 years, and the average sustainability score of 8.9/10 is the second-highest of any exchange tested. If you want steady, risk-efficient compounding from dividend stocks, Germany's the place to look.
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 Indian Stocks (NSE)][INDIA_BLOG_URL] - 15.81% CAGR, the standout - [Dividend Sustainability on Canadian Stocks (TSX)][CANADA_BLOG_URL] - 9.54% CAGR - [Dividend Sustainability on Swedish Stocks (STO)][SWEDEN_BLOG_URL] - 10.15% CAGR - [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][SUSTAINABILITY_GERMANY_QUERY_URL]. 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: XETRA, market cap > 500M EUR. Annual rebalance (July), equal weight top 30 by sustainability score, 2000-2025.