P/S Below 1 on 14 Global Exchanges: 12 Beat Their Local Benchmark

We ran the same P/S value screen (P/S < 1, quality filters) on 14 exchanges globally. Compared against local benchmarks, 12 of 14 outperform. Against SPY, only 4-5 do. The benchmark choice changes everything. Japan is the biggest surprise: +4.54% vs Nikkei with the best Sharpe ratio globally.

Bar chart comparing P/S value screen CAGR across 14 global exchanges vs local benchmarks. Japan leads on Sharpe (0.409). Korea and Taiwan the only underperformers.

We ran the same price-to-sales value screen on 14 exchanges worldwide. Same four filters applied identically to each market: P/S below 1.0, gross margin above 20%, operating margin above 5%, ROE above 10%. Top 30 by lowest P/S, quarterly rebalanced, equal weight. Backtest period 2000-2025. Against local benchmarks, 12 of 14 exchanges outperformed. Against SPY, only 4-5 do. The benchmark you choose changes the story completely.

Contents

  1. Method
  2. The Screen
  3. Results
  4. Full results table
  5. What Separates the Winners
  6. Japan: the biggest surprise
  7. The quality compound markets
  8. The markets that work but get misread
  9. What Drives the Underperformers
  10. The Quality Filters: What They Actually Do
  11. The Cash Period Question
  12. Excluded Exchanges
  13. Practical Implications
  14. Part of a Series
  15. References
  16. Run This Screen Yourself

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


Method

Data source: Ceta Research (FMP financial data warehouse) Universe: 14 exchanges (see table below) Period: 2000-2025 (25 years, 100 quarterly periods) Rebalancing: Quarterly (January, April, July, October), equal weight, top 30 by lowest P/S Benchmark: Local index for each market (Sensex, SPY, OMX, DAX, TSX Comp, Nikkei, Hang Seng, SET Index, SSE, FTSE 100, KOSPI, SMI, TAIEX) Cash rule: Hold cash if fewer than 10 stocks qualify

Financial data sourced from FY financial statements with a 45-day lag to prevent look-ahead bias. Local currency returns throughout.


The Screen

The same screen applied to every market:

Criterion Metric Threshold
Cheap relative to revenue Price-to-Sales < 1.0
Business quality Gross Margin > 20%
Operational efficiency Operating Margin > 5%
Capital returns ROE > 10%

Size threshold varies by market (e.g., $1B USD for US, JPY 10B for Japan, EUR 300M for Germany) to maintain a consistent institutional-grade universe.


Results

Bar chart showing P/S value screen CAGR and local benchmark comparison across 14 global exchanges. Japan tops risk-adjusted rankings with Sharpe 0.409. Korea and Taiwan underperform local indices.
Bar chart showing P/S value screen CAGR and local benchmark comparison across 14 global exchanges. Japan tops risk-adjusted rankings with Sharpe 0.409. Korea and Taiwan underperform local indices.

Full results table

Market CAGR vs Local Benchmark Sharpe Max DD
India (NSE) 11.44% +0.32% vs Sensex 0.132 -76.48%
US 11.10% +3.09% vs SPY 0.373 -55.95%
Sweden 10.01% +6.84% vs OMX 0.402 -54.93%
Germany 9.70% +4.58% vs DAX 0.368 -51.85%
Canada 8.71% +3.63% vs TSX Comp 0.325 -44.67%
South Africa 8.53% +0.51% vs SPY -0.022 -43.91%
SPY Benchmark 8.02%
Japan 7.94% +4.54% vs Nikkei 0.409 -49.21%
Hong Kong 6.39% +4.62% vs Hang Seng 0.127 -64.06%
Thailand 5.89% +2.14% vs SET Index 0.141 -57.26%
China 4.99% +0.80% vs SSE 0.071
UK 4.62% +3.27% vs FTSE 100 0.042
Korea 3.82% -0.99% vs KOSPI 0.051 -44.03%
Switzerland 3.20% +1.10% vs SMI 0.131
Taiwan 3.13% -1.24% vs TAIEX 0.132

Strategy: P/S < 1.0, gross margin > 20%, op margin > 5%, ROE > 10%, top 30 by P/S. Quarterly rebalance, equal weight. MOC execution (next-bar entry). 2000-2025.

