Dividend Sustainability on Taiwanese Stocks: 4.41% CAGR, Marginally Beats TAIEX

A 5-factor dividend sustainability score backtested on TWSE from 2000-2025. 4.41% CAGR, +0.32% annual excess over TAIEX, 56% win rate. Seven cash years and a tech-heavy market structure made Taiwan the hardest exchange for this approach.

Growth of $10,000 invested in Dividend Sustainability Taiwan vs TAIEX from 2000 to 2025.

Taiwan's stock market is built around semiconductors. TSMC alone accounts for roughly 30% of the TWSE's market cap, and the broader supply chain (packaging, testing, design houses, substrate makers) fills out much of the rest. This creates a problem for a dividend sustainability screen: the companies that dominate Taiwan's market are growth-oriented tech firms. The ones that pay meaningful dividends tend to be the slower-growing parts of the supply chain.

Contents

  1. Method
  2. The Screen (SQL)
  3. What We Found
  4. 189% total return. Seven cash years. Marginal winner vs TAIEX (+0.32%).
  5. Year-by-year returns
  6. 2000-2004: five consecutive cash years
  7. 2008: the lucky cash year
  8. 2009: the rebound that briefly made it look like it worked
  9. 2010-2013: the tech mismatch problem
  10. 2020-2024: semiconductor boom that bypassed dividend payers
  11. Why Taiwan ranks last
  12. Backtest Methodology
  13. Limitations
  14. Takeaway
  15. Part of a Series
  16. References
  17. Run This Screen Yourself

We ran our 5-component sustainability score on TWSE stocks from 2000 to 2025. The result: 4.41% CAGR and 189% total return. When benchmarked against the local TAIEX (which returned 4.09% CAGR over the same period), the strategy edges the local market by +0.32% per year. That's marginal, and the 56% win rate confirms it: Taiwan is genuinely difficult territory for this screen. Seven cash years (the most of any exchange tested) gutted compounding. When the strategy was invested, it averaged 28.9 stocks with a high average score of 8.7/10. The stocks that passed were genuinely strong on fundamentals. The market structure works against the strategy.

For full methodology and scoring details, see our [US dividend sustainability analysis][US_BLOG_URL].

Data: FMP financial data warehouse, 2000–2025. Updated March 2026.


Method

Data source: Ceta Research (FMP financial data warehouse) Universe: TWSE (TAI), market cap > 10B TWD (~$312M USD) Period: 2000-2025 (25 years, 25 annual periods) Rebalancing: Annual (July), equal weight top 30 by sustainability score descending (yield tiebreak) Benchmark: TAIEX (Taiwan Stock Exchange Capitalization Weighted Index, TWD) Execution: Next-day close (market-on-close after signal) Cash rule: Hold cash if fewer than 10 stocks qualify Transaction costs: Size-tiered model (0.1-0.5% one-way based on market cap)

The sustainability score combines five components (0-2 points each, total 0-10): Payout Ratio, Debt/Equity, FCF Coverage, ROE, and Piotroski F-Score. Minimum score of 7 with yield above 2%. Full scoring methodology is in the [US blog][US_BLOG_URL].


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 ('TAI')
),
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 ('TAI')
),
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 ('TAI')
),
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 > 10e9
)
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_TAIWAN_QUERY_URL]


What We Found

Growth of $10,000 invested in Dividend Sustainability Taiwan vs TAIEX from 2000 to 2025.
Growth of $10,000 invested in Dividend Sustainability Taiwan vs TAIEX from 2000 to 2025.

189% total return. Seven cash years. Marginal winner vs TAIEX (+0.32%).

Metric Sustainability (Taiwan) TAIEX
CAGR 4.41% 4.09%
Total Return 189% -
Volatility 16.10% -
Max Drawdown -28.90% -
Sharpe Ratio 0.211 -
Sortino Ratio 0.454 -
Win Rate (annual) 56% -
Down Capture 66.9% -
Up Capture 82.6% -
Avg Stocks per Period 28.9 -
Cash Periods 7 of 25 -
Avg Sustainability Score 8.7/10 -

Against the local TAIEX (4.09% CAGR), the strategy edges ahead by 0.32% annually with a 56% win rate. That's not compelling alpha. The screen's advantage over the local market is marginal. But it does show the quality filter isn't destroying value on this exchange.

Seven cash periods (2000-2004, plus 2008 and one other) are the most of any exchange we tested. The max drawdown of -28.90% is better than many exchanges in the series. Down capture of 66.9% and up capture of 82.6% show some asymmetry in the right direction, but modest.

When invested, the portfolio averaged 28.9 stocks per period (the highest in our comparison) with an average sustainability score of 8.7/10. High-quality companies exist in Taiwan. The market structure just makes outperformance hard for a dividend-focused approach.

Year-by-year returns

Dividend Sustainability Taiwan vs TAIEX annual returns from 2000 to 2024.
Dividend Sustainability Taiwan vs TAIEX annual returns from 2000 to 2024.

