Futures Exchange Matching Algorithms: How the Exchange Decides Who Gets Filled First
Understanding matching algorithms isn't optional for serious futures traders. The algorithm the exchange uses determines whether your limit order gets filled before or after someone else's, whether size works in your favor or against you, and why some markets reward patience while others reward size. Most retail traders assume all futures markets work the same way. They don't.
Overview #
Every futures exchange operates a matching engine — software that takes incoming orders and determines how they pair with resting orders in the book. When you hit buy and a seller is sitting there waiting, the engine decides who fills whom, and at what quantity. Simple enough when the math is clean. It gets complicated fast when multiple orders sit at the same price, when the order book is thick, and when millions of contracts are changing hands daily.
The matching algorithm is the ruleset. Get it wrong and you're fighting it without knowing why. Get it right and you can position around it — joining queues early on FIFO markets, showing appropriate size in pro-rata markets, understanding why that 10,000-contract bid in the Two-Year Note treated your 1-lot like background noise.
CME Group, which runs the dominant US futures markets on its Globex electronic platform, uses multiple algorithms depending on the instrument. The same exchange, different products, different rules. Every futures trader should know which algorithm governs the product they trade.
The matching algorithm is published for every Globex product. CME's "Globex Product Reference Sheet" lists the algorithm for each contract in a downloadable spreadsheet. Most traders never look at it. The ones who do have an informational edge on every single trader who doesn't.
Key Concepts #
Price/Time Priority (FIFO) #
FIFO — First In, First Out — is the bedrock algorithm of liquid futures markets. Price takes absolute precedence. If two orders are at different prices, the better price fills first, period. When multiple orders sit at the same price, the timestamp breaks the tie: the order that arrived first fills first.
FIFO is used for virtually every liquid outright futures contract on CME Globex: E-mini S&P 500 (ES), E-mini Nasdaq-100 (NQ), Crude Oil (CL), Gold (GC), the Euro (6E), and most currency futures. If you trade these markets, you operate in a pure FIFO world.
The implications are direct. Your position in queue is determined entirely by when your order arrived at the exchange. Move your order — cancel and replace at the same price — and you lose your queue position. Join a level early and every order placed after you stands behind you. Join late when 500,000 contracts are already ahead of you, and market orders might exhaust the entire queue before reaching yours.
Pro-Rata Matching #
Pro-rata distributes fills proportionally by order size. When an aggressor order hits a price level, the fill is split among all resting orders at that price in proportion to their size relative to the total resting size. A 10,000-contract bid in a market where 100,000 contracts are resting gets roughly 10% of any incoming sell order.
The behavioral consequence is immediate and predictable: every participant has an incentive to show larger size than they actually want filled. If you need 100 contracts filled, post 500 — your proportional claim on each incoming aggressor order increases. This is exactly why Eurodollar (GE) futures, which used allocation/pro-rata mechanics before transitioning to SOFR, showed books with millions of contracts at each price level. The size was partly real, partly strategic inflation to maximize pro-rata allocation.
Allocation Algorithm #
Allocation is CME's most commonly used non-FIFO algorithm, applying to many interest rate products. It combines two steps:
- Top Order Priority: The first order placed at a price level receives 100% fill until satisfied, then is removed. Being first at a new price level earns you priority — but only one order holds top position.
- Pro-Rata Residual: After the top order is completely filled, remaining orders at that price are filled pro-rata by size.
As @SMCJB explains, Eurodollar futures used allocation, not pure pro-rata: the first order in the book gets filled 100% first, then everything else pro-rates. This creates a hybrid dynamic — queue position matters for the single top-of-book slot, size matters for everyone else.
Lead Market Maker (LMM) Algorithms #
Some products include a configurable percentage reserved for a designated Lead Market Maker. The exchange contractually designates one or more market makers with special fill priority — a reward for the obligation to quote tight two-sided markets. In FIFO with LMM, the LMM receives a pre-specified percentage of each incoming order before the remaining quantity goes to FIFO queue. In Eurodollar options (when they traded actively), a more complex LMM mechanism applied.
LMM fills are exchange policy, not market manipulation. The designated market makers accepted tight quoting obligations in exchange for fill priority. Retail traders rarely notice this unless trading illiquid products where LMM presence is dominant.
Split FIFO and Pro-Rata #
Some agricultural contracts on CME use a hybrid: a fixed percentage of each incoming order goes to FIFO (rewarding early queue entry), and the remaining percentage distributes pro-rata by size. Corn futures (ZC) historically used 40% FIFO / 60% pro-rata split. This incentivizes both queue positioning and size display — you want to be early AND large.
Pro-Rata Allocation = (Your Order Size / Total Resting Orders at Price) × Aggressor Order Quantity
For a 10-lot resting in a 20,000-lot book hit by a 500-lot aggressor: (10 / 20,000) × 500 = 0.25 → rounds to 0 → you get nothing
For a 100-lot resting in the same book: (100 / 20,000) × 500 = 2.5 → rounds to 2 → minimum allocation may apply
How It Works: FIFO in Practice #
When a market order or aggressive limit order arrives at the exchange, the matching engine processes it against the best resting price. All orders at that price are queued chronologically. The incoming order works through the queue until satisfied or the price level is exhausted.
Critical mechanics:
Queue position is immutable during matching. Once an aggressor order enters the matching phase, it executes atomically. You cannot observe an incoming order and cancel your resting order to avoid getting filled. As @josh explains, when a large buy sweeps the book, it matches in a single atomic transaction from the perspective of external participants — there is no observable intermediate state that lets anyone cancel resting orders. If your resting sell is in the path of the sweep, you fill.
Canceling costs queue position. Every time you modify or cancel-replace an order at the same price, that order goes to the back of the FIFO queue. Traders who move orders frequently give up accumulated queue position. Experienced futures traders are very deliberate about when they cancel and re-enter.
Price gaps skip queue priority entirely. If price gaps through a level, everyone at that level fills simultaneously. Queue priority matters only when price trades at your level incrementally, consuming the queue one order at a time.
Stop orders and FIFO. On CME, stop market orders are converted to stop limit orders with protection (stop price ± a non-reviewable range). When triggered, they join the queue as limit orders. The FIFO queue applies when they enter the book post-trigger. However, if the entire resting quantity at the stop price is hit simultaneously, FIFO within that level doesn't matter — everyone gets filled.
In pure FIFO markets: (1) Enter your limit order early to claim queue position. (2) Do NOT cancel and re-enter at the same price unless you have a reason that outweighs losing your spot. (3) Check queue depth at your target level before assuming a brief touch will fill you.
How It Works: Pro-Rata in Practice #
In pro-rata markets (and the residual pro-rata phase of allocation markets), the fill formula is size-proportional. This creates several observable behaviors:
Book inflation. Every participant has structural incentive to post more size than they need. In Eurodollar futures when they were actively traded, 20,000+ contract resting bids were common at every price level. Most of that was strategic size inflation — participants showing large size to claim larger pro-rata allocations.
Small order disadvantage. A 10-lot in a 50,000-lot book is fighting for 0.02% of each incoming fill. In active markets, the minimum allocation rule (CME enforces a minimum pro-rata fill, typically 2 contracts for some products) may mean 10-lots get nothing at all from pro-rata rounds where the math rounds below the minimum.
As @josh walked through the math: for a 10-lot resting in a 20,000-lot book, you need an aggressor order of at least 4,000 contracts to receive any pro-rata allocation. "When you get a fill this way, maybe you don't actually want to have it anymore."
The "top of book" escape valve. Allocation markets give top-of-book priority to the first order at a new price. If you're the first to post a new best bid or offer, you take 100% of fills at that price until your order is exhausted. After that, pro-rata takes over. This rewards aggressive liquidity providers willing to quote at prices no one else has yet joined.
In pro-rata markets, a large unexpected fill is information. If you post 1,000 contracts and actually receive 600 filled, a very large sell order just swept through — more volume than typical at that level. The fill itself signals the market wants lower. Evaluate whether the position remains valid.
Products by Algorithm #
Knowing the specific algorithm for your market requires consulting CME's Globex Product Reference Sheet, but the broad patterns hold:
Pure FIFO (most liquid contracts):
- E-mini S&P 500 (ES), E-mini Nasdaq-100 (NQ), E-mini Russell 2000 (RTY)
- Crude Oil (CL), Natural Gas (NG), Heating Oil (HO)
- Gold (GC), Silver (SI), Copper (HG)
- Currency futures: 6E, 6J, 6B, 6C, 6A, 6S, 6M
- Most equity index futures globally (Eurex DAX, Nikkei, FTSE)
Allocation (interest rate products):
- SOFR Futures (SR1, SR3, SR1) — replacement for Eurodollar
- Some CME interest rate options
- ZT (2-Year Note) incorporates size priority elements — which is why the book is enormous
Split FIFO/Pro-Rata (some agricultural products):
- Corn (ZC) — historically 40% FIFO / 60% pro-rata
- Some MGEX grain contracts
FIFO with LMM:
- Some equity options on exchanges with market maker obligations
- Certain less-liquid futures products where tight quoting is incentivized
As @SMCJB notes, the vast majority of liquid outright futures on Globex use plain FIFO. The exceptions are concentrated in interest rate products and some agricultural contracts.
Practical Considerations #
FIFO Market Strategies #
Join early, stay in. In ES and NQ, your queue position at a level is an asset. Entering a price 200 contracts ahead of 500 later arrivals means you fill before they do when the market sweeps through. Traders who obsess over timing their limit order entries are often trying to get better queue position — not just hit a specific price.
Don't move orders without reason. Every cancel-and-replace at the same price sends you to the back of the queue. If the market hasn't moved against you, consider whether the order modification is worth losing queue position. Experienced traders often accept the risk of staying in queue versus the certainty of losing position by canceling.
Queue depth matters for target trades. When placing a limit order at a target price in ES, check how many contracts are already resting there. If 10,000 contracts are ahead of you and the market is only approaching your target briefly, you may not fill. Adjust target placement to account for this reality — slightly inside the expected target is sometimes better than at the target if queue depth is prohibitive.
Think about the mechanics when setting stops. Stop orders on CME convert to stop limits. If the market gaps through your stop, you get filled at the gap price (everyone at that level fills simultaneously). If it trades through incrementally, you're in the FIFO queue post-trigger. High-liquidity markets rarely have this as a practical problem, thinly traded sessions are a different story.
Pro-Rata Market Strategies #
Size display matters, but know the math. If you want 50 contracts filled in a pro-rata market, posting 100 or 200 increases your probabilistic fill. But the math (N/R × A) shows that with 50,000 contracts resting and a typical aggressor order, even 200 lots may round to zero or below minimum allocation. In heavily contested price levels, small operators are largely at the mercy of market flow.
Top-of-book priority is real. In allocation markets, being the first order at a new price level earns you 100% fill priority until your order is consumed. This creates opportunities for active traders willing to step ahead of the market — but also risk, since being first at a new price means you're buying/selling where no one else has committed yet.
Large fills signal something. Getting a large pro-rata allocation in an interest rate product often means an unusually large aggressor order came through. Evaluate whether that's the order flow you expected or a warning that institutional size is moving opposite to you.
The ZT Two-Year Note Example #
The 2-Year Treasury Note future deserves special mention. It incorporates size-weighted priority that makes the book uniquely thick. As @lax99 notes, orders in ZT are effectively filled with size as a factor — which explains why the book routinely shows tens of thousands of contracts at each price. Your 1-lot has basically zero priority versus a 10,000-lot order. Retail traders in ZT are queue followers, not queue leaders.
When Matching Algorithms Fail You #
The Full Sweep Problem #
In FIFO markets, if the total resting quantity at your price is less than the incoming aggressor order, everyone at that level fills simultaneously. Queue position becomes irrelevant. This is fine for traders with limit orders — they all get filled. The problem appears when traders are bidding at a support level hoping for a partial fill to test the market: if the level breaks completely and they're fully filled at the same time everyone else is, queue position provided no advantage.
Paper Trading vs. Real Queue Position #
Simulators almost universally ignore queue position. Your simulated 1-lot at a limit price fills the instant market trades that price, regardless of how many real-money contracts were ahead of it. This makes paper trading fill assumptions optimistic for limit orders in thick FIFO markets. Traders who paper trade limit order strategies in ES often find their live fill rates substantially worse — not because the strategy is bad, but because queue position means their orders aren't actually first to fill.
Co-Location and Latency Advantage #
Firms with servers co-located at CME's data center in Aurora, Illinois send orders with approximately 10 microsecond round-trip latency versus 3-10 milliseconds for retail brokers. In fast-moving markets, this difference determines queue position on price-level transitions. When a new price level forms rapidly, co-located firms get orders in first and claim the front of the FIFO queue. Retail traders are structurally behind on initial queue entry at new price levels during volatile conditions.
This doesn't invalidate FIFO markets for retail — most retail traders hold positions for more than a few microseconds and queue position within a stable level is determined by when you placed the order, not your latency. But it's a real disadvantage for strategies that depend on being first to a rapidly changing level.
If you're in the book when a large order sweeps through, you fill. The matching engine doesn't give you time to cancel. This is intentional exchange design. Position sizes should reflect orders you're actually willing to have filled, not just prices you want to influence.
Integration with Other Analysis #
Queue Position and Volume Profile #
Volume Profile shows where volume has traded historically. High Volume Nodes (HVN) are price levels where significant two-sided trading occurred — these are exactly the levels where FIFO queues build deep. Limit orders placed at HVN levels often face hundreds of thousands of contracts ahead in the queue during normal market hours. Value Area boundaries at HVN levels require careful queue depth assessment before assuming a limit order will fill on a brief touch.
Low Volume Nodes (LVN) and single prints see thinner queues. A limit order at an LVN level in a FIFO market may be near the front of a very short queue — and fill quickly when price reaches it. This is part of why LVN levels sometimes produce sharp, fast fills rather than the gradual partial fills seen at thick HVN levels.
Order Flow and Matching Awareness #
Delta analysis (cumulative buyer vs. seller aggression) gives context to what's actually sweeping through FIFO queues. When delta diverges from price — price rises but buy delta is declining — it means the same level of buying is being absorbed by an increasingly thin sell queue. The FIFO queue at the offer is depleting without replenishment, which can precede rapid moves through thin supply zones.
Understanding matching also explains why footprint charts show "unfinished" auctions. When an aggressive order partially sweeps a FIFO queue but leaves some resting orders unfilled before price retreats, that unfinished business often draws price back for a second pass to complete the matching.
The matching engine creates the footprint chart. Every "unfinished auction" visible on a footprint is a FIFO queue that got partially depleted but not exhausted. Price pulled back before the entire queue cleared. The remaining resting orders at that level create a magnetic pull — not always, but often enough to track.
Reading the CME Globex Product Reference Sheet #
- F = FIFO
- K = Split FIFO/Pro-Rata
- A = Allocation
- C = FIFO with Customer Priority
- P = Pro-Rata
- T = Threshold Pro-Rata
The reference sheet also lists the LMM percentage (if applicable), the top-order percentage, and the minimum allocation size. This is public information CME provides exactly because traders need it to understand their fills. The fact that most traders never consult it is a durable informational edge for those who do.
Search "CME Globex Product Reference Sheet" on cmegroup.com. Download the spreadsheet and look up the product you trade. Find the algorithm code in column F. It takes 5 minutes and tells you exactly how your fills work. Cross-reference with the CME Supported Matching Algorithms documentation page for the full rulebook on each algorithm.
Knowledge Map
Prerequisites
Understand these firstGo Deeper
Build on this knowledgeReferences This Article
Articles that build on this topicCitations
- — Are stop orders placed in queue? (2014) 👍 10“On the other hand, if you ask about E-mini futures contracts (ES), the matching algorithm is a pure FIFO algorithm without any pro-rata allocation.”
- — To be filled or not to be filled is my question (2016) 👍 2“Pretty much every liquid FUTURES product on Globex uses plain FIFO. The exceptions are most MGEX products, some Ag Products, some options, and most of the Interest Rate Products including Eurodollar/GE.”
- — Filling Limit Orders on the ES (2012) 👍 5“When you place a limit order you are placed at the back of the limit order queue at the price you want to buy/sell at. People at the front of the queue are filled first on a strictly FIFO basis.”
- — Limit and Market order mechanics (2024) 👍 4“When the big market buy which comes in to sweep the book enters the matching phase, its entire quantity will match in a single, atomic transaction. If you're in the book to sell and you're in the path of the buy order, your liquidity will be used to fill that order.”
- — Eurodollar Futures (2019) 👍 3“Eurodollar matching engine is basically pro-rata not FIFO. So everybody is incented to show more size than they need so they get bigger fills in the pro-ration!”
- — Why was my target not filled? (2018) 👍 4“Orders in ZT are filled according to size first there. That's why ZT is unusually thick; it's common to see tens of thousands of contracts populating the order book at any price. Your 1 lot has next to no priority.”
- — Pro-Rata Order Matching on Eurodollar with small positions (2020) 👍 6“Your allocation is N / R * A where N = your order size, R = number of orders at this price, A = remaining orders to match. In order to receive a PR allocation in your case, the aggressor order must be at least 20% of the size of the orders at that price.”
- CME Group — Supported Matching Algorithms -- CME Globex (2024)
- — Exchange queue order handling with futures (2014) 👍 2“Modifying an order from 1 to 2 contracts typically cancels the original and submits a new one at the back of the line. Platforms that preserve FIFO submit an additional order instead, keeping the original position in the queue.”
