Skip to Main Content

Market Structure

Lee-⁠Ready Algorithm

The Lee-Ready algorithm is a 1991 trade classification rule that signs trades as buyer or seller initiated using the quote midpoint, with the tick rule breaking ties.
Also Called
  • Lee-Ready Rule
  • LR Algorithm
  • Lee and Ready 1991
  • Lee-Ready Trade Classification
  • Quote Rule with Tick Test
By InsiderFinance TeamUpdated Sources & Methodology

Classify the Three Prints

Total signed volume: −1,000 shares. Total executed volume: 2,800 shares.
TradeClassification StepSigned Shares
900 at $40.14Above $40.12 midpoint+900
1,500 at $40.12Below the last different price, $40.14−1,500
400 at $40.11Below $40.12 midpoint−400
Total signed volume: −1,000 shares. Total executed volume: 2,800 shares.
On This Page
  1. What is the Lee-Ready algorithm?
  2. How the Lee-Ready quote rule works
  3. Worked example
  4. How the tick rule resolves midpoint trades
  5. Lee-Ready example: signing three trades
  6. Limitations of the Lee-Ready algorithm
  7. Bottom line
  8. FAQ

Key Takeaways

  • Lee-Ready classifies trades using the quote midpoint, then uses a tick comparison for midpoint ties.
  • Prices above the matched midpoint receive +1; prices below it receive −1.
  • At the midpoint, compare with the most recent earlier trade at a different price.
  • Multiply each classification by its trade size, then add the results to calculate signed volume.
  • The worked three-print sequence produces −1,000 signed shares from 2,800 total shares.

What is the Lee-Ready algorithm?

The Lee-Ready algorithm is a trade classification rule that combines a quote comparison with a tick comparison to classify completed trades as buyer or seller initiated. Charles Lee and Mark Ready introduced it in 1991. The output assigns a positive or negative sign that can be multiplied by trade size and accumulated through an interval.

How the Lee-Ready quote rule works

Calculate the midpoint of the matched bid and offer. A trade above that midpoint receives +1; a trade below it receives −1.

With a $40.10 bid and $40.14 ask, the midpoint is $40.12. A $40.13 print receives +1 even though it is inside the spread. The algorithm’s midpoint comparison and a literal execution at the ask are separate price conditions.

Formula

D = +1 when P > M; D = −1 when P < M. When P = M, compare P with the most recent earlier different trade price: higher gives +1 and lower gives −1.
  • P is the trade price and M is the midpoint of the matched bid and offer.
  • D is the buyer-classified (+1) or seller-classified (−1) sign.
  • A midpoint print without an earlier different price remains unclassified.
  • Signed volume equals the sum of D × trade size.
  • The original 1991 implementation matched trades with quotes at least five seconds earlier.

Worked Example

Three consecutive prints arrive in XYZ. The quote matched to each print is $40.10 bid and $40.14 offer, giving a $40.12 midpoint. The first print is 900 shares at $40.14, the second is 1,500 at $40.12 and the third is 400 at $40.11.

  • Midpoint: ($40.10 + $40.14) / 2 = $40.12
  • Print 1: 900 shares at $40.14. Because $40.14 > $40.12 the quote rule assigns D = +1, contributing +900 shares.
  • Print 2: 1,500 shares at $40.12. The price equals the midpoint, so the tick rule compares it with the last different trade price of $40.14. That price was higher, so D = −1, contributing −1,500 shares.
  • Print 3: 400 shares at $40.11. Because $40.11 < $40.12 the quote rule assigns D = −1, contributing −400 shares.
  • Signed volume: +900 − 1,500 − 400 = −1,000 shares on 2,800 shares of raw volume.

The quote rule signs the first trade +900 and the third −400. The midpoint tie uses the prior $40.14 trade to sign the second −1,500. Their sum is −1,000 signed shares from 2,800 total shares.

How the tick rule resolves midpoint trades

For a trade exactly at the midpoint, find the most recent earlier trade at a different price. A higher current price gives +1, and a lower current price gives −1. A tie without the required earlier price remains unclassified.

The original implementation used quotes at least five seconds earlier to address the reporting sequence in its historical data. The matched quote supplies the midpoint for each trade.

Lee-Ready example: signing three trades

All three example trades use the $40.12 matched midpoint. The 900-share trade at $40.14 contributes +900. The 1,500-share midpoint trade follows a different price of $40.14, so its downtick contributes −1,500. The 400-share trade at $40.11 contributes −400.

The signed total is −1,000 shares and the raw volume is 2,800. The grid shows exactly which comparison produces each contribution.

Trade initiation and the seller’s position describe different features of the execution. A short seller can rest an offer that an incoming buyer executes against. The trade is then buyer initiated while the seller establishes short exposure.

The same side-of-quote reading applies to option prints, which options flow compares by execution price, size, strike and expiration.

Limitations of the Lee-Ready algorithm

  • Signed volume is a read of who crossed the spread, built from prices and quotes. Some trades get the wrong sign, so weigh large signed totals over single prints.
  • Match each trade to the quote in force when it printed. A stale or mismatched quote moves the midpoint and misclassifies the trades near it; the original five-second lag addressed the reporting sequence in its historical data.
  • Count unclassified trades separately. A midpoint trade without an earlier different price gets no sign.
  • Separate above-midpoint prints from at-the-ask prints. A $40.13 print inside a $40.10 by $40.14 spread classifies as a buy without touching the ask.
  • The sign reads who crossed the spread, and the position story sits elsewhere: a buyer-initiated trade that lifts a short seller’s resting offer opens a short on the other side.

Bottom line

The Lee-Ready algorithm signs trades as buyer or seller initiated, using the quote midpoint first and the tick test for midpoint ties. Use it to build signed volume from trade data, match each trade with the correct quote, and treat the result as an estimate of who crossed the spread rather than who opened or closed a position.

Clear answers

Frequently Asked Questions

Sources and Further Reading

  1. Lee and Ready: Inferring Trade Direction from Intraday Data
  2. Chakrabarty, Moulton and Shkilko: Short Sales, Long Sales and Lee-Ready Revisited
  3. Holden and Jacobsen: Liquidity Measurement Problems

How entries are sourced, calculated and updated: editorial methodology.

Continue learning