Net Debt/EBITDA Screen: 22 Exchanges, 25 Years, One Signal
We ran the same Net Debt/EBITDA screen across 22 global exchanges, same signal, same parameters, same transaction cost model, from 2000 to 2025. The results range from 21.55% CAGR in India to 1.44% in Israel. The spread is large enough that the exchange you apply this signal to matters more than the signal parameters themselves.
Contents
- The Signal
- Full Results Table
- What We Found
- The Patterns That Explain the Variance
- Where This Works Best
- Methodology Notes
- Run It Yourself
- Limitations
A key finding: when measured against local benchmarks instead of SPY, the signal works in far more markets than it appears. Several exchanges that "underperformed SPY" actually beat their own local index by 2-3% annually.
The Signal
Net Debt/EBITDA < 2x and > -5x (excludes extreme net-cash anomalies), ROE > 10%, Market Cap > local-currency equivalent (~$200-500M USD per exchange). Top 30 stocks by lowest ratio, equal weight. Quarterly rebalance (January, April, July, October). 45-day filing lag for point-in-time data. Transaction costs: size-tiered model. Execution: market-on-close next trading day (MOC).
Net Debt = Total Debt minus Cash and Cash Equivalents. The ratio measures how many years of operating earnings (EBITDA) it would take to repay net debt. A value below 2x means the company could theoretically clear its debt in under two years, the threshold PE firms typically use to classify a company as conservatively leveraged.
Market cap thresholds are set per exchange in local currency (FMP stores marketCap in local currency, not USD). Examples: ₹20B (~$240M USD) for India, SEK 5B (~$460M USD) for Sweden, ₩500B (~$370M USD) for Korea. This ensures consistent filtering across exchanges.
Data: Ceta Research (FMP financial data warehouse).
Full Results Table
Where local benchmarks are available, excess is measured vs the local index. Where not available, excess is vs SPY. The "Benchmark" column shows which index was used.
| Exchange | Country | CAGR | Excess | Benchmark | Sharpe | MaxDD | Cash% | Avg Stocks |
|---|---|---|---|---|---|---|---|---|
| BSE+NSE | India | 21.55% | +10.43% | Sensex | 0.504 | -50.2% | 10% | 22.5 |
| STO | Sweden | 10.29% | +2.28% | SPY | 0.412 | -53.0% | 9% | 25.3 |
| SAO | Brazil | 10.16% | +1.21% | Bovespa | -0.014 | -62.4% | 13% | 19.6 |
| TSX | Canada | 7.91% | +2.83% | TSX Comp | 0.301 | -40.9% | 0% | 23.5 |
| MIL | Italy | 7.41% | -0.60% | SPY | 0.220 | -56.6% | 17% | 22.4 |
| SHZ+SHH | China | 7.35% | +3.16% | SSE Comp | 0.165 | -59.1% | 0% | 22.2 |
| XETRA | Germany | 7.18% | +2.06% | DAX | 0.230 | -66.4% | 0% | 18.8 |
| SIX | Switzerland | 6.82% | -1.20% | SPY | 0.331 | -48.2% | 0% | 19.1 |
| KSC | Korea | 6.79% | +1.98% | KOSPI | 0.246 | -48.5% | 22% | 25.3 |
| JPX | Japan | 6.48% | +3.08% | Nikkei 225 | 0.329 | -53.1% | 5% | 25.8 |
| TAI | Taiwan | 6.35% | +1.97% | TAIEX | 0.268 | -57.8% | 20% | 26.9 |
| LSE | UK | 5.49% | +4.13% | FTSE 100 | 0.088 | -50.0% | 0% | 12.1 |
| NYSE+NASDAQ+AMEX | US | 5.13% | -2.89% | SPY | 0.123 | -55.3% | 0% | 22.1 |
| AMS | Netherlands | 5.01% | -3.01% | SPY | 0.116 | -57.7% | 0% | 16.1 |
| HKSE | Hong Kong | 4.20% | +2.43% | Hang Seng | 0.042 | -60.2% | 0% | 20.0 |
| ASX | Australia | 4.00% | -0.21% | ASX 200 | 0.027 | -60.0% | 0% | 22.1 |
| SAU | Saudi Arabia | 3.99% | -4.03% | SPY | 0.027 | -50.8% | 28% | 23.3 |
| OSL | Norway | 3.98% | -4.04% | SPY | 0.056 | -60.7% | 28% | 15.1 |
| SET | Thailand | 3.92% | -4.09% | SPY | 0.072 | -57.8% | 17% | 26.9 |
| BME | Spain | 3.12% | -4.89% | SPY | 0.007 | -57.2% | 20% | 18.2 |
| SES | Singapore | 1.95% | -0.22% | STI | -0.034 | -48.9% | 17% | 15.8 |
| TLV | Israel | 1.44% | -6.57% | SPY | -0.102 | -53.3% | 28% | 19.2 |
When measured against local benchmarks: 12 of 22 exchanges show positive excess. When all benchmarked against SPY: only 4 of 22 beat it. This distinction matters. SPY's dominance by mega-cap tech makes it an unfair comparison for non-US markets. A Korean stock screen beating KOSPI by 2% is a real signal. That same screen "underperforming SPY" was masking genuine alpha.

