Reaction windows

How to measure price reaction after market news

A clean event-window measurement needs an honest price anchor, matching endpoints, and a clear distinction between what happened before and after publication.

Published and reviewed:

Direct answer

Choose the last directly observed price at or before the headline as the anchor, then compare it with directly observed prices one, five, fifteen, thirty, or sixty minutes later. Calculate each move as (later price / anchor price - 1) × 100. Keep the move before publication separate, reject stale or carried endpoints, and read longer windows as increasingly shared with other news and market flow.

01 · Set the anchor

Start from the last price the market had actually printed.

Let T0 be the publication timestamp. The anchor should be the latest directly observed price at or before T0, not the closest price on either side. Choosing a later bar would let information from after publication leak into the starting value.

A one-minute bar also needs a clear timestamp convention. MarketNewsCurve treats the selected value as an observed endpoint and labels the window by elapsed minutes, so the same rule can be applied across dates and providers.

02 · Calculate consistently

Use the same percentage-return formula for every window.

For an after window, divide the endpoint price by the T0 anchor, subtract one, and multiply by 100. A positive result means the ETF ended the window above the anchor; a negative result means it ended below it.

Measure the before window separately, using an equally distant valid price before T0 and the publication anchor. Do not subtract the before return from the after return: they describe two adjacent paths with the same boundary, not one combined trade.

  • After move = (P(T0 + Δ) / P(T0) - 1) × 100.
  • Before move = (P(T0) / P(T0 - Δ) - 1) × 100.
  • QQQ minus SPY = QQQ after move - SPY after move, usually expressed in percentage points or basis points.
03 · Choose the window

Short windows isolate immediacy; long windows add context and overlap.

One minute is closest to the first observable price response, but it can be noisy. Five and fifteen minutes are often more useful for seeing whether a move persisted. Thirty and sixty minutes describe a broader repricing path, but they are more likely to include new headlines, scheduled events, or a session boundary.

The best window depends on the question. A fast surprise may need one and five minutes. A policy statement or earnings call may unfold over thirty or sixty minutes. Compare several windows instead of choosing the one that best supports a preferred story.

  • 1m: immediate but noisy.
  • 5m: early direction and stabilization.
  • 15m: short narrative window.
  • 30m/60m: broader repricing with more overlap risk.
04 · Protect the measurement

Missing, stale, or carried prices should produce no reaction number.

An exact-looking percentage is not useful when its endpoint is not a fresh observed price. If the target time has not arrived, the nearest valid price is too stale, or the curve is only carrying a prior price through a no-trade period, the correct output is unavailable.

Finally, compare QQQ and SPY under the same window and quality rules. Independent quality checks matter because one ETF can have a valid endpoint while the other does not. Preserving that distinction is better than inventing pair-level precision.

Reaction windows

Primary references

MarketNewsCurve

Search historical headlines, choose a reaction window, and compare the measured before-and-after rows for both QQQ and SPY.