Intraday Event Studies

An intraday event study analyzes market reactions using minute-level or tick-level price data instead of daily returns. It captures the immediate impact of events like central bank decisions or earnings releases that are priced within minutes, providing higher statistical power than daily analyses.

Part of the methodology guide

Intraday event studies measure market reactions at sub-daily frequency — minutes or seconds after an event. Use this when daily data is too coarse to capture the true effect.

Intraday event studies offer substantially higher statistical power than daily designs for events with known timestamps. A standard US trading day of 6.5 hours contains 390 one-minute bars, providing fine-grained resolution for measuring the speed and magnitude of price reactions. As documented by Andersen and Bollerslev (1997), over 80% of the price adjustment to scheduled macroeconomic announcements occurs within the first 5 minutes.

When Should I Use Intraday vs. Daily Data?

An intraday event study is a high-frequency empirical method that measures abnormal security returns at minute-level or tick-level intervals within a single trading day. By narrowing the event window from days to minutes, intraday studies can isolate the immediate price impact of precisely timed events — such as Federal Reserve announcements or earnings releases — while reducing noise from confounding information. As shown by Barclay and Litzenberger (1988), intraday analysis can increase statistical power by a factor of 3–5 compared to daily-frequency designs for events with known timestamps.

FeatureDaily Event StudyIntraday Event Study
Data frequencyEnd-of-day prices1-minute or 5-minute bars
Time columnDate (DD.MM.YYYY)POSIXct timestamp
Event precisionDay-levelMinute-level
Estimation window100–250 trading days60–120 minutes
Best forAnnouncements with day-level timingEvents with known timestamps

What Are Typical Intraday Event Study Applications?

Event TypeExamplesTypical Window
Central bank decisionsFed rate decisions, ECB announcements5–30 min
Earnings releasesAfter-hours earnings at 4:05 PM15–60 min
Macro dataCPI, employment, GDP releases5–15 min
Flash eventsFlash crashes, circuit breakers1–10 min
Trading haltsStock halts and resumptions5–30 min

What Data Do Intraday Studies Require?

Intraday data uses different column names than daily data:

ColumnDailyIntraday
Timedate (character, DD.MM.YYYY)timestamp (POSIXct with timezone)
Priceadjustedprice
Identifiersymbolsymbol
Intraday data format
# Intraday firm data format
intraday_firm <- tibble(
  symbol    = "AAPL",
  timestamp = as.POSIXct("2020-06-15 09:30:00", tz = "UTC"),  # POSIXct
  price     = 150.25
)

# Intraday request format
intraday_request <- tibble(
  event_id               = 1L,
  firm_symbol            = "AAPL",
  index_symbol           = "SPY",
  event_timestamp        = as.POSIXct("2020-06-15 14:30:00", tz = "UTC"),
  group                  = "Fed",
  event_window_start     = -15L,    # 15 minutes before
  event_window_end       = 30L,     # 30 minutes after
  shift_estimation_window = -16L,
  estimation_window_length = 120L   # 120 minutes
)

Timezone alignment

Ensure firm data, index data, and event timestamps all use the same timezone. Misaligned timezones are the most common source of errors in intraday studies.

Bar Frequency
The time interval at which intraday prices are sampled, typically 1-minute or 5-minute bars. A standard trading day of 6.5 hours contains 390 one-minute bars.
Microstructure Noise
High-frequency artifacts such as bid-ask bounce, price discreteness, and order flow imbalance that contaminate intraday returns and violate normality assumptions.
Intraday Seasonality
The well-documented U-shaped pattern of intraday volatility, with higher variance at market open and close and lower variance during midday hours.

How Do I Run an Intraday Event Study?

The intraday pipeline has three steps instead of one:

Three-step intraday pipeline
library(EventStudy)

# 1. Create intraday task
intraday_task <- IntradayEventStudyTask$new(
  intraday_firm,
  intraday_index,
  intraday_request
)

# 2. Three-step pipeline
ps <- ParameterSet$new()
intraday_task <- prepare_intraday_event_study(intraday_task, ps)
intraday_task <- fit_model(intraday_task, ps)
intraday_task <- calculate_statistics(intraday_task, ps)

# 3. View results
intraday_task$summary()

Different from daily

Daily studies use run_event_study(task, ps) as a single call. Intraday studies require the three-step pipeline: prepare_intraday_event_study()fit_model()calculate_statistics().

How Do I Interpret Intraday Results?

View intraday results
# Plot intraday CAR
plot_event_study(intraday_task, type = "car")

# Abnormal returns around the event
intraday_task$get_ar(event_id = 1)

How Should I Design the Event Window?

Intraday windows are measured in minutes (or bars), not days. Most Fed announcement studies use a 30-minute window, while earnings studies typically use 60–120 minutes to capture the full price adjustment.

WindowDurationPurpose
Estimation60–120 minutesCalibrate the normal return model
Pre-event gap5–10 minutesBuffer to prevent information leakage
Event window5–30 minutesCapture the market reaction

Guidelines

  • Estimation window: Longer is better for stable estimates, but stay within the same trading day to avoid overnight effects
  • Gap: Insert a gap between estimation and event windows to avoid contamination from early information leakage
  • Event window: Start narrow (5–15 min) and widen if the effect takes longer to materialize

What Is the Non-Parametric Significance Test?

The package implements the Rinaudo & Saha (2014) non-parametric test designed specifically for intraday data. Research by Andersen and Bollerslev (1997) shows that intraday return distributions exhibit kurtosis values of 5–20, far exceeding the normal value of 3. Standard parametric tests often fail at intraday frequency because:

  • Intraday returns exhibit stronger non-normality than daily returns
  • Microstructure effects (bid-ask bounce, price discreteness) violate normality
  • Volatility varies strongly within the trading day (U-shaped pattern)
Non-parametric test for intraday data
# Non-parametric test for intraday data
result <- nonparametric_intraday_test(
  estimation_window = est_window_data,
  event_window = event_day_data,
  event_times = c("14:30", "14:45"),
  p = 0.05
)

What Are Best Practices for Intraday Studies?

PracticeWhy
Align timestamps across all data sourcesMisalignment causes incorrect window assignments
Exclude pre-market and after-hours dataDifferent liquidity and volatility regime
Use the same bar frequency for firm and indexMixed frequencies cause alignment errors
Account for bid-ask bounceCan create spurious mean reversion in tick data
Use non-parametric testsIntraday returns are rarely normal
Stay within one trading dayOvernight gaps distort estimation windows

Literature

  • Rinaudo, J.B. & Saha, A. (2014). A non-parametric test for event studies with intraday data.
  • Barclay, M.J. & Litzenberger, R.H. (1988). Announcement effects of new equity issues and the use of intraday price data. Journal of Financial Economics, 21(1), 71–99.
  • Andersen, T.G. & Bollerslev, T. (1997). Intraday periodicity and volatility persistence in financial markets. Journal of Empirical Finance, 4(2–3), 115–158.

Implement this with the R package

Access advanced features and full customization through the EventStudy R package.

What Should I Read Next?

We use cookies for analytics to improve this site. See our Privacy Policy.