1.3 Call auctions and the equilibrium price
Motivation
The open and (since August 2026) the close are set by call auctions. They are also how trading restarts after a market-wide halt (1.5). The algorithm is simple and has a clean characterisation, which you will need when you study opening gaps and closing-auction imbalances.
1.3.1Cumulative demand and supply#
Setup
Orders are collected over a period and executed together at one price . Each buy order has a limit (the most it will pay) and quantity ; a buy market order has . Each sell order has a limit (the least it will accept) and quantity ; a sell market order has . Let be the finite set of distinct finite limit prices on either side. Define cumulative demand and supply:
is non-increasing and non-decreasing in . At a single clearing price , every buyer with is willing to trade and every seller with is willing. The executable volume is
1.3.2The volume-maximising price#
The exchange rule (NSE, FAQs on Pre-open Session in Equity (CM) Segment, version of 1 Jul 2026, Q8, annexed to circular NSE/CMTR/74969) is: choose that maximises ; among ties, minimise the imbalance (the unmatched quantity); among remaining ties, choose the price closest to a reference price (the previous close). If there is no equilibrium price; the stock opens on its first continuous-session trade.
Proposition 1.1the volume-maximising price is the crossing price
Assume on . Let if this set is non-empty, and let be the largest element of below (if any). Then . If for all , the maximum is at . Restricting candidates to loses nothing: no price outside gives a larger .
Proof
Split into and . By definition of as the smallest price with , every has , so there. is non-decreasing, so .
On we need for all , not just at . This holds because for , using the monotonicity of both functions. So on , and is non-increasing, so . Combining the two halves gives the first claim. If everywhere on , then everywhere, and is non-decreasing, so the maximum is at the top price.
For prices outside : and are left- and right-continuous step functions respectively, whose only jumps are at points of . For strictly between consecutive points of , and . Hence , since . Prices below have the same as (every finite buy limit is at least ) but equal only to market sells, so is no larger than ; prices above are symmetric.∎
The proposition says the auction finds the crossing of the demand and supply curves, as in a first-year economics diagram, with the discreteness handled by comparing the two prices adjacent to the crossing. The tie-breaks then pick, among volume-maximising prices, the one that leaves the least on the table and stays closest to the last known value.
Two further properties
- Individual rationality. Every executed buyer has and every executed seller has . No one trades at a price worse than their limit.
- Allocation of the long side. At the chosen , the short side of the market fills completely; the long side is rationed. Market orders fill first, then limit orders by price and time priority. The unfilled residue of the long side becomes the imbalance, which carries into the continuous session as resting limit orders. (How unmatched pre-open market orders are priced when they carry over is set in the NSE pre-open FAQ; check it rather than assume.)
1.3.3Worked example: a pre-open book#
Worked example
A stock closed yesterday at ₹100.50. At the end of pre-open order entry the book is:
| Buy limit (₹) | Qty | Sell limit (₹) | Qty | |
|---|---|---|---|---|
| market | 100 | 98 | 200 | |
| 102 | 300 | 99 | 300 | |
| 101 | 200 | 100 | 300 | |
| 100 | 400 | 101 | 400 | |
| 99 | 500 | 102 | 600 |
Cumulative schedules:
| 98 | 99 | 100 | 101 | 102 | |
|---|---|---|---|---|---|
| 1500 | 1500 | 1000 | 600 | 400 | |
| 200 | 500 | 800 | 1200 | 1800 | |
| 200 | 500 | 800 | 600 | 400 |
is the first price with ; . , so the open is ₹100 with 800 shares traded. Sellers fill completely (800 = ). On the buy side, 1,000 shares were willing; the market order (100) and the limits at 102 (300) and 101 (200) fill fully, and 200 of the 400 at ₹100 fill by time priority. The imbalance of 200 shares at ₹100 rests as the best bid when continuous trading starts. The stock opens 0.5% below yesterday's close.
This example is the fixture in the tests of Exercise m01_mechanics (in the app: Exercises → m01_mechanics). Implement auction_schedule and equilibrium_price there. The test checks your answer against a brute-force search over a fine price grid on 200 random books, which is a numerical check of Proposition 1.1.
Practitioner notes
- During pre-open, exchanges display an indicative equilibrium price and the imbalance. Desks watch these to forecast the open. Because entry now ends at a random time and market orders are allowed only in the first five minutes, late indications are more reliable than early ones.
- Thin stocks often have no crossing in pre-open, so the "open" in your data is just the first continuous trade.
- The closing auction concentrates liquidity at one instant. Index funds rebalance there, so on index-rebalance days the closing imbalance can be large. Business Today (5 Aug 2026) reported sharp closing swings in the first days of CAS. Large imbalances are a signal to study, not a free trade: the price that clears them already includes the information.