What We Found
The signal works in more markets than it appears, once you use the right benchmark.
The earlier version of this analysis benchmarked everything against SPY and excluded Japan and the UK. Using local-currency benchmarks where available and adding the two previously excluded exchanges, the picture shifts meaningfully:
- India remains the strongest result by a wide margin (+10.43% excess vs Sensex). Financial conservatism is genuinely rewarded in a market where credit risk is higher, defaults happen, and the gap between a leveraged and unleveraged balance sheet has historically been wide.
- UK (+4.13% vs FTSE 100) is a surprise. Previously excluded due to a stale data-pipeline assumption, the LSE produced the second-highest local-benchmark excess of any exchange. The FTSE 100's low 1.36% CAGR over this period (dragged down by banks and energy) means the low-leverage screen easily outperformed.
- China (+3.16% vs SSE Composite), Japan (+3.08% vs Nikkei), Canada (+2.83% vs TSX Composite), Hong Kong (+2.43% vs Hang Seng), Sweden (+2.28% vs SPY), Germany (+2.06% vs DAX), Korea (+1.98% vs KOSPI), and Taiwan (+1.97% vs TAIEX) all show meaningful positive excess against local benchmarks.
- Brazil (+1.21% vs Bovespa) beats its local benchmark but has a negative Sharpe ratio when adjusted for Brazil's 10.5% risk-free rate.
- Australia (-0.21% vs ASX 200) and Singapore (-0.22% vs STI) are essentially flat against local benchmarks, not the large underperformers they appeared to be vs SPY.
The exchanges that truly underperform are those still benchmarked against SPY with no local alternative available in our data: Israel (-6.57%), Spain (-4.89%), Norway (-4.04%), Thailand (-4.09%), Saudi Arabia (-4.03%), and the Netherlands (-3.01%).