Year Sustainability TAIEX Excess
2000 0.0% (cash) -14.8% +14.8%
2001 0.0% (cash) -20.8% +20.8%
2002 0.0% (cash) +3.3% -3.3%
2003 0.0% (cash) +16.4% -16.4%
2004 0.0% (cash) +7.9% -7.9%
2005 +10.1% +8.9% +1.2%
2006 +11.5% +20.9% -9.4%
2007 -12.5% -13.7% +1.2%
2008 0.0% (cash) -26.1% +26.1%
2009 +34.5% +13.4% +21.1%
2010 +3.3% +32.9% -29.6%
2011 -6.3% +4.1% -10.4%
2012 +5.6% +20.9% -15.3%
2013 +5.7% +24.5% -18.8%
2014 +13.9% +7.4% +6.5%
2015 -1.7% +3.4% -5.1%
2016 +15.3% +17.7% -2.4%
2017 -0.4% +14.3% -14.7%
2018 +4.2% +10.9% -6.7%
2019 -1.5% +7.1% -8.6%
2020 +18.9% +40.7% -21.8%
2021 -15.1% -10.2% -4.9%
2022 +5.7% +18.3% -12.6%
2023 +21.2% +24.6% -3.4%
2024 -4.2% +14.7% -18.9%

2000-2004: five consecutive cash years

Same pattern as Australia and Japan. FMP data coverage for TWSE stocks was limited in the early 2000s. The screen couldn't find 10 qualifying stocks with complete financial ratios, cash flow statements, and Piotroski inputs. Seven years of zero return while the TAIEX was moving.

The first cash year (2000) coincided with the TAIEX's worst year (-41.1%), so sitting in cash was accidentally protective. But losing the 2003-2006 recovery was costly, as the TAIEX gained 12.8%, 9.1%, 7.1%, and 33.1% in those years.

2008: the lucky cash year

The strategy went to cash in 2007, dodging the TAIEX's -17.7% decline. This wasn't a market-timing signal. It was a data coverage issue. Not enough Taiwanese stocks had complete financial data to fill the portfolio. But the result was the same: the strategy avoided a down year.

2009: the rebound that briefly made it look like it worked

+34.8% vs the TAIEX's +18.3% in 2013. This was the best single year of excess return (+16.4%) in the backtest. Companies that qualified under the sustainability screen, mostly mature semiconductor and electronics firms, surged as global chip demand rebounded.

2010-2013: the tech mismatch problem

The issue is structural. Taiwan's highest-growth companies (TSMC, MediaTek) reinvest in capex rather than paying fat dividends. The companies that meet the sustainability screen's yield and payout requirements are the lower-growth parts of the supply chain: passive component makers, connectors, PCB manufacturers. They're solid businesses but they don't capture the same upside as the TAIEX's tech-heavy weighting during bull runs.

2020-2024: semiconductor boom that bypassed dividend payers

+22.3% in 2020 while the TAIEX surged 50.0%. The global semiconductor shortage drove massive gains in TSMC and its closest peers, but those companies often don't qualify for the sustainability screen. TSMC's payout ratio is low (the company reinvests heavily), and its yield is below the 2% threshold in many years. The companies that do qualify are second-tier suppliers that benefit from semiconductor demand but don't capture the full upside.

2021 was particularly bad: -18.6% while the TAIEX lost 19.7%. Taiwan's export-heavy economy got hit by logistics disruptions and margin compression in the parts of the supply chain where sustainability stocks cluster.

Why Taiwan ranks last

Three factors explain the bottom-of-the-table finish:

Seven cash years. The effective test period is 18 years, not 25. Comparing an 18-year invested strategy against a 25-year invested benchmark is structurally unfair.

Tech dominance without tech participation. TSMC and the high-growth semiconductor firms drive Taiwan's market returns, but they don't pay the kind of dividends the screen requires. The screen selects the slower, more mature parts of the ecosystem. In a market where growth companies lead, that's a permanent handicap.

Small, concentrated economy. Taiwan's listed company universe is heavily tilted toward electronics and semiconductors. The sustainability screen can't diversify across sectors because the sectors don't exist in sufficient depth. When semiconductor demand dips, the whole portfolio suffers.


Backtest Methodology

Parameter Choice
Universe TAI (TWSE), Market Cap > 10B TWD (~$312M USD)
Signal 5-component sustainability score (0-10), minimum 7
Components Payout Ratio + D/E + FCF Coverage + ROE + Piotroski F-Score
Filters Dividend Yield > 2%, Market Cap > 10B TWD
Portfolio Top 30 by score descending (yield tiebreak), equal weight
Rebalancing Annual (July)
Cash rule Hold cash if < 10 qualify
Benchmark TAIEX (TWD)
Execution Next-day close (MOC after signal)
Period 2000-2025 (25 years)
Data Point-in-time (45-day lag for annual filings)
Costs Size-tiered transaction costs applied
Piotroski Computed from historical financial statements (9 binary signals)

Limitations

Seven cash years reduce the effective test period. This is an 18-year backtest presented as a 25-year one. The CAGR calculation includes 7 years of zero compounding, which mechanically drags the number down. If you started in 2005, the result would look different.

