Match Group Assignment
How the matching engine assigns trades to Match Groups and why.
How Assignment Works
The matching engine uses Match Groups to organize matched and unmatched trade activity. When more than one valid match is available, the engine assigns trades to the most precise Match Group it can create. Smaller and more direct matches are prioritized before larger grouped or average-based matches.
Why Assignment Priority Matters
- Data Enrichment. In many cases, the precision of the data that is captured from different sources does not follow consistent rules. For example, client systems might record total quantities by average price per order but the FCM captures exchange leg prices and does not have the concept of order number. Using Match Groups in coordination with Incremental Matching often solves this issue.
- Analytics and Scoring. Storing match data with maximum precision unlocks Theorem's analytical systems to best detect patterns over time.
- Trade Lifecycle Workflow. Many FCMs, CCPs, and industry trade organizations are pushing for the trade lifecycle (from fill to clearing account) time to be decreased, putting more pressure on executing brokers, clearing brokers, and clients. Using incremental Match Groups can reduce end-of-day deadline pressure by allowing matching results to update as trades are submitted throughout the day.
- Consistency. Once trades are matched, later matching runs do not continually reprocess them. Reports and data remain more consistent throughout the day, and as an added benefit, reports and data load faster.
Match Group Priority
The matching engine uses the following priority when evaluating unmatched trades and assigning valid matches to Match Groups.
|
Priority |
Group Type |
Example – Client |
Example - FCM |
|
1 |
One to One |
100 @ 500 |
100 @ 500 |
|
2 |
One to Many |
10 @ 98.75 |
9 @ 98.75 1 @ 98.75 |
|
3 |
Many to One |
3 @ 25.42 3 @ 25.42 2 @ 25.42 |
8 @ 25.42 |
|
4 |
Many to Many |
9 @ 565.25 1 @ 565.25 |
8 @ 565.25 2 @ 565.25 |
|
5 |
One to Average |
2000 @ 1.50 |
1000 @ 1.25 1000 @ 1.75 |
|
6 |
Average to One |
15 @ 98.79 15 @ 98.81 |
30 @ 98.80 |
|
7 |
Average to Average |
10 @ 99.00 10 @ 101.00 |
5 @ 98 15 @ 100.67 |