Oisigma/Blog
Research & notes

Earnings Volatility and Expected Ranges: What a Band Sees

A company announces that it will report earnings after the close on a given date. Everyone watching the stock knows the date. The chart's volatility band, however, is looking at something else entirely: the last few months of price moves, none of which contain the report.

That gap between what the calendar knows and what the band knows is the whole subject of this post. It is a mechanical point, not a market opinion, and it is easy to check with arithmetic.

What the band knows on the morning of the report

Oisigma's How It Works page describes the method as a rolling window of recent returns, typically about the last 60 bars, with every calculation using only data available at the prior bar. The FAQ calls the construction strictly causal. There is no input for an event calendar, and no field in which a scheduled date could be entered.

So on the morning of a report the band reflects the preceding quarter of ordinary sessions. If those sessions were quiet, the band is narrow, and it stays narrow right up to the print. That is not a flaw in one particular band. It is what a band built from realized returns is: a description of what recent price moves looked like, with no knowledge of what is scheduled. The primer on rolling volatility covers why the window is the only source of information the estimate has.

What the spike does when it arrives

Take a deliberately simple, constructed example, not market data. Suppose a 60-bar window of daily returns in which every day moves about 1 percent in one direction or the other. The volatility estimate is about 1 percent. The report lands, and the next close is 8 percent away from the previous one.

Measured against the range that existed before the bar, that is a move eight times the estimate, far outside even the outer band. Nothing about this is surprising to the arithmetic. The band for that bar was fixed at the prior close.

Now the bar closes and joins the window. With 59 returns of 1 percent and one of 8 percent, the mean square is (59 + 64) / 60, about 2.05, and the estimate rises to about 1.43 percent. One observation lifted the estimate by roughly 40 percent. This is a simplified calculation that ignores the model's drift handling, but the direction and rough size follow from any estimator that squares its inputs. The return-space framing is the one in return space vs price space; the report enters as a percentage move, and its effect on the range is a plain consequence of its size.

The aftermath: a wide band for a defined period

For as long as that observation stays in the window, the band is wider. Ordinary sessions after the report, which might move a percent or so, now sit comfortably inside a range sized for a much larger shock. A reader may see fewer markers over that stretch, and the cause would be the window rather than a change in the market.

Then the clock runs out. About 60 bars after the report, the observation drops off and the band can narrow on a day when nothing unusual happened. The squeeze post describes the same behavior from the narrowing side: a band narrows because recent returns were small, and it widens because they were large, with a lag set by the window.

There is a regularity worth noticing here, and it is arithmetic rather than a finding. Companies that report quarterly are about 63 trading days apart. A 60-bar window therefore holds at most one report, and for a stock that reports on schedule it holds one most of the time. For such a name the band's resting width already includes an earnings day, and the swing between a narrow band and a wide one depends on where the last report sits in the window.

How this differs from an options-implied expected move

Traders who follow earnings often look at the expected move implied by options prices. That is a different quantity, not a competing estimate of the same one. Implied volatility is a price set by the market, and the market knows the date and can price the event in advance. A realized-return band cannot. The post on implied vs realized volatility draws the distinction, and none of the above is a statement about which one describes a given report better. Oisigma has not published a comparison of the two on earnings days.

What has not been published

The boundary is plain. Oisigma's published containment results are scored on consecutive closes, and none of them separates earnings days from other days, or reports containment in the weeks after a report. The crisis-onset post covers a related published limit, conditioned on the VIX rather than on a company event, so it is not an earnings statistic. The working paper validates the range's calibration, not the profitability of any use, and whether any use around earnings delivers value after real-world costs is an open question. Past behavior is not a guarantee of future results.

So the claims above are about how a rolling window handles one large observation. They describe a mechanism, not a measured effect on containment around reports.

The takeaway

A volatility band built from past returns cannot see a scheduled report coming, takes the resulting move as one large observation when the bar closes, stays wider for roughly the length of its window, and then narrows when the observation ages out. An options-implied move is priced with the date in view; a rolling band is not, and the two should not be read as the same number. How much any of this changes calibration in practice around earnings is not something the published record measures.

Frequently asked questions

Should the earnings day be excluded from the volatility window? The published method does not exclude any days, and the published calibration results were scored with every day included. Removing event days would be a different construction, and its calibration has not been tested or published here. Any such change would also need a rule for deciding which days count as events.

Does this apply to ETFs, futures or currencies that have no earnings? The mechanism applies to any series with a large single-bar move, whatever caused it. Instruments without company earnings have other scheduled events, such as economic releases, that a rolling window cannot anticipate in the same way. The cross-asset post covers the instruments in the published tables; none is scored by event type.

Does the range repaint when the earnings move lands? The How It Works page says that a closed bar's range and markers do not change afterward, since each calculation uses only data available at the prior bar. What changes after the report is the range for later bars, as the new observation enters the window. The repaint post covers the definition in more detail.

Does an after-hours earnings move show up in the daily close? That depends on the chart. A daily bar reflects whichever session TradingView's settings for that symbol define, so a chart set to regular hours records the reaction in the next session's bar, while one that includes extended hours may record part of it earlier. The closing prices post explains why the band is scored on the close of the bar the chart displays.

For readers who like to see a mechanism on a live chart, BTM draws a close-based expected range on any TradingView symbol, so the next report on a stock already on a watchlist is a place to watch the band take in the move. You can start a free 30-day trial and see how it behaves there.

Now, your charts

Curious how this looks on your charts?

Try it free for 30 days and see the range update as new bars print, on whatever symbols and timeframes you actually trade.

Start your free trial
Complete checkout
Read the paper

30 days free, then $15/mo. Cancel anytime from your account.

Pick up where you left off.