Beat Streaks in India: +5.05% T+63 — and Why You Should Read the Fine Print
India shows the highest beat-streak returns globally at +5.05% T+63. But 95% of events are from 2022-2025. We publish the results with full transparency about the data coverage. The signal is real for that period. Whether it continues is an open question.
Beat Streaks in India: +5.05% T+63, and Why You Should Read the Fine Print
India shows the strongest beat-streak signal of any exchange in this study. A company's second consecutive EPS beat on BSE or NSE produces a +5.05% cumulative abnormal return over 63 trading days, roughly three months. That number is real. The data is also concentrated in a specific window that coincides with one of India's strongest bull markets. Both facts matter.
Contents
Method
Data source: TradingStudio (FMP earnings data) Universe: BSE + NSE (BSE_NSE), market cap > INR 20B (historical key_metrics) Period: 2020–2025 (effective, see Limitations) Benchmark: INDA (iShares MSCI India ETF) Beat definition: epsActual > epsEstimated, with ABS(epsEstimated) > 0.01 Streak computation: Window functions (PARTITION BY symbol ORDER BY date) to count consecutive beats
Event windows: T+1, T+5, T+21, T+63 trading days after each streak-extending announcement. Abnormal return = stock return minus INDA return over the same window.
Categories: streak_2 (2nd consecutive beat), streak_3 (3rd), streak_4 (4th), streak_5plus (5th or longer). Total events: 3,483 across all streak categories.
What We Found
The returns keep building. That's the most distinctive feature of India's beat-streak data.
Most markets show strong T+1 reactions that taper off as the window extends. India does the opposite. The T+1 reaction (+0.58%) is modest relative to the total magnitude. T+21 reaches +2.10%. T+63 reaches +5.05%. The drift doesn't reverse, it compounds. Over three months, a company extending a beat streak outperforms INDA by five percentage points on average.
| Window | Mean CAR | t-stat | N |
|---|---|---|---|
| T+1 | +0.58% | 9.67 | 3,483 |
| T+21 | +2.10% | 12.59 | ~3,470 |
| T+63 | +5.05% | 17.92 | ~3,440 |
The t-statistics are exceptional. A t-stat of 17.92 at T+63 with 3,440 observations is not noise. The pattern is robust across the sample.
Why does the drift persist so long? A few factors. Indian markets historically have shallower institutional coverage for mid-cap names. Information diffuses more slowly through the investor base than in US markets. Retail investor participation is high and growing, but retail investors tend to react to earnings news with a lag. Beat-streak events carry information that the market doesn't fully process on day 1 or even day 21.
But before treating this as a definitive signal, read the next section.
Streak Length Breakdown
All four streak categories produce strong T+63 returns, which is unusual. In most markets, the signal weakens at longer streaks. Here, every category lands between +4.29% and +5.65% at T+63.
| Streak | N | T+1 | T+21 | T+63 |
|---|---|---|---|---|
| Streak 2 | 1,421 | +0.73% | +2.65% | +5.65% |
| Streak 3 | 760 | +0.63% | +1.99% | +4.91% |
| Streak 4 | 414 | +0.47% | +1.28% | +4.29% |
| Streak 5+ | 771 | +0.33% | +1.66% | +4.36% |
The similarity of T+63 results across streak lengths is one of the reasons to interpret these numbers carefully. When every streak category shows nearly identical long-run returns, it suggests the underlying driver is market-wide rather than streak-specific. Something is lifting all beat-streak stocks over the sample period, not just the streak mechanic itself. The most likely candidate: India's bull market from 2022–2025.
Short-window results (T+1, T+21) do show the expected monotonic decline with streak length, streak_2 reacts more strongly than streak_5+ on day 1, which is consistent with the streak mechanic providing genuine new information at shorter windows. The T+63 convergence is where the market-wide tailwind likely dominates.
The SQL Screen
This query identifies companies on BSE or NSE currently in active beat streaks of 3 or more quarters.
WITH ordered_earnings AS (
SELECT
symbol,
CAST(date AS DATE) AS event_date,
epsActual AS actual,
epsEstimated AS estimated,
CASE WHEN epsActual > epsEstimated THEN 1 ELSE 0 END AS is_beat,
ROUND((epsActual - epsEstimated)
/ ABS(NULLIF(epsEstimated, 0)) * 100, 1) AS surprise_pct,
ROW_NUMBER() OVER (PARTITION BY symbol ORDER BY date DESC) AS recency_rank
FROM earnings_surprises
WHERE exchange IN ('BSE', 'NSE', 'BSE_NSE')
AND epsEstimated IS NOT NULL
AND ABS(epsEstimated) > 0.01
AND epsActual IS NOT NULL
),
streak_calc AS (
SELECT *,
SUM(CASE WHEN is_beat = 0 THEN 1 ELSE 0 END)
OVER (PARTITION BY symbol ORDER BY recency_rank
ROWS UNBOUNDED PRECEDING) AS streak_breaker
FROM ordered_earnings
),
streaks AS (
SELECT
symbol,
COUNT(*) AS current_streak,
ROUND(AVG(surprise_pct), 1) AS avg_surprise_pct,
MIN(event_date) AS streak_start,
MAX(event_date) AS latest_beat
FROM streak_calc
WHERE streak_breaker = 0 AND is_beat = 1
GROUP BY symbol
HAVING COUNT(*) >= 3
)
SELECT
s.symbol,
s.current_streak,
s.avg_surprise_pct,
s.streak_start,
s.latest_beat,
ROUND(k.marketCap / 1e9, 1) AS mktcap_bn_usd
FROM streaks s
JOIN key_metrics k ON s.symbol = k.symbol AND k.period = 'FY'
WHERE k.marketCap > 250000000
QUALIFY ROW_NUMBER() OVER (PARTITION BY s.symbol ORDER BY k.date DESC) = 1
ORDER BY s.current_streak DESC, s.avg_surprise_pct DESC
LIMIT 30
The market cap filter uses $250M USD (roughly INR 20B) to align with the event study universe. The streak_breaker column works the same way as in other exchanges: earnings are ordered from most recent to oldest, and the running sum increments each time a miss appears. All rows with streak_breaker = 0 form the current active streak.
One practical note: because analyst coverage of Indian companies in FMP expanded significantly from 2022, the streak_start dates will cluster heavily in 2022–2025. Companies with longer-looking streaks in the data may simply have older coverage that predates the expansion. Check the first-beat date against coverage history before assuming a 6-quarter streak started in 2020.
Run this screen live on Ceta Research → (pre-loaded query, no account required)
Why It Works
The theoretical foundation for beat-streak signals applies here as in other markets.
Loh & Warachka (2012), "Streaks in Earnings Surprises and the Cross-Section of Stock Returns" documented investor under-reaction to consecutive positive earnings surprises. Their argument: investors treat each beat as largely independent rather than recognizing the streak as a signal of sustained outperformance. This under-reaction is stronger where analyst coverage is thinner and information diffuses more slowly. India's mid-cap and small-cap space fits this description closely. Fewer analysts cover each company, information reaches institutional investors before retail, and retail investors trade with a lag.
Myers, Myers & Skinner (2007), "Earnings Momentum and Earnings Management" documented the expectation management dimension. Companies actively guide conservatively to maintain beatable targets. The practical implication for India: analyst coverage is still developing for many companies, which means the "guidance game" is less sophisticated than in the US. Management teams may be genuinely surprising the market rather than managing expectations, making short-streak events (streak_2, streak_3) more informationally rich.
The unusually persistent drift through T+63, without the reversal seen in more efficient markets, fits a market where information processing is slower and institutional arbitrage of post-earnings drift is less aggressive. That's consistent with the Loh & Warachka framework applied to a less developed analyst ecosystem.
Limitations
Data coverage note: read this before drawing conclusions.
FMP's analyst coverage for Indian exchanges expanded significantly from 2022. Of the 3,483 beat-streak events in our sample, an estimated 95% are from 2022–2025. This isn't a 25-year historical pattern. It's effectively a 3-year window.
This matters for two reasons. First, the statistical tests assume we're sampling from a stable distribution. Three years of data from a period that includes India's exceptional post-COVID bull market isn't the same as 20 years of varied conditions. Second, the +5.05% T+63 return partially reflects India's strong market environment from 2022–2025, a period when the Nifty 50 and BSE Sensex were broadly outperforming, earnings surprises were common, and foreign institutional investment was accelerating.
We're publishing these results because the pattern is real within the sample. A beat streak on the BSE/NSE from 2022–2025 was in fact predictive of strong subsequent returns. What we can't claim is that this is a decades-long structural signal like the US results. It may be, but the data doesn't yet support that conclusion.
Interpret these results as representative of recent Indian market behavior, not a long-run signal.
Benchmark: INDA (iShares MSCI India ETF) is used. INDA tracks large and mid-cap Indian equities but may not perfectly represent the full BSE/NSE universe, particularly smaller companies. Tracking error between INDA and broad Indian indices adds noise to individual CAR estimates.
INR denomination: Market cap thresholds are in INR. Currency fluctuations affect which companies pass the filter over time, particularly when INR/USD movements are large.
Expectation management vs. genuine beats: As with all markets, we can't separate real outperformance from conservative guidance. The signal quality depends on analysts maintaining realistic estimates, which is less reliable in markets with developing analyst ecosystems.
Takeaway
India's beat-streak signal is the strongest in this global study. The +5.05% T+63 CAR is real, statistically sound, and consistent across all streak categories.
The context is equally important. The data is concentrated in 2022–2025, a period of exceptional Indian equity performance. The similarity of T+63 results across streak lengths, streak_2 produces +5.65%, streak_5+ produces +4.36%, suggests market-wide conditions are driving a portion of these returns, not just the streak mechanic alone.
The most defensible use of this data: treat the short-window signals (T+1, T+21) as genuine beat-streak effects, where the numbers show expected monotonic decline with streak length. For T+63 returns, weight the broader market environment alongside the individual company streak.
As Indian equity markets mature and FMP coverage deepens to cover more historical years, the picture will become clearer. For now, the data says the signal exists, with the caveat that the sample window is short and coincides with favorable market conditions.
Part of a series: Beat streaks analyzed across 16 exchanges. See US, Canada, Japan, Taiwan, India, Brazil, and the global comparison.
Data: TradingStudio (FMP earnings data). Event study uses earnings_surprises + stock_eod + key_metrics tables with market cap > INR 20B filter. Abnormal returns computed vs INDA benchmark. FMP data limitations: analyst estimate coverage for Indian exchanges expanded significantly from 2022, approximately 95% of events in this sample are from 2022–2025. Results reflect recent Indian market conditions, not a long historical average. Past performance does not guarantee future results. This is educational content, not investment advice.
References
- Loh, R. & Warachka, M. (2012). "Streaks in Earnings Surprises and the Cross-Section of Stock Returns." Management Science, 58(7), 1305–1321.
- Myers, L., Myers, J. & Skinner, D. (2007). "Earnings Momentum and Earnings Management." Journal of Accounting, Auditing & Finance, 22(2), 249–284.