Revenue Acceleration Beat the DAX by 3.20% a Year. Look at How.
Revenue acceleration beat the DAX by 3.20% a year and posted the shallowest drawdown of any market we tested, -21.52%. The catch is that it won in only 12 of 25 years.
The revenue acceleration strategy works in Germany, and it works for an unflattering reason. Over 25 years it returned 7.71% annualized against 4.51% for the DAX, a +3.20% annual gap. It also edged the S&P 500, at 7.71% vs 7.33%.
Contents
- Method
- What We Found
- Better return, far smaller losses.
- Year-by-Year Returns
- The crash years carry the whole result.
- 2005 and 2023 are the cost.
- Why Germany may be structurally different.
- Limitations
- Takeaway
- Part of a Series
- Run This Screen Yourself
- References
Then look at where the gap comes from. The portfolio captured only 33.8% of the DAX's down moves and 81.4% of its up moves, and it beat the index in just 12 of 25 years. This isn't a signal that picks winners. It's a signal that in Germany happens to select companies that fall less when everything falls, and the German market fell hard enough, often enough, for that to add up.
Data: FMP financial data warehouse, 2000–2025. Updated August 2026.
Method
Data source: Ceta Research (FMP financial data warehouse) Universe: XETRA (Germany), market cap > EUR 500M Period: 2000–2025 (25 years) Rebalancing: Annual (April 1), equal weight Execution: Next-day close. The screen is computed on the rebalance date and filled at the following session's close Benchmark: DAX (^GDAXI), with the S&P 500 (SPY) reported as a secondary cross-market yardstick Risk-free rate: 2.0% (German Bund 10-year), applied to the portfolio and both benchmarks Cash rule: Hold cash if fewer than 10 stocks qualify Transaction costs: Size-tiered model (0.1–0.5% one-way)
Signal: revenue growth acceleration across 3 consecutive annual filings, filtered for ROE > 10%, debt/equity < 1.5, minimum market cap. Top 30 by acceleration magnitude.
Why the DAX and not SPY. A German portfolio earns EUR. Measuring it against a USD index mixes the strategy's performance with 25 years of EUR/USD drift. The DAX is the right yardstick, and it's an unusually fair one: unlike most national indices, the DAX is a performance index that reinvests dividends, so comparing a total-return portfolio to it is like for like. Both comparisons appear below.
What We Found

Better return, far smaller losses.
| Metric | Revenue Accel (XETRA) | DAX | S&P 500 |
|---|---|---|---|
| CAGR | 7.71% | 4.51% | 7.33% |
| Total Return | 541% | 201% | 486% |
| Max Drawdown | -21.52% | -65.15% | -39.33% |
| Volatility (ann.) | 21.61% | 26.27% | 21.07% |
| Sharpe Ratio | 0.264 | 0.096 | 0.253 |
| Up Capture | 81.4% | N/A | 81.7% |
| Down Capture | 33.8% | N/A | 34.4% |
| Win Rate | 48.0% | N/A | 52.0% |
| Cash Periods | 0 of 25 | N/A | N/A |
| Avg Stocks | 15.2 | N/A | N/A |
Zero cash periods means the German market consistently produced enough qualifying companies to stay invested every year. The small average stock count, 15.2, reflects the narrower universe of XETRA listings, but the strategy never fell below the 10-stock minimum.
The -21.52% max drawdown is the shallowest of the 15 markets we tested, and the contrast with the DAX is stark: the index lost 65% peak to trough across the dot-com unwind, while the strategy lost a fifth. That single fact explains most of the 25-year gap. A portfolio that avoids a 65% hole doesn't need to win often to finish ahead.
Year-by-Year Returns

