Price-time priority allocates better prices first and earlier orders within a price. Follow a FIFO queue, distinguish depth from queue position and check venue-specific exceptions.
Price-time priority
Price-time priority is a matching rule that ranks eligible resting orders by price first and, at the same price, by their priority time: earlier orders execute before later ones. It is often called FIFO matching, for “first in, first out.” For a quant modelling passive execution, the consequence is immediate: a trade at your limit price can occur without filling your order.
The rule has two stages. An incoming buyer reaches the lowest eligible ask before higher asks; an incoming seller reaches the highest eligible bid before lower bids. Time breaks the tie within a price. An older, worse-priced order does not jump ahead of a newer, better-priced order.
A queue of orders, not just a quoted size
Consider an original synthetic order book on one venue in continuous trading. The best ask is USD 101 per share. Two displayed sell orders have equal eligibility: A arrived first for 100 shares, then B for 100 shares. Assume strict FIFO at this price, no hidden or reserve quantity, no amendments, cancellations or competing events, and a buyer permitted to pay 101.
An incoming buy for 150 shares produces:
Resting sell order
Starting shares
Shares executed
Shares remaining
A — earlier
100
100
0
B — later
100
50
50
Total
200
150
50
A is exhausted before B receives anything. B does not get half the incoming order merely because it supplied half the initial displayed size. That would be a different allocation rule.
FIFO queue at USD 101 per share: older A has 100 shares and newer B has 100. An incoming buy of 150 fills all 100 of A and 50 of B, leaving 50 of B. The level initially totals 200 shares, while B has only A’s 100 ahead.
Original synthetic single-venue example. Width represents shares. Solid blue is executed quantity; pale blue is the unfilled remainder. Orders have equal eligibility under the stipulated FIFO rule, with no intervening events.
The distinction between level size and queue position matters. Initially the level contains 200 shares, but B has 100 shares ahead of it. A price-level snapshot reporting “200 at 101” does not reveal that ordering. Nor does a later fall in aggregate size identify whether a cancellation removed quantity ahead of B or behind it.
The small equation behind a fill model
For one eligible resting order at a price, let v be its remaining size, H the shares with priority ahead of it, and Q the incoming executable quantity that reaches this price. Under the frozen FIFO assumptions above, its filled quantity is
F=min(v,max(0,Q−H)).
All quantities are shares and nonnegative. For B, v=100, H=100 and Q=150, so F=50. If only 100 incoming shares reach the level, B receives zero. If 200 reach it, B fills its entire 100 shares. Even more incoming volume cannot fill B beyond its remaining size.
Here Q is quantity available at this price after better-priced liquidity has been processed. It is not automatically the original order size, and it is not every trade print at the price across all venues. A historical simulation must also account for when its own order could have reached the matching engine. Using a snapshot observed before submission as a guaranteed queue position builds an unwarranted fill into the result.
The Order Books lesson extends this calculation to cancellation ambiguity, proportional allocation and snapshot-based simulation. Its public page provides a preview; the full lesson requires membership.
Check what “time” means on the actual venue
FIFO is a specified allocation mechanism, not a promise that the oldest order anywhere always wins. CME documents FIFO alongside pro-rata and hybrid algorithms. Its FIFO documentation says increasing quantity, changing price or changing the account number loses priority and re-queues the order. A product's actual algorithm therefore belongs in the model specification.
Display status can add another ranking stage. Nasdaq Equity 4, Rule 4757 specifies price/display/time processing, including separate treatment of displayed and non-displayed interest. Rule 4756 preserves priority for a partial size reduction, while other modifications generally replace the order with a new timestamp, subject to stated exceptions. Hidden quantity, reserve refreshes and special order types require their own applicable provisions; the two-order illustration does not settle their priority.
For an execution strategy, time priority creates a trade-off. Repricing may improve the limit price while giving up accumulated queue position. Waiting can preserve priority but leave the order exposed to adverse selection: a fill may arrive when trading against that order is especially attractive to the other side. Queue priority helps explain who trades first; it does not establish that the resulting trade is profitable.
Sources
Rishi K. Narang, Inside the Black Box: A Simple Guide to Quantitative and High-Frequency Trading, second edition (Wiley, 2013), Chapter 7, “Aggressive versus Passive,” p. 121 — price ranking, visibility and time tie-breakers, and the contrast with proportional allocation. The queue and figure here are original.
Nasdaq Equity 4, Rules 4756–4757 — order timestamps, modification provisions and price/display/time ranking. Official rules checked 27 October 2026, Australia/Melbourne.