NexusFi: Find Your Edge


Home Menu

 



Futures Exchange Matching Algorithms: How the Exchange Decides Who Gets Filled First

Looking for NinjaTrader Brokerage pricing, features, reviews, and community ratings? Visit the directory listing.
NinjaTrader Brokerage Directory →
Looking for Tradovate pricing, features, reviews, and community ratings? Visit the directory listing.
Tradovate Directory →

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.

Key Insight

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.

FIFO queue visualization showing 5 resting bids and a 650-lot sell order filling them in strict time order
FIFO matching in ES: a 650-contract sell order fills the first two bids entirely and exhausts. The retail trader at position #3 gets nothing despite having a valid resting order.

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.

Side-by-side comparison of FIFO and pro-rata algorithms showing how the same 500-lot sell order distributes fills differently
FIFO vs. pro-rata on the same scenario: in FIFO, first-comers fill completely and latecomers get nothing; in pro-rata, every resting order receives a proportional share.

Allocation Algorithm #

Allocation is CME's most commonly used non-FIFO algorithm, applying to many interest rate products. It combines two steps:

  1. 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.
  1. 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.

“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!”
Two-step allocation algorithm walkthrough showing top order priority followed by pro-rata distribution on SOFR futures
Allocation algorithm step-by-step: the first order in the book fills 100% first (top order priority), then the remaining 1,200 contracts distribute proportionally among all other resting orders.

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.

Formula

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

Overview table of all CME Globex matching algorithms showing which products use FIFO, allocation, pro-rata, split, or LMM algorithms
CME Globex matching algorithms by product type: five different rulebooks governing how your orders fill, depending on which contract you're trading.

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.

“To be clear, this all applies to the FIFO matching algorithm. Though FIFO is always used when all orders at a price level can be matched, the matching would be different if other algorithms like pro rata or LMM are being used.”

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.

“Modifying an order from 1 to 2 contracts typically cancels the original and submits a new order at the back of the line. The FIFO-preserving approach: submit an additional 1-contract order instead, leaving your original order in its queue position while the extra lot goes to the back.”
Three FIFO queue modification scenarios showing how cancel-replace loses queue position, size increase via split preserves original, and size decrease preserves position
How order modifications affect FIFO queue position: cancel-and-replace sends you to the back of the line; increasing size by submitting a separate order preserves your original position; decreasing size by canceling the newest order never costs your spot.

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.

“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. In this case your assumption would be correct.”
Key Takeaway

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."

“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 to get a PR fill. To think about it intuitively, imagine if N=100 — in this case, you only need the aggressor order to be more than 2% of the size of the resting orders — a far more likely scenario, and almost certain of a PR fill here.”

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.

Warning

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.

“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 which uses Allocation rather than FIFO.”

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.

“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. If the market hasn't traded that price for a while, then higher time frame traders will already have their orders in at that level and will be further ahead in the queue than you.”
“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 and it is strictly a FIFO (first in first out) basis. I try not to move my limits around on my platform and change my mind, because when I do that I go to the back of the queue at that price level.”

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.

“The only case I can think of in which you'd actually run into strange order filling strategies is in ZT, the US 2 year future. Orders 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 in getting filled there, in comparison to somebody who's bid 10,000.”

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.

Side-by-side comparison of paper trading simulator fill behavior vs actual live FIFO queue dynamics in ES futures
Paper trading fills every limit order at first tick; live trading requires the entire queue ahead of you to fill first.

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.

Timeline showing co-location latency of 10 microseconds versus retail 3-10ms affecting queue position during rapid price level transitions
Co-located HFT firms arrive ~10μs after a price transition; retail traders arrive 3-10ms later, landing further back in the FIFO queue.
Warning

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 #

Chart showing how FIFO queue depth varies with volume profile levels - HVN levels have thick queues, LVN levels have thin queues
Queue depth correlates directly with volume profile structure: HVN levels attract deep resting order queues while LVN levels see thin queues, making limit order fills at LVN faster and more reliable than at HVN.

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.

Key Insight

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 #

Decision tree for determining which CME Globex matching algorithm governs a futures contract based on product type
Algorithm identification decision tree -- always verify with the CME Globex Product Reference Sheet for your specific contract.
Every futures trader should know how to look up their product's matching algorithm. CME publishes the Globex Product Reference Sheet, a spreadsheet listing every product with its matching algorithm code:

  • 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.

Tip

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

Citations

  1. @Fat TailsAre 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.”
  2. @SMCJBTo 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.”
  3. @keymooFilling 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.”
  4. @joshLimit 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.”
  5. @SMCJBEurodollar 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!”
  6. @lax99Why 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.”
  7. @joshPro-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.”
  8. CME GroupSupported Matching Algorithms -- CME Globex (2024)
  9. @asfaxExchange 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.”

Help Improve This Article

NexusFi Elite Members can help keep Academy articles accurate and comprehensive.

Unlock the Full NexusFi Academy

685 in-depth articles across 17 categories — written by traders, backed by community research. Includes knowledge maps, citations with community excerpts, and the ability to help improve articles.

We add approximately 283 new Academy articles every month and update approximately 606 with fresh content to keep them highly relevant.

Strategies (76)
  • Volume Profile Trading
  • Order Flow Analysis
  • plus 74 more
Market Structure (37)
  • Initial Balance: The First Hour That Defines Your Entire Trading Day
  • Opening Range: Why the First 15 Minutes Define Your Entire Trading Session
  • plus 35 more
Concepts (36)
  • Futures Order Types: Market, Limit, Stop, and Conditional Orders
  • Renko Charts and Range Bars for Futures Trading: The Complete Guide
  • plus 34 more
Exchanges (38)
  • Futures Exchanges: Understanding Where and How Futures Trade
  • plus 36 more
Indicators (47)
  • Delta Analysis & Cumulative Volume Delta (CVD)
  • Market Internals: Reading the Broad Market to Trade Index Futures
  • plus 45 more
Instruments (38)
  • Micro E-mini Futures (MES, MNQ, MYM, M2K): The Complete Guide to CME Fractional-Sized Contracts
  • E-mini Nasdaq-100 (NQ) Futures: The Complete Trading Guide
  • plus 36 more
+ 11 More Categories
685 articles total across 17 categories
Automation (37) • Risk Management (36) • Data (37) • Prop Firms (36) • Platforms (46) • Psychology (37) • Brokers (39) • Prediction Markets (36) • Regulation (36) • Cryptocurrency (37) • Infrastructure (36)
Become an Elite Member


© 2026 NexusFi®, s.a., All Rights Reserved.
Av Ricardo J. Alfaro, Century Tower, Panama City, Panama, Ph: +507 833-9432 (Panama and Intl), +1 888-312-3001 (USA and Canada)
All information is for educational use only and is not investment advice. There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
About Us - Contact Us - Site Rules, Acceptable Use, and Terms and Conditions - Downloads - Top