Intraday Volatility Seasonality: Time-of-Day Patterns and Limits
Learn why intraday volatility can vary by time of day, how to estimate seasonal factors without look-ahead, and why a U-shaped pattern is not universal
In this guideWhat intraday volatility seasonality describes
Short summary
Intraday volatility seasonality is a recurring change in return variability across a market session. A U-shaped pattern appears in some samples, but it is not universal, stable by assumption, or a trading edge
What intraday volatility seasonality describes
Intraday volatility seasonality is a systematic difference in the scale of returns at different points in a trading session. A 30-minute return near an exchange open may have a different historical distribution from a 30-minute return around midday, even when both bars have the same length. The idea is about the size and dispersion of returns, not whether prices are more likely to rise or fall at a particular time
Researchers have documented recurring intraday volatility patterns in equity and foreign-exchange data. Andersen and Bollerslev show that this periodicity matters for the dynamic properties of high-frequency returns: modeling it helps separate the time-of-day pattern from the more persistent volatility dynamics (199700004-2)). That result motivates an adjustment; it does not establish one fixed curve for every asset, venue, or period
A seasonal factor is best treated as a baseline for comparison. It can help describe how unusual a return is relative to its usual time-of-day scale, or prevent a volatility model from mistaking a regular session pattern for persistent clustering. The realized-volatility guide explains how squared intraday returns can be combined into a session-level measure; this article focuses on their time-of-day profile
A U shape is one possible sample pattern
In many equity samples, average volatility is higher near the open and close than in the middle of the regular session. The resulting curve can resemble the letter U. Opening auctions, overnight information, the arrival of market participants, end-of-day portfolio activity, and closing mechanisms may all coincide with changing volatility, but a pattern in data alone does not identify which mechanism caused it
The shape can differ across markets and session definitions. Foreign exchange trades across global time zones rather than one centralized opening bell. A futures contract may trade nearly around the clock but still have a settlement window, maintenance break, or concentrated liquidity during regional hours. A 24-hour crypto market has no single exchange open or close unless the analyst defines a reference session. The relevant clock depends on the instrument, venue, and sampling convention
Ederington and Lee find that a familiar U shape disappears in their foreign-exchange sample once scheduled macroeconomic announcements and other volatility information are considered (2001). Their result is a sample-specific finding, not proof that all FX markets lack periodicity. It does show why a descriptive average curve should not be treated as an invariant law
Separate the clock pattern from changing volatility
Let r₍d,j₎ be the return in intraday interval j on session d. A useful conceptual decomposition is
r₍d,j₎ = sⱼ ε₍d,j₎ Var(r₍d,j₎ | information before the interval) = sⱼ² h₍d,j₎
Here sⱼ is a positive time-of-day scale factor, while h₍d,j₎ represents volatility that changes with information and market conditions. The factor sⱼ is a statistical description of a selected sample and calendar. It is not necessarily a causal effect of the clock. The decomposition is a modeling aid, not a claim that all assets have one known deterministic schedule
If sⱼ is ignored, high-variance bars that recur at certain times can make squared returns look persistent. A GARCH model may then attribute both regular intraday variation and genuine volatility clustering to its dynamic parameters. The GARCH guide explains the latter process. A seasonal adjustment can help distinguish the two, but it does not replace checking residuals, parameter stability, or alternative specifications
The scale and variance factors must not be confused. If a time interval has twice the return standard deviation of another interval, its variance is four times as large under the same units. Any estimate should state whether the factor is on a standard-deviation, variance, or absolute-return scale and use that same definition when normalizing observations
Compare two hypothetical 30-minute intervals
Suppose data from a training sample ending before the evaluation month show a typical 30-minute return scale of 0.40% near the open and 0.20% around midday. These values are hypothetical and illustrate the arithmetic only. The open-to-midday standard-deviation ratio is 2, while the corresponding variance ratio is 4. This is not an estimate for a named asset or current session
Now compare a 0.40% open-period return with a 0.20% midday return. Dividing each absolute return by its own historical scale gives 0.40% / 0.40% = 1 and 0.20% / 0.20% = 1. Each is one unit of its own time-of-day scale. The raw moves differ, but their standardized magnitudes are equal under this illustrative profile
That calculation does not say either move is statistically rare, expected to reverse, or profitable to trade. A standardized value can be interpreted only alongside the distributional model, estimation uncertainty, event context, and measurement quality. The scale ratio itself is not a probability, forecast, or direction signal
Estimate seasonal factors with past data only
Start by defining the instrument, venue, session, bar width, price source, and return convention. Match the same session-relative interval across historical sessions. A 9:30–10:00 local exchange bar should not silently be compared with an arbitrary UTC bar after a daylight-saving transition. Decide in advance how to treat auctions, overnight gaps, holidays, early closes, missing quotes, and abnormal trading days
Estimate each interval’s typical scale from dates that precede the forecast or evaluation date. One practical starting point is a robust scale of returns within each time bucket, such as a median absolute return or a trimmed root-mean-square. Because volatile days can dominate pooled averages, analysts may first normalize each session by an overall daily scale, estimate the within-session profile, smooth adjacent buckets, and normalize the resulting factors to a chosen reference level. The method and normalization rule should be recorded
For a historical backtest, freeze the factors using only the training period available at each forecast origin. Re-estimate them in a rolling or expanding window if that matches the intended live process. Estimating a profile once from the entire dataset, then applying it to earlier observations, leaks information from future sessions and can make standardized returns look more stable than they would have looked in real time
Keep the seasonal profile separate from event handling and from any same-day volatility estimate. If a model is allowed to use volatility observed earlier in the current session, calculate that value only from bars available by the forecast timestamp. Document whether the profile is specific to a weekday, contract month, venue, or regime; more subdivisions can reduce bias but leave too few observations per bucket
Record the number of observations and sessions behind each interval estimate. Holidays, missing records, or thin trading concentrated at one time can make a factor reflect data coverage rather than market variation. Dividing the session into too many small buckets can leave unstable estimates; choose the bar width and training length before comparing results. Smoothing adjacent buckets may reduce noise but can also erase opening or closing peaks, so compare the raw and smoothed profiles and document the rule
If the profile is re-estimated through a historical evaluation, preserve the version that would have been available at each forecast origin. Store the training cutoff, observations per bucket, transformations, and dates when each factor was used. Choosing a time-of-day profile after seeing which one performed best, then applying it to earlier dates, introduces look-ahead through the selection process itself
<!-- learn:illustration -->