Bar chart showing max drawdown by exchange for P/S value screen. India worst at -76.48%, Canada best at -44.67%. SPY at -43.86% shown as reference.
Bar chart showing max drawdown by exchange for P/S value screen. India worst at -76.48%, Canada best at -44.67%. SPY at -43.86% shown as reference.


What Separates the Winners

The benchmark matters most. Against SPY, markets that ran their own strong bull runs look like underperformers. Against local benchmarks, the picture flips. 12 of 14 exchanges beat their local index. The screen is doing real work in most markets. The question is just what you're comparing it against.

Japan: the biggest surprise

Japan (7.94% CAGR, +4.54% vs Nikkei, Sharpe 0.409) is the standout result when you shift to local benchmarks. The Nikkei spent most of the 2000s underwater. The P/S quality screen, by filtering out the cash-heavy and structurally unprofitable names that dragged on the index, found the subset of Japanese companies that actually compounded. The Sharpe of 0.409 is the highest of any exchange in this study. Japan's screen didn't just beat SPY narrowly. It beat its own index by a large margin while producing the best risk-adjusted returns globally.

The old framing of Japan as a "near-miss" at -0.57% vs SPY was the wrong question. Against the right benchmark, Japan is a top result.

The quality compound markets

Sweden (10.01%, +6.84% vs OMX) and Germany (9.70%, +4.58% vs DAX) both beat their local indices by wide margins. Both have the same structural explanation: deep mid-cap industrial and manufacturing bases with consistent margins. The P/S screen finds companies that the broader index weights away from. Sweden's OMX is heavily influenced by large-cap cyclicals and banks. The screen's quality filters select the profitable mid-cap industrials that don't dominate the benchmark. Germany's Mittelstand provides a similar dynamic. Zero cash periods in both markets confirm the screen always finds qualifying names.

US (11.10%, +3.09% vs SPY) works because the market is deep enough to always find qualifying names and the quality filters select profitable industrials, healthcare, and consumer staples that the index systematically underweights during growth cycles. The 2022-2024 value comeback drove much of the final-period alpha.

Canada (8.71%, +3.63% vs TSX Comp) benefits from the TSX's heavy energy and materials weighting. The screen's margin filters remove the thin-margin commodity businesses that inflate the TSX, leaving higher-quality industrials and consumer names.

The markets that work but get misread

Hong Kong (6.39%, +4.62% vs Hang Seng), Thailand (5.89%, +2.14% vs SET Index), and UK (4.62%, +3.27% vs FTSE 100) all look like underperformers against SPY. Against their local benchmarks, all three beat by meaningful margins.

The UK is the clearest example of misreading. At 4.62% absolute CAGR it looks weak. But the FTSE 100 over 2000-2025 was genuinely poor, weighed down by energy, mining, and financials. The P/S screen beat it by 3.27% annually. The screen worked. The market itself underperformed.

Hong Kong and Thailand show similar patterns. Their absolute returns trail SPY because their markets lagged. Their screens beat local indices consistently.

India (11.44%, +0.32% vs Sensex) is the reality check. The raw CAGR looks spectacular. Against the Sensex, the screen barely adds value. India's market delivered strong returns broadly. The screen can find the cheap-quality names, but the rising tide lifted most boats. The +0.32% alpha is real but modest. It doesn't justify the -76.48% max drawdown if you can get most of India's return just by buying the index.

South Africa (8.53%, +0.51% vs SPY) beats the SPY-comparable benchmark but narrowly. The negative Sharpe is an artifact of South Africa's ~9% local risk-free rate compressing the ratio mechanically. The 0.51% excess return is genuine but thin. South Africa's qualifying stock pool is also episodic, with frequent cash periods reflecting the quality filters' restrictiveness on that universe.


What Drives the Underperformers

Only two markets consistently fail to beat their local benchmark: Korea and Taiwan.

Korea (3.82%, -0.99% vs KOSPI) has a structural problem. The chaebol conglomerate model means many companies that qualify on P/S and margins are subsidiaries of larger groups, with cross-holdings and related-party transactions that distort the financial ratios the screen relies on. Companies appear cheap on sales for reasons tied to group structure, not genuine undervaluation. The screen selects them, they don't rerate, and returns lag the broader market.

