The Roll (1984) estimator infers the effective bid-ask spread from the serial covariance of consecutive price changes, using only trade price data and no quote or order-book data:
Spread = 2 × √(−Cov(Δp_t, Δp_{t−1}))
The intuition is straightforward: bid-ask bounce induces negative first-order autocorrelation in transaction prices. When you buy at the ask, the next transaction is more likely at the bid (a lower price), and vice versa. The magnitude of this bounce, captured by the negative covariance, is proportional to half the spread.
Conditions and limitations
- The estimator assumes the spread is constant and the underlying value follows a random walk (no informational drift). In trending or mean-reverting markets, the covariance has additional components that contaminate the estimate.
- It can fail if the first-order covariance is positive (trend dominates the bounce), yielding a negative value under the square root. In practice this is treated as a zero spread or handled with a modified estimator.
- It requires high-frequency data (tick or minute-level) for precision; daily prices yield noisy estimates suitable mainly for cross-sectional comparison.