# Matching Algorithms

This topic explains the different matching algorithms supported on the CME Globex Platform. These matching algorithms support order management functionalities offered to market participants and ensure that each market participant is given the best possible execution at the fairest price.

A matching algorithm is a technique to allocate matched quantities, used when an matches with one or multiple resting orders. Algorithms apply to both outright and implied matching.

Order matching follows three steps:

1. Determine the current prices opposite of the aggressor order, outright and implied prices
2. Determine quantity at best price opposite the aggressor order, based on business rule priorities
3. Allocate resting quantity at best price to trade with aggressor order using the market algorithm

The following are the supported matching algorithms:

### Matching Algorithms Overview Video

The following video provides an overview and examples of the matching algorithms available on the CME Globex platform.

### Allocation

The Allocation algorithm is an enhanced pro-rata algorithm that incorporates a priority (top order) to the first incoming order that betters the market. If priority is established, the aggressor orders are first allocated to the top order until the order's quantity is exhausted.

Additionally, there is a minimum pro-rata allocation parameter of two lots. All fills are rounded down to the nearest integer and if an allocated trade quantity is less than two lots, it is rounded down to zero. Excess lots are allocated FIFO.

The Allocation algorithm follows these stages to match trades:

• Assigns a top order percent allocation
• Pro-rata with minimum allocation of two lots
• FIFO for any residual quantity

For information on allocation for Covered instruments, refer to Covered UDS Trade Futures Allocation

### FIFO

The FIFO algorithm uses price and time as the only criteria for filling an order. In this algorithm, all orders at the same price level are filled according to time priority; the first order at a price level is the first order matched.

It is important to note that an order loses order priority and is re-queued when changed in any of the following ways:

• Increase the quantity
• Change the price
• Change the account number
##### FIFO for Implied Orders

When trades are matched using the FIFO method, outright orders at the same price level are filled according to time priority. After all possible matches have been made for the outright orders; the implied orders will trade using the rules based system mentioned under the Priority Rules section:

• All implied IN orders are aggregated together at their respective prices.
• When aggregating implied OUT orders, there can be several aggregates for each price. This is due to the fact that only one aggregate per spread is used to generate implied orders.
• Within each price aggregate, the earlier maturity will trade first (i.e., for Calendars, CONTRACT A-CONTRACT B will trade before CONTRACT A-CONTRACT C).
##### FIFO Matching Example

Using the FIFO match algorithm:

1. Orders at the same price are prioritized by their entry times, with the oldest order having the highest priority.
2. The aggregated implied order has the lowest priority within its price level.

In the example, if any orders on the offer side were to come in at the corresponding price of 9330, then the 3-lot and 5-lot would match first (in that order), with the 2-lot implied order filled last because it has the lowest priority.

Instrument X

Order Time

Bid Qty

Bid Price

Offer Price

Offer Qty

Order Time

14:47

3

9330

15:05

5

9330

If implied spreading was turned off and the 2-lot in the example was a real outright order, then the order would have an actual timestamp and prioritized accordingly.

### FIFO with LMM

The FIFO with LMM algorithm is an enhanced FIFO algorithm that allows for LMM allocations prior to the FIFO allocations. LMMs are each allocated a configurable percentage of an aggressor order before the remaining quantity is allocated FIFO.

The FIFO with LMM algorithm follows these stages to match trades:

• LMM set to configurable percent
• FIFO allocation

### FIFO with Top Order and LMM

The FIFO with LMM algorithm is an enhanced FIFO algorithm that allows for LMM allocations prior to the FIFO allocations. Additionally, this algorithm incorporates a priority (top order) to the first incoming order that betters the market. If priority is established, the aggressor orders are first allocated to the top order until the order's quantity is exhausted.

The FIFO with LMM algorithm follows these stages to match trades:

• Assigns a top order percent allocation that betters the market
• LMM set to configurable percent
• FIFO allocation

### Pro-Rata

The FX Calendar algorithm fills orders according to price, order lot size and time. An incoming aggressor order's quantity is multiplied by each resting order's pro-rated percentage to calculate allocated trade quantity. All fills are rounded down to the nearest integer; if an allocated trade quantity is less than two, it is rounded down to zero.

An order's pro-rata percentage is calculated by taking order quantity divided by total quantity at a certain price. Excess lots, which occur as a result of the rounding down of the original allocated trade quantity, may be allocated FIFO.

