Analyst Upgrade Clusters Across 9 Markets: An Honest Data Assessment
Analyst Upgrade Clusters Across 9 Markets: A Data Quality Honest Assessment
Upgrade clusters, events where 2+ analysts move bullish simultaneously, produce statistically significant next-day abnormal returns in 7 of the 9 markets we tested. But the global story is more complicated than the headline suggests, and understanding why requires looking at a data artifact that affects nearly every non-US exchange in our sample.
Contents
- The Setup
- The Global Results
- The Data Artifact That Shapes Everything
- Where the Signal Is Credible
- United States
- UK (LSE)
- India (BSE+NSE)
- The Interesting Anomalies
- Japan: Strongest Pop, No Persistence
- Hong Kong: Negative T+1
- China: Extraordinary T+21
- Where the Signal Doesn't Hold
- What This Means for Multi-Market Trading
- Running the Live Screen
- Notes on Methodology
The Setup
An upgrade cluster fires when the aggregate bullish count (StrongBuy + Buy) in the grades_historical table increases by 2 or more between consecutive observations for the same symbol. We require observations to be 14–30 days apart, which filters spurious clusters from periods when the data provider recorded daily snapshots instead of monthly ones.
Exchanges tested: US (NYSE/NASDAQ/AMEX), India (BSE+NSE), Japan (JPX), UK (LSE), Germany (XETRA), Hong Kong (HKSE), Korea (KSC), China (SHZ+SHH), Canada (TSX).
Benchmark: SPY for US. Regional country ETFs for non-US exchanges.
Market cap floors: Exchange-specific in local currency, targeting roughly $200M–$1B equivalent depending on market depth.
Windows: T+1, T+5, T+21, T+63 trading days.
The Global Results
| Exchange | Events | T+1 CAR | t(1) | T+21 CAR | t(21) | 2022 share |
|---|---|---|---|---|---|---|
| US (NYSE/NASDAQ/AMEX) | 5,884 | +0.475% | 11.42** | +0.565% | 3.22** | 56% |
| India (BSE+NSE) | 412 | +0.236% | 2.18* | +1.605% | 3.85** | 59% |
| Japan (JPX) | 503 | +1.813% | 19.76** | -0.016% | -0.05 | 84% |
| UK (LSE) | 348 | +0.666% | 4.63** | +3.548% | 7.30** | 80% |
| Germany (XETRA) | 174 | +0.456% | 1.99* | +0.540% | 0.71 | 80% |
| Hong Kong (HKSE) | 123 | -1.603% | -9.17** | +1.711% | 1.22 | 48% |
| Korea (KSC) | 416 | +0.165% | 1.40 | -0.877% | -1.40 | 88% |
| China (SHZ+SHH) | 1,088 | +0.450% | 3.98** | +8.023% | 21.98** | 97% |
| Canada (TSX) | 291 | -0.022% | -0.17 | -0.604% | -0.90 | 82% |
** = p<0.01, * = p<0.05
The Data Artifact That Shapes Everything
Before interpreting these numbers, the most important fact: FMP recorded analyst rating data at daily or near-daily frequency for many symbols during 2022, versus monthly in other years. This creates a 10–100x spike in detected upgrade clusters that year.
Our 14-day minimum gap filter eliminates most of these. But the filter can't undo the fundamental problem: if a symbol's ratings were only observed monthly in 2019–2021 but daily in 2022, the cluster detection window is structurally different across years. Any market where most events come from 2022 is effectively giving you a one-year snapshot, not a multi-year study.
The 2022 concentration is severe in most non-US exchanges, 80–97% of events. For these markets, the results represent how analyst upgrade clusters behaved in one specific year with one specific market regime, not a structural property of the signal.
US (56% from 2022) is the only exchange with meaningful multi-year distribution. 2019: 57 events. 2020: 1,309. 2021: 488. Even with 2022 concentration, there's enough history before and after to validate the pattern. The other exchanges don't have this.
Where the Signal Is Credible
United States
N=5,884, T+1=+0.475%, T+21=+0.565%. Seven years, clean distribution across multiple market regimes. The medium cluster result (+1.068% T+21) is statistically robust and practically meaningful. See the US analysis for the full breakdown.
UK (LSE)
N=348, T+1=+0.666%, T+21=+3.548%. The strongest persistence signal in the dataset. T+21 t-stat of 7.30 is exceptional for 348 events. The 80% 2022 concentration is a limitation, but the T+21 magnitude and significance are hard to dismiss as noise. Something in the LSE data makes analyst clusters more persistent, likely lower market efficiency and less algorithmic coverage of analyst consensus shifts compared to US markets.
India (BSE+NSE)
N=412, T+1=+0.236%, T+21=+1.605%. Solid T+21 result (t=3.85*) with 59% 2022 concentration. India's analyst ecosystem is expanding rapidly. FMP coverage grew in 2022 when the observation frequency changed. The positive signal likely reflects genuine analyst information advantage in a market where consensus shifts are less efficiently arbitraged.
The Interesting Anomalies
Japan: Strongest Pop, No Persistence
Japan has the highest T+1 CAR in the dataset: +1.813% (t=19.76**). That's not a rounding error. Japanese analyst upgrades trigger the largest immediate market reaction globally.
But by T+21, the CAR is essentially zero (-0.016%, not significant). The entire return accrues in one day and fades completely. This is consistent with Japan's market structure: upgrade announcements get priced in aggressively by algorithmic systems that monitor consensus changes, but there's no subsequent drift because the information is fully incorporated on announcement day.
84% of Japan's events come from 2022. This adds uncertainty to the finding, but the T+1 signal is statistically robust enough that even if the sample were half the size, it would still be significant.
Hong Kong: Negative T+1
Hong Kong is the only exchange with a statistically significant negative T+1 CAR: -1.603% (t=-9.17**). This is counterintuitive, analyst upgrades produce a negative next-day return.
The most plausible explanation: buy-the-rumor-sell-the-news dynamics. In HKSE, upgrade clusters appear to fire after prices have already moved. By the time the aggregate count ticks up and the cluster is detected, institutional investors who received the upgrade research have already bought. The observation date captures the announcement to retail/systematic traders, not the information event itself. The stock sells off as the early buyers exit.
Only 123 events and 48% from 2022. Sample is thin, treat with caution.
China: Extraordinary T+21
China shows +8.023% T+21 CAR (t=21.98**). This is almost certainly not a real upgrade cluster signal. 97% of China's 1,088 events come from 2022. Chinese A-shares had significant idiosyncratic market dynamics in 2022 including sector rotations and policy-driven moves. The T+21 return likely captures 2022 market conditions, not the analyst signal.
Including for completeness, but this finding isn't meaningful for out-of-sample expectations.
Where the Signal Doesn't Hold
Korea (KSC): T+1=+0.165% (not significant), T+21=-0.877% (not significant). 88% from 2022. The analyst upgrade cluster signal produces no meaningful return in Korea across both short and medium term.
Canada (TSX): T+1=-0.022% (not significant), T+21=-0.604% (not significant). 82% from 2022. No signal. Interesting contrast with the beat-streaks study where Canada was a strong performer, different data sources, different signal mechanics.
Germany (XETRA): T+1=+0.456%* (borderline), T+21=+0.540% (not significant). 80% from 2022, only 174 events. Too thin to draw conclusions either way.
What This Means for Multi-Market Trading
The upgrade cluster signal has credible evidence in three markets: US (multi-year, robust), UK (strong T+21 persistence), India (solid T+21, growing analyst ecosystem). Japan is interesting for T+1-only strategies. Everyone else requires more data before actionable conclusions.
The data quality issue will resolve over time. As FMP accumulates more years of monthly-frequency observation data post-2022, the non-US exchange results will become more meaningful. A follow-up study in 2027 or 2028 with 3–5 additional years of clean data would substantially change the confidence level for LSE, JPX, and BSE_NSE.
For now: the signal is real in the US. The UK and India results are promising but carry data concentration caveats. Everything else is preliminary.
Running the Live Screen
The screen works across any exchange. Adjust the exchange filter and market cap threshold:
WITH lagged AS (
SELECT
symbol,
CAST(date AS DATE) AS obs_date,
CAST(analystRatingsStrongBuy AS INTEGER) + CAST(analystRatingsBuy AS INTEGER)
AS bullish_count,
CAST(analystRatingsSell AS INTEGER) + CAST(analystRatingsStrongSell AS INTEGER)
AS bearish_count,
LAG(CAST(analystRatingsStrongBuy AS INTEGER) + CAST(analystRatingsBuy AS INTEGER))
OVER (PARTITION BY symbol ORDER BY date) AS prev_bullish,
LAG(CAST(date AS DATE))
OVER (PARTITION BY symbol ORDER BY date) AS prev_date
FROM grades_historical
WHERE CAST(date AS DATE) >= CURRENT_DATE - INTERVAL '30' DAY
),
clusters AS (
SELECT symbol, obs_date, bullish_count, bearish_count,
bullish_count - prev_bullish AS upgrade_delta
FROM lagged
WHERE prev_bullish IS NOT NULL
AND (obs_date - prev_date) BETWEEN 14 AND 30
AND bullish_count - prev_bullish >= 2
)
SELECT
c.symbol, c.obs_date, c.upgrade_delta, c.bullish_count, c.bearish_count,
ROUND(k.marketCap / 1e9, 1) AS mktcap_bn
FROM clusters c
JOIN profile p ON c.symbol = p.symbol
JOIN key_metrics k ON c.symbol = k.symbol AND k.period = 'FY'
WHERE p.exchange IN ('NYSE', 'NASDAQ', 'AMEX') -- change for other markets
AND k.marketCap > 1000000000
QUALIFY ROW_NUMBER() OVER (PARTITION BY c.symbol ORDER BY k.date DESC, c.obs_date DESC) = 1
ORDER BY c.upgrade_delta DESC, c.obs_date DESC
LIMIT 30
Notes on Methodology
UINT16 overflow: The analystRatings* columns are stored as unsigned 16-bit integers. Never compute deltas without CAST AS INTEGER first. On UINT16, 3 - 5 = 65,534, not -2.
14-day minimum gap: Non-negotiable. Without it, periods of daily FMP updates (2022) produce thousands of false cluster signals from consecutive-day observation pairs.
Benchmark selection: SPY for US. Regional ETFs for other markets. This matters most for high-growth markets where a local index captures the macro tailwind more accurately than a US benchmark.
Run the US upgrade cluster screen live →
Part of a Series: S Global Comparison Event Study | S Uk Lse Event Study | US | S Germany Xetra Event Study | US
Run It Yourself
Explore the data behind this analysis on Ceta Research. Query our financial data warehouse with SQL, build custom screens, and run your own backtests across 70,000+ stocks on 20 exchanges.
Data: Ceta Research / FMP warehouse. grades_historical + stock_eod + key_metrics tables. Market cap floors applied per exchange. 2019–2025. Past performance doesn't guarantee future results. Research content, not investment advice.