Taiwan (3.13%, -1.24% vs TAIEX) shares a similar dynamic. Taiwan's market is dominated by the semiconductor supply chain, and the low-P/S companies are often component manufacturers whose margins are structurally depressed relative to what the 20%+ gross margin filter is trying to find. When the screen finds qualifying names, they tend to be in sectors that haven't kept up with the TAIEX's tech-driven returns.

China (4.99%, +0.80% vs SSE) technically beats its local benchmark, but narrowly and with low confidence. The Sharpe of 0.071 across 25 years is a signal that the edge isn't consistent. China's accounting standards and state-owned enterprise dynamics create a qualifying pool that looks similar to other markets on paper but behaves differently in practice. Count it as a marginal win.

Switzerland (3.20%, +1.10% vs SMI) beats the local benchmark but the universe is thin. Swiss companies are often priced by global institutional investors who value the stability premium. The ones that pass the quality filters and trade at low P/S are unusual names, and the portfolio never gets deep enough to diversify meaningfully.


The Quality Filters: What They Actually Do

A raw P/S screen without margin and ROE requirements would look very different. Grocery chains, fuel distributors, commodity traders, and capital-intensive businesses with high revenue but thin margins all qualify on P/S alone. Those businesses are often cheap on sales for a structural reason: the revenue doesn't translate into meaningful returns.

The gross margin above 20% filter removes the thin-margin distributors and commodity businesses. The operating margin above 5% confirms the gross margin isn't being consumed by operating costs. The ROE above 10% ensures the company is generating returns on its equity base, not just running at a loss or holding cash unprofitably.

Together, the three quality filters change the character of what qualifies. In Japan, they remove the zombie companies and cash hoarders, which is why Japan looks so different against the Nikkei than against SPY. In Germany, they confirm the Mittelstand industrial quality. In the UK, they narrow the qualifying pool sharply, which is why the portfolio is concentrated. The filters are doing real work in every market, but they interact differently with each market's structure.


The Cash Period Question

Markets with frequent cash periods are signaling something. When the screen can't find 10 qualifying stocks, it's because either the market's P/S ratios are elevated, the quality filters are too restrictive for that universe, or there's a data availability issue.

Korea and South Africa have high cash period counts. That reflects periods where qualifying stocks drop below the minimum threshold. Markets with zero or low cash periods (US, Germany, Canada, China, Switzerland, UK) have deep enough universes that the screen always finds qualifying names. That depth is itself an indicator of market maturity and breadth.


Excluded Exchanges

Five exchanges were excluded from the results due to data or coverage issues:

Exchange Reason
Brazil (SAO) Adjusted close split artifact in underlying data
Australia (ASX) Adjusted close split artifact in underlying data
Norway (OSL) 40% cash periods, insufficient qualifying stocks
Malaysia (KLS) Data quality issues
Singapore (SES) Average qualifying stocks below minimum threshold

Taiwan was previously excluded from the comparison run for similar reasons (high cash periods). The current run resolved those issues and Taiwan is included in the results above, where it underperforms the TAIEX by -1.24% annually.


Practical Implications

The benchmark question matters more than market selection. If your goal is to beat local investors, 12 of 14 markets say the screen works. If your goal is to beat a US portfolio earning SPY returns, only 4-5 markets clear that bar, and most of those are developed markets with their own strong fundamentals.

Japan deserves a second look. Against SPY it's a borderline result. Against the Nikkei it's one of the strongest screens in this study, with the best Sharpe globally. If you're allocating to Japan anyway, running this screen as an active overlay has a strong historical case.

India's raw CAGR is misleading. The number looks dominant. Against the local benchmark, the screen adds very little. If you want India exposure, buying the index captures most of the return at far lower drawdown risk.

Quality filters are non-negotiable. The performance gap between a raw P/S screen and a quality-filtered one would likely be much larger than these tables show, because the worst drawdowns tend to come from the thin-margin businesses the filters exclude.

Drawdown tolerance is the real constraint. Even markets with strong local outperformance (Hong Kong +4.62%, Sweden +6.84%) came with large drawdowns. Running this screen globally means accepting extended underwater periods. Whether that tradeoff is acceptable depends on investment horizon.

South Africa's Sharpe needs local interpretation. At a ~9% local RFR, the ratio is mechanically suppressed. The raw CAGR and excess return are the more honest measures there.