The FX Calendar algorithm follows these stages to match trades:

• Pro-rata with a minimum allocation
• FIFO for any residual quantity

Products that have a pro-rata component to their matching process are detailed in the GCC Product Resources

#### Pro-Rata Allocation Matching Examples

##### Pro Rata with TOP

Orders in the Market

Order No.Bid QtyBid PriceOffer PriceOffer QtyOrder No.
INCOMING250971197112001 (Top Order)
9711252
9711503
9711104

Allocation Matching Calculation

The matching allocation is performed for the remaining orders using the following formula:

1st Allocation

• 50/85 x 50 = 29 - Matched 2nd, after top order is entirely filled.
• 25/85 x 50 = 14 - Matched 3rd.
• 10/85 x 50 = 5 - Matched 4th.

Order 1 (Top order) is filled entirely.

2nd Allocation

• FIFO - the 2-lot is assigned to the order with the highest priority, which is Order 2.

The following table shows the order in which the matching takes place.

Order No.Bid QtyBid PriceOffer PriceOffer QtyOrder No.Match QtyMatch Order
INCOMING250971197112001 (Top Order)200#1
971125214/2#3, #5
971150/2329#2
97111045#4
##### Pro Rata Allocation Matching with Displayed Quantity

In this example, any of the orders involved could be either outright or implied. As timestamp is not taken into account, the outcome is the same.

Orders in the Market

In this example, Order 1 has a total quantity of 100, but only displays 10 (Max show).

Allocation Matching Calculation

*Rounded down to 0 due to quantity calculated = 1.

1st Allocation

• 5/35 x 20 = 2
• 20/35 x 20 = 11
• 8/35 x 20 = 4
• 2/35 x 20 = 1*+ 0
• (3 remaining)

2nd Allocation

For the 2nd allocation, allocation is on a FIFO basis and order 2 is completed.

The following table shows the order in which the matching takes place.

Order No.Bid QtyBid PriceOffer PriceOffer QtyOrder No.
1 (Top Order)10 (100)*9500950030INCOMING
259500
3209500
489500
529500

### Pro-Rata Allocation for Eurodollar Futures

This match algorithm known as Pro Rata or Allocation Algorithm is applied only to the Eurodollar futures at CME Group (Eurodollar packs and Bundles match via FIFO).

Pro Rata Allocation matches orders based on price, TOP orders, and size.

• A TOP order is an order having a price that betters the market at the time the order is received and which is therefore designated as having time priority. Only a single buy order and a single sell order can have time priority at any given moment. Orders having time priority match first regardless of size.

The Pro Rata Allocation algorithm follows these rules:

1. Orders placed during the "pre-opening" or at the Indicative Opening Price will be matched on a price and time priority basis.

Implied orders are not taken into consideration, because these orders are only active during the continuous trading session.

2. Priority is assigned to an order that betters the market (e.g. a new buy order at 36 betters a 35 bid). Only one order per market side of the market can have top priority. There may be scenarios in which a top order does not exist for one or both sides of the market (e.g. an order betters the market, but is then canceled).
3. Only outright orders can be top orders.
4. Top orders are matched first, regardless of size.
5. After a top order is filled, the Pro Rata Allocation algorithm is applied to the remainder of the resting orders at the applicable price levels until the incoming order is filled.
6. The Pro Rata algorithm allocates fills based upon each resting order's percentage representation of total volume at a given price level.  For example, an order that makes up 30% of the total volume resting at a price will receive approximately 30% of all executions that occur at that price. Approximate fill percentages may occur because allocated decimal quantities are always rounded down (i.e. a 10-lot order that receives an allocation of 7.89-lots will be rounded down to 7-lots).
7. The Pro Rata algorithm will only allocate to resting orders that will receive 2 or more contracts.
8. After percentage allocation, all remaining contracts not previously allocated due to rounding considerations are allocated to the remaining orders on a FIFO basis.
• Outright orders will have priority over implied orders and will be allocated the remaining quantity according to their timestamps.
• Implied orders will be then allocated by maturity, with the earliest expiration receiving the allocation before the later expiring contracts.  If spread contracts have the same expiration (i.e., CONTRACT A-CONTRACT B and CONTRACT A-CONTRACT C), then the quantity will be allocated to the earliest maturing contracts making up that spread (i.e., the CONTRACT A-CONTRACT B will get the allocation before the CONTRACT A-CONTRACT C because the CONTRACT B expires before the CONTRACT C).