Semiconductor concentration risk. Even with 28.9 stocks on average, the portfolio is heavily exposed to a single sector's supply chain. A downturn in global chip demand hits nearly every holding simultaneously.

Currency risk. Returns are in local currency (TWD). TWD/USD fluctuations add volatility for international investors. The TWD appreciated modestly against the USD over the period, which would help foreign investors slightly.

The screen excludes Taiwan's best companies. TSMC, MediaTek, and other high-growth semiconductor firms don't qualify because their yields are too low or their payout ratios don't meet the threshold. The screen is designed for mature dividend payers. On a growth-driven exchange, that's a selection bias against the market's strongest performers.

Survivorship bias. Exchange membership uses current company profiles. Delisted and acquired companies aren't fully captured.


Takeaway

Taiwan produces the smallest alpha in our comparison: +0.32% over the TAIEX across 25 years. That's marginal. Against the local benchmark, it's barely ahead.

The TAIEX itself returned 4.09% CAGR over this period, which isn't strong. The screen finding companies that beat that benchmark by a thin margin shows the quality filter does something, just not much. Seven cash years are the structural drag. The 18 invested years produce a 56% win rate vs the TAIEX, which is better than coin-flip but not convincing.

The deeper issue is structural: Taiwan's market is built around semiconductor growth companies that don't qualify for a dividend sustainability screen. TSMC's best years didn't flow through this portfolio. When the screen selected companies, it found the mature, slower-growth parts of the supply chain. They're financially solid but they don't generate the returns needed for strong alpha.

For an investor already in Taiwanese equities, the sustainability overlay provides some downside protection (-28.90% max drawdown) and a slight edge over the local index. As a standalone case, Taiwan is the hardest market to make an argument for with this approach.


Part of a Series

This analysis is part of our dividend sustainability global exchange comparison. We tested the same screen on 13 exchanges worldwide: - [Dividend Sustainability on US Stocks (NYSE, NASDAQ, AMEX)][US_BLOG_URL] - 12.03% CAGR, full methodology - [Dividend Sustainability on Indian Stocks (NSE)][INDIA_BLOG_URL] - 15.81% CAGR, the standout - [Dividend Sustainability on Chinese Stocks (SHH + SHZ)][CHINA_BLOG_URL] - 6.66% CAGR - [Dividend Sustainability on Australian Stocks (ASX)][AUSTRALIA_BLOG_URL] - 5.96% 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.
  • Liu, Y. & Hsu, J. (2006). "New Evidence on the Payout Policy of Taiwanese Firms." Asia Pacific Management Review, 11(3), 141-158.

Run This Screen Yourself

Via web UI: [Run the sustainability screen on Ceta Research][SUSTAINABILITY_TAIWAN_QUERY_URL]. The query is pre-loaded. Hit "Run" and see what passes today.

Via Python:

import requests, time

API_KEY = "your_api_key"  # get one at cetaresearch.com
BASE = "https://tradingstudio.finance/api/v1"

resp = requests.post(f"{BASE}/data-explorer/execute", headers={
    "X-API-Key": API_KEY, "Content-Type": "application/json"
}, json={
    "query": """
        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 ('TAI')
        ),
        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 ('TAI')
        ),
        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 ('TAI')
        ),
        latest_scores AS (
            SELECT symbol, piotroskiScore FROM scores
        ),
        scored AS (
            SELECT r.symbol,
                CASE WHEN r.dividendPayoutRatio < 0.5 THEN 2
                     WHEN r.dividendPayoutRatio < 0.8 THEN 1 ELSE 0 END +
                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 +
                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 +
                CASE WHEN k.returnOnEquity > 0.15 THEN 2
                     WHEN k.returnOnEquity > 0.08 THEN 1 ELSE 0 END +
                COALESCE(CASE WHEN s.piotroskiScore >= 7 THEN 2
                     WHEN s.piotroskiScore >= 5 THEN 1 ELSE 0 END, 0)
                AS score,
                ROUND(r.dividendYield * 100, 2) AS yield_pct,
                ROUND(k.marketCap / 1e9, 1) AS mktcap_bn
            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 > 10e9
        )
        SELECT symbol, score, yield_pct, mktcap_bn
        FROM scored WHERE score >= 7
        ORDER BY score DESC, yield_pct DESC LIMIT 30
    """,
    "options": {"format": "json", "limit": 100}
})
task_id = resp.json()["taskId"]

while True:
    result = requests.get(f"{BASE}/tasks/data-query/{task_id}",
                          headers={"X-API-Key": API_KEY}).json()
    if result["status"] in ("completed", "failed"):
        break
    time.sleep(2)

for r in result["result"]["rows"][:10]:
    print(f"{r['symbol']:8s} score={r['score']}/10 yield={r['yield_pct']:.1f}%")

Get your API key at cetaresearch.com. The full backtest code (Python + DuckDB) is on GitHub.


Data: Ceta Research, FMP financial data warehouse. Universe: TAI (TWSE). Annual rebalance (July), equal weight top 30 by sustainability score, 2000-2025.