# Supported Matching Algorithms

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

This overview describes the following:

## Supported Algorithms

The following are the supported matching algorithms:

### Matching Algorithms Overview Video

View the video 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 TimeBid QtyBid PriceOffer PriceOffer QtyOrder Time

14:47

3

9330

15:05

5

9330

If implied spreading was turned off and the 2-lot in the example was a customer outright order, then the order would have an actual timestamp and be 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 Secured Overnight Financing Rate (SOFR) Futures

This match algorithm known as Pro Rata or Allocation Algorithm is applied only to the SOFR futures at CME Group (SOFR 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 "Pro-Open" 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.

TOP order is evaluated during the "Pre-Open", but are not taken into consideration for matching during the "Opening" state.  TOP order matching begins  at the start of continuous trading phase.

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 non-implied 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).

### Configurable

The Configurable algorithm combines steps used with other CME Match Algorithms and provides two additional steps. Steps proceed in the same sequence regardless of which steps are configured on/off. Products using the Configurable algorithm have quantity distributed among resting participants in this order:

1. TOP – A TOP order has a price that betters the market at the time the order is received and is therefore designated as having priority. Only a single buy order and a single sell order can have TOP priority at any given time. Orders having TOP priority match first regardless of size. For details of TOP Min, TOP Max, and TOP Percentage please see: CME Globex Matching Algorithm Steps - TOP.
2. LMM – CME Designated Lead Market Makers are each allocated a configurable percentage of an aggressor order quantity before the remaining quantity passes to the next step.
3. Split – Based on product parameters, quantity is split between a FIFO step and a Pro Rata step. Product parameters can be zero for either FIFO or Pro Rata. The total percentage of quantity split between FIFO and Pro Rata will always equal 100%.
• FIFO – Quantity is distributed to resting orders on a first in, first out basis (earlier timestamped orders receive fills before later timestamped orders).
• Pro Rata – Quantity to be matched is multiplied by each resting order's pro-rated percentage to calculate allocated trade quantity. All fills are rounded down to the nearest integer (which may be zero).
4. Leveling – Remaining quantity from rounding during the Pro Rata step is distributed to participating orders. No order may receive more than one lot in this step.
5. FIFO – Any remaining quantity is distributed to resting orders on a first in, first out basis (earlier timestamped orders receive fills before later timestamped orders).

Individual steps are described here: CME Globex Matching Algorithm Steps.

Details of the K algorithm parameters and configuration for each product are available in the GCC Product Reference Sheet available from GCC Product Resources.

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

### Institutional Prioritization Match Algorithm

The Institutional Prioritization algorithm is a two pass FIFO algorithm that provides matching priority to Globex Firm IDs (GFIDs) in the same Institution Group.

• The first FIFO pass fills the Institutional Group the aggressing order is associated with.
• The second FIFO pass matches orders without an Institutional Group association.

The Institutional Prioritization algorithm uses time as the only criteria for filling an order for each FIFO pass. An order loses order priority and is re-queued if the order is modified with an increase in quantity.

See additional information regarding the Institutional Prioritization Matching algorithms on CME Globex