---
title: "Corwin-Schultz Spread Estimator: Formula"
description: "The Corwin-Schultz estimator infers the bid-ask spread from daily high and low prices. It uses the idea that the high-low range grows with time and..."
canonical: https://www.getswoopr.com/indicators/market-microstructure/corwin-schultz-spread-estimator/
source: "Swoopr Investment: https://www.getswoopr.com"
---

## Direct Answer



> The Corwin-Schultz estimator infers the bid-ask spread from daily high and low prices. It uses the idea that the high-low range grows with time and volatility while the spread component does not, so comparing one-day and two-day ranges isolates the spread. The output is an estimate of the proportional quoted spread, so a higher value means a wider estimated spread.





      


# Corwin-Schultz Spread Estimator: Formula, Meaning, Signals, Examples and How to Use It



## How Is Corwin-Schultz Spread Estimator Calculated?

The Corwin-Schultz estimator infers the bid-ask spread from daily high and low prices. It uses the idea that the high-low range grows with time and volatility while the spread component does not, so comparing one-day and two-day ranges isolates the spread.

**Formula:** `beta = [ln(H1/L1)]^2 + [ln(H2/L2)]^2; gamma = [ln(max(H1,H2)/min(L1,L2))]^2; alpha = (sqrt(2 beta) - sqrt(beta))/(3 - 2 sqrt(2)) - sqrt(gamma/(3 - 2 sqrt(2))); S = 2 (e^alpha - 1)/(1 + e^alpha)`

**Inputs:**

- Daily high and low for day 1
- Daily high and low for day 2
- Averaging across many day-pairs

**Worked example.** Two consecutive days with high/low of 50.50/49.80 and 50.90/50.00 give a single-pair spread estimate of 0.19% of price. The inputs are illustrative numbers, not market data.

**Reading it.** The output is an estimate of the proportional quoted spread, so a higher value means a wider estimated spread. It is meant to be averaged over many day-pairs, and it works for periods or markets with no quote data.

**Limits.** A single pair can produce a negative estimate, which is usually set to zero or averaged out. The method assumes that highs occur at ask prices and lows at bid prices, and it is biased when volatility is high or trading is infrequent.


      

## What is Corwin-Schultz Spread Estimator?



The Corwin-Schultz estimator infers the bid-ask spread from daily high and low prices. It uses the idea that the high-low range grows with time and volatility while the spread component does not, so comparing one-day and two-day ranges isolates the spread.




## How to use Corwin-Schultz Spread Estimator



The output is an estimate of the proportional quoted spread, so a higher value means a wider estimated spread. It is meant to be averaged over many day-pairs, and it works for periods or markets with no quote data. A reading alone is never a buy or sell signal; it needs context from price structure, volume, volatility and the broader market regime.




## Strengths



- It needs only daily high and low prices, which exist for almost every historical equity series, so it extends to periods with no quote data.
- Using one-day and two-day ranges separates the volatility part of the range, which scales with time, from the spread, which does not.
- Reproducible when the formula and data convention are fixed.




## Weaknesses and limitations



- Overnight price gaps get included in the two-day range, so gaps from news inflate the apparent spread unless the formula is adjusted for them.
- Highs and lows are recorded across venues and sessions, so a single outlier print can shift the range and the resulting estimate.
- Correlated indicators can create false confidence by repeating the same underlying information.




## Editorial and risk note



This page is educational content, not individualized investment advice. It should not imply guaranteed prediction, accuracy or outperformance.







## Frequently Asked Questions


        



Is Corwin-Schultz Spread Estimator a buy or sell signal?




No. The output is an estimate of the proportional quoted spread, so a higher value means a wider estimated spread. A single pair can produce a negative estimate, which is usually set to zero or averaged out. A trade built on it still needs a trigger, an invalidation rule, a position size and realistic execution assumptions.










What is the best setting for Corwin-Schultz Spread Estimator?




Corwin-Schultz Spread Estimator takes these inputs: daily high and low for day 1; daily high and low for day 2; averaging across many day-pairs. There is no universal best setting for the tunable ones, so test them across instruments, regimes and out-of-sample periods and favor stable parameter regions over one historical winner.










Can Corwin-Schultz Spread Estimator be used by itself?




A single pair can produce a negative estimate, which is usually set to zero or averaged out. The method assumes that highs occur at ask prices and lows at bid prices, and it is biased when volatility is high or trading is infrequent. For that reason it is read next to measures of direction, participation, valuation, liquidity and risk, not alone.










Does Corwin-Schultz Spread Estimator work on every timeframe?




The calculation (beta = [ln(H1/L1)]^2 + [ln(H2/L2)]^2; gamma = [ln(max(H1,H2)/min(L1,L2))]^2; alpha = (sqrt(2 beta) - sqrt(beta))/(3 - 2 sqrt(2)) - sqrt(gamma/(3 - 2 sqrt(2))); S = 2 (e^alpha - 1)/(1 + e^alpha)) can be run on any bar size, but behavior is not portable: a reading on a five-minute chart describes a very different market window from the same reading on a daily chart. Validate the exact timeframe before relying on it.










Why does Corwin-Schultz Spread Estimator give false signals?




Overnight price gaps get included in the two-day range, so gaps from news inflate the apparent spread unless the formula is adjusted for them. Highs and lows are recorded across venues and sessions, so a single outlier print can shift the range and the resulting estimate. Lag, noise and regime changes add to this, because market participants react to new information after the reading is calculated.










How should Corwin-Schultz Spread Estimator be backtested?




Rebuild Corwin-Schultz Spread Estimator from daily high and low for day 1 using point-in-time data, write the rules before testing, include delisted securities where relevant, model realistic fills and costs, reserve a validation sample and compare with a simpler baseline.










## References

- [The Journal of Finance: A Simple Way to Estimate Bid-Ask Spreads from Daily High and Low Prices (2012)](https://doi.org/10.1111/j.1540-6261.2012.01729.x)



S




Swoopr Editorial Team



The Swoopr Editorial Team produces independent investment education, research, and tools for understanding markets, evaluating opportunities, and managing risk. All content is educational only and does not constitute personalized investment advice.



See our [editorial policy](https://www.getswoopr.com/legal/editorial-policy/) and [corrections policy](https://www.getswoopr.com/legal/corrections-policy/).