The Patterns That Explain the Variance
Pattern 1: Local benchmark vs SPY changes the story
The biggest insight from this update: most of the apparent underperformance in earlier analysis came from comparing local equity markets to SPY, which is increasingly a bet on US mega-cap tech. Germany's 7.18% CAGR "underperformed SPY" but beat the DAX by 2.06% annually. That's genuine alpha in the German equity market. The same applies to Korea, Taiwan, Hong Kong, and China.
Pattern 2: Emerging markets amplify the signal
India (+10.43% vs Sensex) clearly outperforms. The credit-quality premium is larger in markets where leverage genuinely matters. India has had sustained periods of high credit risk, currency stress, and corporate governance pressure that directly punish leveraged companies. The signal captures that genuine differential.
Pattern 3: High cash periods structurally limit results
Israel (28% cash periods), Saudi Arabia (28%), Norway (28%), Korea (22%), Taiwan (20%), and Spain (20%) all have elevated cash periods, quarters where fewer than 10 stocks qualified and the portfolio sat in cash. Cash periods hurt both returns and statistical confidence.
Pattern 4: Canada has the best drawdown profile
Canada (TSX) beats its local benchmark by +2.83% with the best max drawdown of any positive-excess exchange (-40.9%). Canada's equity market has a mix of financials, energy, and diversified industrials where Net Debt/EBITDA filtering selects genuine quality. Zero cash periods across 25 years.
Where This Works Best
If you're using this screen, the evidence points toward:
- India, strongest absolute result and best risk-adjusted (+10.43% vs Sensex, Sharpe 0.504)
- UK, highest local-benchmark excess after India (+4.13% vs FTSE 100)
- China (+3.16% vs SSE Composite) and Japan (+3.08% vs Nikkei), strong Asian results
- Canada, best drawdown among outperformers (-40.9%), +2.83% vs TSX Composite
- Sweden, best developed-market Sharpe (0.412), +2.28% vs SPY
If you're applying it in the US, Netherlands, or Israel, the data suggests underperformance against both SPY and (where measurable) local benchmarks. The US result (-2.89% vs SPY) reflects the mega-cap tech concentration problem that affects all non-momentum fundamental screens.
Methodology Notes
All 22 exchanges use identical signal parameters (same ratio thresholds, same portfolio construction, same transaction cost model, same filing lag). Market cap thresholds differ by exchange and are set to target liquid mid-to-large cap stocks (~$200-500M USD equivalent). Risk-free rates are region-specific (used for Sharpe/Sortino ratio calculations). All backtests use next-day close execution (MOC model) to avoid same-bar entry bias.
Run It Yourself
Run the screen on India (best result):
SELECT
k.symbol,
p.companyName,
p.exchange,
ROUND(k.netDebtToEBITDATTM, 2) AS net_debt_ebitda,
ROUND(k.returnOnEquityTTM * 100, 1) AS roe_pct,
ROUND(k.marketCap / 1e9, 1) AS mktcap_bn
FROM key_metrics_ttm k
JOIN profile p ON k.symbol = p.symbol
WHERE k.netDebtToEBITDATTM < 2.0
AND k.netDebtToEBITDATTM > -5.0
AND k.returnOnEquityTTM > 0.10
AND k.marketCap > 20000000000 -- ₹20B (~$240M USD)
AND p.exchange IN ('BSE', 'NSE')
ORDER BY k.netDebtToEBITDATTM ASC
LIMIT 30
Run this query on Ceta Research
Run the full multi-exchange backtest:
cd backtests
python3 net-debt-ebitda/backtest.py --global --output results/exchange_comparison.json --verbose
Per-exchange:
python3 net-debt-ebitda/backtest.py --preset india --verbose
python3 net-debt-ebitda/backtest.py --preset sweden --verbose
python3 net-debt-ebitda/backtest.py --preset us --verbose
Limitations
FX effects. Comparing local equity returns across 22 countries in USD introduces currency noise. Some of the India excess return is rupee-era tailwind. Some of the Israel and Australia underperformance includes FX headwinds.
Cash period bias. Exchanges with frequent cash periods (Israel, Saudi Arabia, Norway) have shorter effective history. Comparing their CAGR directly to a fully-invested exchange (US, India) is misleading.
Single-factor screen. This test isolates one signal in isolation. Real portfolios combine multiple signals. Net Debt/EBITDA below 2x combined with additional quality or momentum filters would produce different results.
Survivorship. FMP data includes delisted stocks, which reduces survivorship bias. However, coverage quality varies by exchange and by time period.
Local benchmarks are not available for all exchanges. Exchanges still benchmarked against SPY (Italy, Switzerland, Netherlands, Norway, Spain, Thailand, Saudi Arabia, Israel) may show different results against a proper local index. The SPY benchmark makes these exchanges look worse than they may actually perform locally.
Related posts: US flagship | India | Sweden
Data: Ceta Research (FMP financial data warehouse), 2000-2025. Full methodology: backtests/METHODOLOGY.md. Backtest code: backtests/net-debt-ebitda/.