Paper Explained
The Spread Hiding in the High and the Low: Corwin and Schultz
Corwin and Schultz noticed that the daily high is almost always a buy and the daily low is almost always a sell, and built a spread estimator out of that one observation.
July 13, 2026
The paper
A Simple Way to Estimate Bid-Ask Spreads from Daily High and Low Prices
Shane A. Corwin and Paul Schultz · 2012
Read the original →Roll's 1984 estimator promised something wonderful: get the bid-ask spread from prices alone, no quote data needed. Wonderful, except that in practice Roll's estimator misbehaves frequently, delivering nonsense answers for a large fraction of real stocks.
For nearly thirty years, the profession lived with that. Then, in 2012, Corwin and Schultz noticed that everybody had been ignoring two numbers sitting right there in every price database: the daily high and the daily low.
The problem: we still need cheap spreads
Why does anyone still care about estimating spreads from low-frequency data in 2012, when intraday quote data exists?
Because for most of the world, most of the time, it does not exist. Historical stock data going back to the 1920s has no quotes. Emerging market equities often have no reliable quote feed. Corporate bonds barely trade. Anyone wanting to study liquidity across decades, across countries, or across illiquid asset classes needs an estimator that runs on nothing but daily bars: open, high, low, close, volume.
Roll's estimator is the classic answer, and it is fragile. Amihud's ILLIQ needs volume and measures price impact rather than the spread itself. There was room for something better.
The key idea via analogy: the day's ceiling and the day's floor
Here is the observation the paper is built on, and once you hear it, it is obvious.
The highest price of the day is almost certainly a buy. Think about it: to print the day's high, someone must have reached up and paid the ask at the moment the stock was at its peak. Nobody sells at the highest price of the day into a bid, because the bid is below.
The lowest price of the day is almost certainly a sell, by exactly the same logic.
So the daily high is sitting on the ask, and the daily low is sitting on the bid. That means the gap between the high and the low contains, baked inside it, one full bid-ask spread, on top of however much the stock genuinely moved during the day.
In other words:
high-to-low range = how much the stock actually moved + the spread
Now the puzzle. That is one equation with two unknowns: the true volatility and the spread. You cannot solve it. You need another equation.
Corwin and Schultz found it by asking a wonderfully clever question: what happens if you look at two days instead of one?
The two ingredients scale completely differently with time.
- Volatility grows with the length of the window. Over two days, a stock genuinely moves around more than over one day. This is the ordinary square-root-of-time behaviour that anyone who has priced an option knows in their bones.
- The spread does not grow at all. The high over a two-day window is still just one high, sitting on one ask. The low is still one low on one bid. The spread contributes the same fixed amount whether your window is one day or two.
There it is. The spread is a constant that does not care about the window length, and volatility is a component that expands with it. Compare the single-day high-low range to the two-day high-low range, and the different scaling behaviour lets you algebraically separate the two, solving for the spread and getting the volatility for free as a bonus.
That is the whole idea, and it is an outstandingly elegant one. Two windows, two scaling laws, two unknowns, one solution.
Why it mattered
- It works substantially better than Roll. Corwin and Schultz showed their estimator generally outperforms the other low-frequency spread estimators, tracks actual quoted and effective spreads more closely, and does so across a wide range of stocks. That is a real improvement in a place where researchers had been quietly making do with a bad tool.
- It is trivially cheap to compute. Every price database on earth has daily high and low. There is no estimation, no optimization, no trade classification, no likelihood function. It is a formula.
- It unlocked liquidity research where none was possible. Corporate bonds, historical equity data, emerging markets, crypto exchanges with thin data, anything without a clean quote history: this estimator gives you a defensible liquidity number. That is why it spread so fast into empirical finance beyond microstructure.
- It rehabilitated a piece of data everyone was throwing away. The daily high and low are printed in every newspaper and stored in every database, and until this paper, almost nobody used them for anything except charting. A paper that finds real information in data everyone already had is a paper worth admiring.
The honest limitations
- It can still go negative. Like Roll's estimator, the formula can produce a negative spread estimate, which is meaningless. This happens especially when a stock is very liquid (spread near zero, so noise dominates) or when the overnight price gap is large. The authors recommend setting negatives to zero and averaging, which is defensible but is still a fudge, and it introduces an upward bias.
- Overnight moves break the assumptions. The derivation assumes prices evolve continuously through the window. But markets close, and stocks gap at the open. A big overnight jump inflates the two-day range without the extra volatility having been "earned" during trading hours, which distorts the comparison the estimator depends on. Corwin and Schultz adjust for this, but the adjustment is imperfect.
- The high is not always the ask, and the low is not always the bid. In a thinly traded stock that trades only a handful of times in a day, the day's high may simply be the only trade there was, and it tells you nothing about where the ask sat. The estimator works best on stocks that trade often enough for the high and low to genuinely be extremes, which is somewhat awkward given that the stocks you most want to measure are the thin ones.
- It assumes the spread is constant within the window. Spreads widen at the open, tighten midday, and widen again at the close. The estimator returns something like an average, and it is not well suited to studying intraday liquidity dynamics.
- It is a proxy, and should be used as one. If you have quote data, use quote data. This is what you reach for when you do not.
The one-line takeaway
Corwin and Schultz spotted that the daily high is a buy sitting on the ask and the daily low is a sell sitting on the bid, so the high-low range contains one full spread plus a day's worth of real volatility, and because volatility grows with the window while the spread does not, comparing one-day and two-day ranges lets you separate the two and read off the spread.