UK: Essentially Matched the S&P 500 Over 25 Years
OCF momentum returned 7.7% annually on UK stocks, essentially matching SPY's 7.8%. Extreme volatility (+66% best year, -27% worst) with no alpha. Developed market reality check.
UK: +5.6% Alpha Over FTSE 100, 76% Win Rate, The Signal Works
Operating cash flow momentum returned 6.8% annually on UK stocks from 2000 to 2025, beating the FTSE 100 by 5.6% per year. The FTSE 100 returned just 1.2% annually over the same period. $10,000 grew to $67,820. The strategy outperformed the FTSE in 19 of 25 years (76% win rate), the highest of any market tested. While absolute returns were modest compared to US markets, the relative edge vs the local index is undeniable. Cash flow divergence works in the UK, even with strong accounting standards and high analyst coverage.
Contents
- Method
- What We Found
- 25 years of data. Beat FTSE 100 by 5.6% annually (+6.8% vs +1.2%).
- Year-by-year returns
- Why OCF Momentum Works in the UK
- Part of a Series
- Run It Yourself
- Takeaway
Data: FMP financial data warehouse, 2000–2025. Updated March 2026.
Method
Data source: Ceta Research (FMP financial data warehouse) Universe: LSE, market cap > £500M (~$635M USD) Period: 2000-2025 (25 years, annual rebalancing) Rebalancing: Annual (July), 45-day lag on FY financial data Benchmark: FTSE 100 (^FTSE, local currency)
Portfolio: Top 30 stocks by highest divergence (OCF growth minus NI growth), equal weight. Quality filters: ROE > 10%, operating margin > 5%.
What We Found

25 years of data. Beat FTSE 100 by 5.6% annually (+6.8% vs +1.2%).
| Metric | OCF Momentum (UK) | FTSE 100 |
|---|---|---|
| CAGR | 6.8% | 1.2% |
| Total Return | 578% | 36% |
| Volatility | 36.6% | — |
| Max Drawdown | -38.9% | -43.7% |
| Sharpe Ratio | 0.16 | — |
| Win Rate (vs FTSE) | 76% | — |
| Avg Stocks per Period | 20.3 | — |
| Cash Periods | 0 of 25 | — |
The UK strategy beat the FTSE 100 in 19 of 25 years. That's a 76% win rate, the highest of any market tested. The FTSE 100 barely went anywhere over 25 years (1.2% CAGR, 36% total return). The cash flow quality screen identified the UK's actual value creators while the index stagnated.
Year-by-year returns

The strategy delivered +66% in 2020 (driven by COVID recovery in quality stocks) but also suffered -28% in 2007 and -26% in 2019. Despite year-to-year volatility, it beat the FTSE 100 in 19 of 25 years. The consistency is remarkable: the strategy outperformed in nearly every crisis (2001, 2008, 2020) and in most bull markets (2003, 2005, 2006, 2012, 2016).
Why OCF Momentum Works in the UK
The FTSE 100 underperformed. UK equities barely moved for 25 years (1.2% CAGR). Brexit uncertainty, financial sector concentration, and poor capital allocation dragged the index. The OCF divergence filter identified companies actually generating cash, avoiding the FTSE's dead weight.
Quality matters when growth is scarce. In a stagnant market, earnings quality becomes the deciding factor. Companies with genuine cash generation beat companies inflating earnings through accruals. The 76% win rate reflects this: the signal consistently identified the UK's handful of compounders.
Strong accounting doesn't eliminate divergence. Even with strict IFRS enforcement, earnings and cash flow still diverge for fundamental reasons (working capital, capex timing, depreciation schedules). The signal doesn't need manipulation to work — it just needs divergence driven by business model differences.
Part of a Series
For methodology and cross-market comparison: - Operating Cash Flow Momentum: US Results - India: +5.4% Annual Alpha - Canada: Best Sharpe Ratio - OCF Momentum: Global Comparison
Run It Yourself
-- OCF Momentum Screen for UK (LSE)
WITH latest_cg AS (
SELECT symbol, growthOperatingCashFlow, dateEpoch,
ROW_NUMBER() OVER (PARTITION BY symbol ORDER BY dateEpoch DESC) AS rn
FROM cash_flow_statement_growth
WHERE period = 'FY' AND growthOperatingCashFlow IS NOT NULL
),
latest_ig AS (
SELECT symbol, growthNetIncome, dateEpoch,
ROW_NUMBER() OVER (PARTITION BY symbol ORDER BY dateEpoch DESC) AS rn
FROM income_statement_growth
WHERE period = 'FY' AND growthNetIncome IS NOT NULL
)
SELECT
cg.symbol, p.companyName,
ROUND(cg.growthOperatingCashFlow * 100, 1) AS ocf_growth_pct,
ROUND(ig.growthNetIncome * 100, 1) AS ni_growth_pct,
ROUND((cg.growthOperatingCashFlow - ig.growthNetIncome) * 100, 1) AS divergence_pct,
ROUND(k.returnOnEquityTTM * 100, 1) AS roe_pct,
ROUND(f.operatingProfitMarginTTM * 100, 1) AS op_margin_pct
FROM latest_cg cg
JOIN latest_ig ig ON cg.symbol = ig.symbol AND ig.rn = 1
JOIN key_metrics_ttm k ON cg.symbol = k.symbol
JOIN financial_ratios_ttm f ON cg.symbol = f.symbol
JOIN profile p ON cg.symbol = p.symbol
WHERE cg.rn = 1
AND cg.growthOperatingCashFlow > 0.10 AND cg.growthOperatingCashFlow < 5.0
AND cg.growthOperatingCashFlow > ig.growthNetIncome
AND k.returnOnEquityTTM > 0.10 AND f.operatingProfitMarginTTM > 0.05
AND k.marketCap > 500000000 AND p.exchange = 'LSE'
ORDER BY (cg.growthOperatingCashFlow - ig.growthNetIncome) DESC
LIMIT 30
Run this query on Ceta Research
Takeaway
The UK results are a reality check: cash flow divergence doesn't generate alpha in all markets. Over 25 years, it matched the S&P 500 but with higher volatility and extreme year-to-year swings. In developed markets with strong accounting standards and high analyst coverage, the signal adds no value.
Data: Ceta Research, LSE 2000-2025. Full methodology: backtests/METHODOLOGY.md