### Split FIFO and Pro-Rata

The Split FIFO/Pro-Rata algorithm is a hybrid which integrates a percent-based allocation on both a FIFO and Pro-Rata formula to the resting order book. This algorithm has been developed with the flexibility to calibrate the level of tradable quantity that is allocated on a FIFO and pro-rata basis (X% FIFO, Y% pro-rata for every tradable quantity).

Additionally, an order that does not receive an allocation during the Pro-Rata stage is eligible for a one lot fill through pro-rata leveling. The allocations for this component are prioritized for orders with the largest remaining quantity. If multiple orders have the same remaining quantity time priority will be the determining factor.

This algorithm can also incorporate a top order and LMM components before the FIFO and pro-rata allocations are calculated.

The Split FIFO/Pro-Rata algorithm follows these stages to match trades:

• Assigns a top order percent allocation (with min and/or max)
• LMM may be applied
• FIFO percent may be configured from 0 to 100%
• Pro-rata with min may be configured from 0 to 100%
• Pro-rata leveling
• FIFO for any residual quantity

### Threshold Pro-Rata

The Threshold Pro-Rata algorithm is an enhanced pro-rata algorithm that incorporates a priority (top order) to the first incoming order that betters the market. If priority is established, aggressor orders are first allocated to the top order up to the maximum configured priority allocation (volume cap). A minimum order size may also be set, whereas if an order does not meet that minimum level, it does not qualify for top order. Additionally, there is a minimum configurable allocation parameter (pro-rata mini), which is set to a quantity that can be allocated due to the results from the initial pro-rated allocation. All fills are rounded down to the nearest integer and if an allocated trade quantity is less than the pro-rata min it is rounded down to zero. Excess lots are allocated FIFO.

The Threshold Pro-Rata algorithm follows these stages to match trades:

• Assigns a top order percent allocation (with min and/or max)
• Pro-rata with configurable minimum allocation
• FIFO for any residual quantity

### Threshold Pro-Rata with LMM

The Threshold Pro-Rata with LMM algorithm is an enhanced pro-rata algorithm that incorporates a Lead Market Maker (LMM) allocation after top order and before the pro-rata allocation.

LMM allows CME Group-designated customers to receive a designated allocation percentage of aggressor orders. The allocated quantity will not exceed the incoming order's quantity. Multiple LMM orders are matched based on FIFO rules until the incoming order's quantity is fulfilled or all LMM orders have received their allocated quantity.
Any remaining quantity is allocated pro-rata with configurable minimum allocation.

The Threshold Pro-Rata with LMM algorithm follows these stages to match trades:

• Assigns a top order percent allocation (with min and/or max)
• LMM set to configurable percent
• Pro-rata with configurable minimum allocation
• FIFO for any residual quantity

### Lead Market Maker (LMM) Matching Algorithm

Lead Market Maker (LMM) is a designation given to CME Group authorized market makers. The LMM status provides special consideration in order matching.

An LMM order at the same price level as the top order will receive the LMM match percentage allocation before the top order allocation. LMM matching rules apply first and top order matching rules apply thereafter. An LMM order can also be a top order.

A top order that belongs to an LMM will be matched first and will not be included in the following calculations:

• If the LMM has a single order at an elected price level it will match N% of the remaining incoming order quantity, with N equal to the LMM's allocation percentage. However, the matched quantity will not exceed the LMM's order quantity.
• If the LMM has multiple orders at an elected price level, then the LMM quantity is aggregated and will match N% of the remaining incoming order quantity. Multiple LMM orders are matched on Time Priority basis until N% quantity allocation is fulfilled.

All remaining resting orders at an elected price level (including LMM orders) are matched according to FIFO rules.

If the LMM has a single order at an elected price level it will match N% of the remaining incoming order quantity, with N equal to the LMM's allocation percentage. However, the matched quantity will not exceed the LMM order quantity. If the LMM has multiple orders at an elected price level, then the LMM quantity is aggregated and will match N% of the remaining incoming order quantity. Multiple LMM orders are matched on Time Priority basis until N% quantity allocation is fulfilled. All remaining resting orders at an elected price level (including LMM orders) are matched according to FIFO rules.