Scheduled news can imitate a time-of-day effect
Economic announcements are often released at regular clock times. A recurring spike around one of those releases can therefore appear to be ordinary time-of-day seasonality, even though its immediate source is scheduled news. Ederington and Lee study recent volatility, scheduled announcements, and periodicity together; in their interest-rate and FX samples, announcements are especially important for very high-volatility periods, and accounting for the information sets changes estimated persistence (2001)
When the research question is about a typical clock pattern, analysts can separate announcement intervals, add pre-specified event indicators, or report results with and without them. The right choice depends on whether the intended forecast includes known announcements. Removing every event bar can understate the risk of a strategy that will actually hold positions through those releases
Do not build an event calendar with information that was unavailable at the historical forecast date. Preserve release timestamps and revisions where they matter, distinguish scheduled from unscheduled news when the data allow, and disclose which markets and announcements the adjustment covers. A time-of-day factor cannot by itself explain a surprise release or its impact
Align exchange time, sessions, and daylight saving
Time bins need a stable clock definition. For an exchange with a regular session, exchange-local time often maps naturally to the open, midday, and close. If records are stored in UTC, convert using the historical time-zone rules for each date. A fixed UTC offset can shift local opening bars by an hour when daylight-saving rules change, creating artificial differences between seasons
Exchange calendars also include holidays, shortened sessions, auction periods, halts, and contract-specific breaks. A final bar on an early-close day does not occupy the same session position as the ordinary close. Either define how these observations map to the profile or estimate separate profiles for distinct session types. When using futures, document the chosen session template and contract-roll treatment; when using crypto, define a day boundary and reference timezone explicitly
The factor should describe comparable observations. Do not compare a regular-session equity bar with an overnight futures bar simply because both carry the same UTC hour label. Keep timestamps, bar construction, and price source consistent, and check whether bars contain stale quotes, asynchronous trades, or different auction rules. Clock alignment is part of the model specification, not a cosmetic preprocessing choice
The intraday profile can change with volatility
A fixed seasonal factor assumes that the relative volatility pattern stays stable. That assumption can fail. Andersen, Thyrsgaard, and Todorov test time-varying periodicity and report evidence in S&P 500 index returns that the pattern changes partly with the current volatility level; during high-volatility periods, the pre-close interval accounts for a larger fraction of daily integrated volatility than in low-volatility periods (2019)
This does not imply that every market’s close becomes more volatile whenever the market is turbulent. The evidence is tied to their data, method, and sample. It does mean that a long-run average profile can smooth away meaningful changes. Compare profile estimates across subperiods and volatility regimes, test whether the factors are stable, and report uncertainty rather than presenting a single curve as permanent
Rolling estimates can adapt, but they also become noisier and may chase a small number of events. Regime-specific profiles require enough past observations in each regime and a rule for assigning a regime that does not use future data. If those conditions are not met, a simpler stable factor plus explicit event controls may be easier to interpret. A volatility cone compares distributions across horizons and samples; the volatility cone guide covers that separate comparison
Use the adjustment as a measurement tool, not a signal
Time-of-day standardization can make volatility comparisons fairer across session intervals, help diagnose residual patterns, and support a forecast model whose assumptions require more comparable innovations. It can also show that an apparently extreme open-period move is ordinary relative to that interval’s historical scale. It does not reveal whether the next return will be positive or negative
Nor does normalization establish that a strategy can earn a return. A strategy needs a fully specified signal and execution rule, then an out-of-sample test that includes spread, fees, slippage, market impact, latency, and capacity. A historical time-of-day profile may help model risk or execution conditions, but the factor itself is neither an entry rule nor proof of a market inefficiency. The variance-versus-volatility guide explains why squared units and standard-deviation units also need to stay distinct
A reproducible report should name the instrument and venue, timezone, session calendar, sampling interval, data source, estimator, training window, treatment of announcements and unusual sessions, normalization rule, stability checks, and forecast-origin cutoff. It should show the profile’s uncertainty and results on data not used to estimate it. These details make the adjustment auditable and keep a descriptive pattern from becoming an unsupported trading claim
Common questions
Q1Is intraday volatility always U-shaped?
No. The shape depends on the instrument, venue, session, sample, scheduled events, and volatility regime. Some samples show different profiles or no clear U shape
Q2Can I estimate seasonal factors from the whole historical dataset?
Not when evaluating earlier dates out of sample. Estimate each factor using only data available before that date, then update it according to a documented rolling or expanding-window rule
Q3How should I handle daylight saving time?
Align bars to the exchange’s local session using historical time-zone rules. A fixed UTC offset can shift opening and closing intervals when daylight-saving rules change
Q4Does time-of-day normalization reveal the best time to trade?
No. It rescales return magnitudes for comparison. It does not predict direction, guarantee execution, or show that any time interval has positive returns after costs
Sources and further reading
Report an issue
We’ll prepare an email with this article link. Mark receives the report only after you send it
Quick check
Read the guide? Check yourself with 3 questions
Question 01
What does an intraday seasonal factor describe?
Choose an answer to see the explanation
Options glossary
Volatility calculated from price changes that occurred under a stated return, sampling-window, and annualization rule; different conventions can produce different values.
Read the deeper guideGARCHA time-series model that updates conditional variance from past squared shocks and prior variance; it models volatility persistence, not return direction.
Read the deeper guideVolatility coneA set of historical realized-volatility ranges or percentiles across rolling horizons, used to place current implied volatility in context rather than declare absolute value.
Read the deeper guide