Each row runs April to April, so "2019" means April 2019 to April 2020.
| Year | Rev Accel (XETRA) | DAX | Excess vs DAX | Excess vs S&P 500 |
|---|---|---|---|---|
| 2000 | +8.40% | -22.46% | +30.9% | +32.1% |
| 2001 | +1.39% | -7.81% | +9.2% | +0.3% |
| 2002 | -21.52% | -51.25% | +29.7% | -0.2% |
| 2003 | +50.17% | +54.77% | -4.6% | +18.0% |
| 2004 | +17.44% | +8.33% | +9.1% | +12.8% |
| 2005 | +3.21% | +38.52% | -35.3% | -9.0% |
| 2006 | +14.56% | +15.35% | -0.8% | +3.0% |
| 2007 | +4.97% | -2.30% | +7.3% | +6.9% |
| 2008 | -19.16% | -35.35% | +16.2% | +18.2% |
| 2009 | +66.09% | +42.68% | +23.4% | +20.9% |
| 2010 | +2.25% | +14.76% | -12.5% | -12.2% |
| 2011 | -13.20% | -1.65% | -11.6% | -21.9% |
| 2012 | +11.96% | +12.57% | -0.6% | -1.1% |
| 2013 | +29.39% | +21.14% | +8.2% | +6.5% |
| 2014 | +33.64% | +24.36% | +9.3% | +22.2% |
| 2015 | -2.09% | -17.93% | +15.8% | -4.1% |
| 2016 | +17.56% | +24.79% | -7.2% | +1.1% |
| 2017 | +6.90% | -2.08% | +9.0% | -4.6% |
| 2018 | -7.41% | -2.06% | -5.3% | -20.6% |
| 2019 | -4.86% | -18.58% | +13.7% | +5.3% |
| 2020 | +47.35% | +58.95% | -11.6% | -16.6% |
| 2021 | -9.59% | -4.57% | -5.0% | -23.5% |
| 2022 | -3.31% | +7.32% | -10.6% | +5.2% |
| 2023 | -2.31% | +17.34% | -19.6% | -30.4% |
| 2024 | +7.81% | +22.47% | -14.7% | -2.4% |
The crash years carry the whole result.
Four years produced the excess: 2000 (+30.9%), 2002 (+29.7%), 2009 (+23.4%), and 2008 (+16.2%). All four are years the DAX was falling or recovering from a fall. Take those four out and the remaining 21 years compound at 8.56% against the index's 10.81%. The strategy trails everywhere except the crashes.
That's the honest shape of this result. Revenue acceleration in Germany did not beat the DAX by picking better growth stories. It beat the DAX by not owning what blew up. In 2002 the index fell 51% and the portfolio fell 22%. In 2000 the index fell 22% and the portfolio gained 8%.
2005 and 2023 are the cost.
The two worst years are both strong-market years the portfolio sat out.
2005: Portfolio +3.21% vs DAX +38.52%. A -35.3% gap, the largest in the German data. The strategy held quality accelerators through a year when the broad German market rerated violently, and 3% in a 38% market is a real cost.
2023: Portfolio -2.31% vs DAX +17.34%, and -30.4% against the S&P 500. German industrials and manufacturers that had accelerated revenue through the post-COVID inventory rebuild saw that cycle reverse sharply. The portfolio was holding exactly those names.
This is the trade-off in one line: you give up participation in sharp recoveries to avoid the sharp declines. Over 25 years in Germany, that was the winning side of the trade. Over a shorter window that included 2005 or 2023 and not 2002, it wouldn't have been.
Why Germany may be structurally different.
German XETRA listings skew toward industrials, capital goods, chemicals, and specialty manufacturing, sectors where revenue cycles are driven by multi-year capex orders rather than quarterly software subscriptions. Revenue acceleration in these sectors tends to be stickier and less prone to the violent reversals that plague tech-heavy portfolios.
The quality filter (ROE > 10%, D/E < 1.5) also does more work in Germany, where the full listing universe includes more capital-intensive businesses with weaker balance sheets. The filter concentrates the portfolio in German exporters and precision manufacturers with durable franchises.
This is consistent with the 33.8% down capture: these companies don't participate as much in risk-on surges, and they don't collapse as much in risk-off selloffs. It's speculation about mechanism, not a proven attribution. The backtest doesn't break the portfolio down by sector.
Limitations
A 48% win rate is not a reliable edge. The strategy beat the DAX in 12 of 25 years. The positive average comes from a handful of crisis years, not from consistent outperformance. With 25 annual observations and 21.6% volatility, a +3.20% gap sits well inside the range you'd expect from chance.
The result depends on the start date. Beginning in April 2000, right at the top of the dot-com peak, hands a defensive strategy its best possible setup. Start in April 2003 instead and the strategy returns 9.54% against the DAX's 10.30%. Start in 2010 and it trails by 2.50 points a year.
Small average stock count. With 15.2 average stocks, idiosyncratic risk is higher than a more diversified portfolio. Any single company failure has a larger impact.
Survivorship bias. Current listings only. Companies that delisted aren't tracked through failure.
The universe includes closed-end funds. Funds report investment income in the revenue field, so they can post huge "acceleration" and enter the top 30. Germany is the least affected market in the study, with 0 or 1 fund in the screened 30 across the years we checked, and excluding funds entirely moves the CAGR from 7.71% to 7.78%.
Currency. Portfolio and DAX returns are both in EUR, so that comparison is clean. The S&P 500 column is USD and is not currency-adjusted.
Takeaway
Revenue acceleration in Germany returned 7.71% a year against 4.51% for the DAX and 7.33% for the S&P 500, with the shallowest drawdown of any market in this study at -21.52%.
Read the mechanism before the headline. A 33.8% down capture and a 48% win rate describe a portfolio that wins by losing less, not by picking better. The entire 25-year advantage is concentrated in four crisis years. That's still a useful property, and it's the opposite of what the same screen does in the US, where the identical filters produce a portfolio with 107% down capture.
If you want a German equity sleeve that participates in most of the upside and sits out the worst of the drawdowns, this screen produced that for 25 years. If you want alpha from growth selection, this isn't it.
Part of a Series
This post is part of our Revenue Acceleration global exchange comparison:
- US: 3.56% CAGR, -3.77% vs the S&P 500, and 107% down capture. The identical screen, the opposite result
- Canada: 8.39% CAGR, +1.07% over the S&P 500 and +4.34% over the TSX Composite
- Revenue Acceleration: 15-Exchange Global Comparison: from Canada +1.07% to Hong Kong -11.49% against the S&P 500
Run This Screen Yourself
The current revenue acceleration screen for German stocks. It adds guards the backtest doesn't use: funds and ETFs are dropped, share classes deduped, and growth and ROE bounded so restatement artifacts don't take the top rows.
WITH inc AS (
SELECT symbol, revenue, dateEpoch,
ROW_NUMBER() OVER (PARTITION BY symbol ORDER BY dateEpoch DESC) AS rn
FROM income_statement
WHERE period = 'FY' AND revenue > 0
),
rev_calc AS (
SELECT r1.symbol,
(r1.revenue - r2.revenue) / NULLIF(r2.revenue, 0) AS growth_current,
(r2.revenue - r3.revenue) / NULLIF(r3.revenue, 0) AS growth_prior,
(r1.revenue - r2.revenue) / NULLIF(r2.revenue, 0)
- (r2.revenue - r3.revenue) / NULLIF(r3.revenue, 0) AS acceleration
FROM inc r1
JOIN inc r2 ON r1.symbol = r2.symbol AND r2.rn = 2
JOIN inc r3 ON r1.symbol = r3.symbol AND r3.rn = 3
WHERE r1.rn = 1
),
met AS (
SELECT symbol, returnOnEquity, marketCap,
ROW_NUMBER() OVER (PARTITION BY symbol ORDER BY dateEpoch DESC) AS rn
FROM key_metrics WHERE period = 'FY'
),
rat AS (
SELECT symbol, debtToEquityRatio,
ROW_NUMBER() OVER (PARTITION BY symbol ORDER BY dateEpoch DESC) AS rn
FROM financial_ratios WHERE period = 'FY'
)
SELECT rc.symbol,
p.companyName,
p.sector,
ROUND(rc.growth_current * 100, 1) AS current_growth_pct,
ROUND(rc.growth_prior * 100, 1) AS prior_growth_pct,
ROUND(rc.acceleration * 100, 1) AS acceleration_ppt,
ROUND(m.returnOnEquity * 100, 1) AS roe_pct,
ROUND(r.debtToEquityRatio, 2) AS de_ratio,
ROUND(m.marketCap / 1e9, 1) AS mktcap_b
FROM rev_calc rc
JOIN met m ON rc.symbol = m.symbol AND m.rn = 1
JOIN rat r ON rc.symbol = r.symbol AND r.rn = 1
JOIN profile p ON rc.symbol = p.symbol
WHERE rc.growth_current > rc.growth_prior
AND rc.growth_current > 0.05
AND rc.growth_current < 3.0
AND rc.growth_prior > -0.5
AND m.returnOnEquity > 0.10
AND m.returnOnEquity < 1.0
AND r.debtToEquityRatio >= 0
AND r.debtToEquityRatio < 1.5
AND m.marketCap > 500000000
AND p.exchange IN ('XETRA')
AND p.isFund = false AND p.isEtf = false AND p.isActivelyTrading = true
QUALIFY ROW_NUMBER() OVER (PARTITION BY p.companyName ORDER BY rc.symbol) = 1
ORDER BY rc.acceleration DESC
LIMIT 30
Run this screen on Ceta Research
References
- Chan, L. K. C., Jegadeesh, N., & Lakonishok, J. (1996). "Momentum Strategies." Journal of Finance, 51(5), 1681–1713.
- Lakonishok, J., Shleifer, A., & Vishny, R. (1994). "Contrarian Investment, Extrapolation, and Risk." Journal of Finance, 49(5), 1541–1578.
Data: Ceta Research, FMP financial data warehouse. Universe: XETRA. Annual rebalance (April), next-day close execution, equal weight, transaction costs included, 2000–2025. Not investment advice.