Part of a Series

This global comparison covers results from all 14 exchanges: - P/S Value Screen on US Stocks - 11.10% CAGR, +3.09% vs SPY - P/S Value Screen on Indian Stocks - 11.44% CAGR, +0.32% vs Sensex - P/S Value Screen on Swedish Stocks - 10.01% CAGR, +6.84% vs OMX - P/S Value Screen on German Stocks - 9.70% CAGR, +4.58% vs DAX - P/S Value Screen on Canadian Stocks - 8.71% CAGR, +3.63% vs TSX Comp - P/S Value Screen on South African Stocks - 8.53% CAGR, +0.51% vs SPY - P/S Value Screen on Japanese Stocks - 7.94% CAGR, +4.54% vs Nikkei, Sharpe 0.409 (best globally) - P/S Value Screen on Hong Kong Stocks - 6.39% CAGR, +4.62% vs Hang Seng - P/S Value Screen on Thai Stocks - 5.89% CAGR, +2.14% vs SET Index - P/S Value Screen on Chinese Stocks - 4.99% CAGR, +0.80% vs SSE - P/S Value Screen on UK Stocks - 4.62% CAGR, +3.27% vs FTSE 100 - P/S Value Screen on Korean Stocks - 3.82% CAGR, -0.99% vs KOSPI - P/S Value Screen on Swiss Stocks - 3.20% CAGR, +1.10% vs SMI - P/S Value Screen on Taiwanese Stocks - 3.13% CAGR, -1.24% vs TAIEX


References

  • Fisher, K. (1984). Super Stocks. Dow Jones-Irwin.
  • Barbee, W., Mukherji, S. & Raines, G. (1996). "Do Sales-Price and Debt-Equity Explain Stock Returns Better than Book-Market and Firm Size?" Financial Analysts Journal, 52(2), 56-60.
  • Gray, W. & Vogel, J. (2012). "Analyzing Valuation Measures: A Performance Horse Race over the Past 40 Years." Journal of Portfolio Management, 39(1), 112-121.
  • Novy-Marx, R. (2013). "The Other Side of Value: The Gross Profitability Premium." Journal of Financial Economics, 108(1), 1-28.

Run This Screen Yourself

Via web UI: Run the P/S screen on Ceta Research. Switch the exchange filter to any market in the table.

Via Python:

import requests, time

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

# Change exchange to any market: 'JPX', 'XETRA', 'TSX', 'STO', etc.
EXCHANGE = "JPX"

resp = requests.post(f"{BASE}/data-explorer/execute", headers={
    "X-API-Key": API_KEY, "Content-Type": "application/json"
}, json={
    "query": f"""
        SELECT
            f.symbol,
            p.companyName,
            p.sector,
            ROUND(f.priceToSalesRatioTTM, 3) AS ps_ratio,
            ROUND(f.grossProfitMarginTTM * 100, 1) AS gross_margin_pct,
            ROUND(f.operatingProfitMarginTTM * 100, 1) AS op_margin_pct,
            ROUND(k.returnOnEquityTTM * 100, 1) AS roe_pct,
            ROUND(k.marketCap / 1e9, 2) AS mktcap_b
        FROM financial_ratios_ttm f
        JOIN key_metrics_ttm k ON f.symbol = k.symbol
        JOIN profile p ON f.symbol = p.symbol
        WHERE f.priceToSalesRatioTTM > 0
          AND f.priceToSalesRatioTTM < 1
          AND f.grossProfitMarginTTM > 0.20
          AND f.operatingProfitMarginTTM > 0.05
          AND k.returnOnEquityTTM > 0.10
          AND p.exchange IN ('{EXCHANGE}')
        QUALIFY ROW_NUMBER() OVER (
            PARTITION BY f.symbol ORDER BY f.priceToSalesRatioTTM ASC
        ) = 1
        ORDER BY f.priceToSalesRatioTTM ASC
        LIMIT 30
    """,
    "options": {"format": "json", "limit": 30}
})
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"]:
    print(f"{r['symbol']:10s} P/S={r['ps_ratio']:.3f}  GM={r['gross_margin_pct']:.1f}%  ROE={r['roe_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. Same P/S screen applied to each exchange. Local currency returns. Quarterly rebalance, equal weight, 2000-2025.