CTM Matching Process FAQs
The CTM platform uses a 2-level matching process to match both block (TradeLevel) and allocation (TradeDetail) messages.
- Level 1 (L1) pairing identifies the basic core financials of the trade and all L1 components must pair before proceeding to L2 matching.
- Level 2 (L2) matching ensures that selected fields meet the matching requirements of the investment manager.
The following section covers commonly asked questions about the CTM matching process, as well as best practices on how to match on certain trade criteria.
L1 Pairing FAQs
L1 pairing is the comparison by CTM of mandatory minimum set of critical data fields on two sides of a trade. All L1 components must pair before proceeding to L2 matching.
The below table lists the L1 pairing fields on blocks and allocations and whether these fields are mandatory or optional.
Field Name | Mandatory/Optional? | Further Information |
TradeLevel (Block) | ||
Block UTI | Optional | |
Buy/Sell Indicator | Mandatory | |
DealPrice | Optional | Available as an optional L1 pairing field. Otherwise CTM uses this field as a tie-breaker. |
ExecutingBroker | Mandatory | CTM supports broker matching groups (BRMGs), a mechanism that automatically selects an executing broker from a preconfigured group. |
Instructing Party | Mandatory | |
QuantityOfTheBlockTrade | Mandatory | |
SecurityCode | Mandatory | SecurityCode is a normalized value. CTM cross-references and pairs it with the preferred identifier of your counterparty. Even if the identifiers are different, CTM pairs and matches on values you and your counterparty supply. |
TradeDateTime | Mandatory | CTM pairs on the date component of TradeDateTime only. |
TradeDetail (Allocation) | ||
Account ID | Mandatory | |
AllocationIsSteppedOut | Depends | For stepouts, AllocationIsSteppedOut is a required L1 pairing field. |
QuantityAllocated | Depends | CTM uses this field as a tie-breaker. For stepouts, however, QuantityAllocated is a required L1 pairing field. |
If during the matching process, the CTM service finds more than one counterparty component with all L1 pairing fields equivalent to your component, it evaluates an L1 tie-breaker field to choose among the pairing candidates as follows:
- The value of your counterparty's L1 tie-breaker field must match yours exactly for the trade components to pair.
- If the L1 tie-breaker field for more than one pairing candidate matches yours, the CTM service pairs with the first pairing candidate that matches
The status of both trades is then set to MATCHED (MACH).
When setting your matching profile criteria, you can optionally set Deal Price as an L1 pairing field however if applied, this means that only trades with the exact same price can pair. This usually results in NOT MATCHED (NMAT) blocks.
We recommend that you configure Deal Price as an L2 matching field. That way, if there is a difference in the price field between you and your counterparty the CTM service will set the status of your trade to MISMATCHED (MISM), which gives you the following options:
1. Accept the broker/dealer's values
2. Reject the trade to the broker/dealer
3. Request that the broker/dealer cancel the trade so you can match with a rebooked trade
Yes. At the allocation level (TradeDetail), CTM requires L1 pairing on the following fields:
- QuantityAllocated
- AllocationIsSteppedOut
L2 Matching FAQs and Best Practices
Level 2 (L2) matching ensures that selected fields, such as trade amounts and broker commissions, are within the tolerance the investment manager has specified. L2 matching enables investment managers to customize the matching process to meet their business needs. They select the fields to match from the list of eligible L2 matching fields and decide the matching rules and tolerances for each field.
All matching profiles are created and maintained using the Maintain Matching Profiles (MMP) tool available in the CTM Client-Facing Dashboard, which you can access using the following links:
- Production: https://ctmclientdashboard.omgeo.net
- Client Test: https://ctmclientdashboard-ct.omgeo.net
For more information on using the Dashboard and view instructional videos, visit CTM Client-Facing Dashboard
Yes. In order to match trades through the CTM platform you need to have at least one default matching profile for each asset class you trade in. You create and update profiles using the Maintain Matching Profiles (MMP) tool available in the CTM Client-Facing Dashboard. For more information, visit CTM Client-Facing Dashboard.
No. There are three types of matching profiles available for use:
1. Named matching profiles are the most flexible because they are based on criteria you design, such as counterparty, settlement location and security type.
2. Currency-specific matching profiles indicate rules and tolerances for specific currencies.
3. Default matching profiles are required for each asset class.
The CTM platform will select the matching profile to apply according to the following rules of precedence:
1. Named matching profiles (this must be specified in the L2MatchingProfileName field)
2. Currency-specific profiles
3. Default matching profiles
No. The value specified in the minimum/maximum specification remains static. DTCC recommends that you update your matching profiles on a regular basis to reflect currency movement.
Because each client's business models and requirements are unique, DTCC cannot provide explicit guidance regarding which fields and tolerances are best to use. DTCC, however, recommends the following common practices for investment managers and hedge fund managers:
- Set up a default matching profile for each asset class you trade through the CTM platform
- Set up a currency matching profile for each market where transactions occur
The below table describes the matching tolerance option codes you can set on the eligible fields in a matching profile.
Code | Description | Parameter 1 | Parameter 2 | Notes |
EXCT | Exact Match | Not applicable | Not applicable | Tolerance values are disallowed |
PTOL1 | Percentage Tolerance | Above/Below | Not applicable | Use this code to provide an acceptable over-under percentage value on a field |
PTMX1 | Percent Tolerance Max | Percentage | Value | Use this code if a small percentage can markedly affect a field value. For example, for an entire block with 20 allocations, a tolerance of 1% can be unacceptable |
MNMX | Minimum/Maximum | Below Your Value | Above Your Value | Use this code to set each boundary of an acceptable field value |
NUFM | Not Used For Matching | Not applicable | Not applicable | Use this code to exclude a field from your matching profile |
CPOP | Counterparty Populated | Not applicable | Not applicable | Use this code to have the CTM platform validate that your broker/dealer counterparty has populated the Place of Trade field at the block. An empty Place of Trade field results in a status of MISMATCHED (MISM). The CPOP matching rule only applies to Place of Trade |
1For a percentage tolerance, enter the actual percentage number (for example, 2) and not the decimalized equivalent (.02). Specify the actual percentage number in Parameter 1.
A force-match applies to MISMATCHED fields on a trade. To change one of your MISMATCHED fields, you can amend that value on your trade side.
Except for SettlementAmount on the TradeDetail, all amounts are based on the traded currency. To match on Settlement Amount in a different currency, your broker/dealer counterparty must be a CTM user.
Depending on the conditions of the trade and the fields that you chose to use for pairing and matching, the CTM platform treats Price in one of the following ways:
- L1 pairing field - your counterparty value must pair with yours
- L1 tie-breaker - when the CTM platform finds more than one counterparty trade component with all L1 pairing fields equivalent to yours, it uses Price as a tie-breaker field to determine which trade should be paired together
- L2 matching field - how the Price field is matched will depend on your matching profile settings.
The below table describes three conditions that outline how Price is used in the CTM matching process:
Condition | Criteria | L1 Pairing Field? | L1 Tie-Breaker? | L2 Matching Field? |
1 |
Both of the following are true:
|
Yes | No | No |
2 | DealPrice set as a L1 field in the matching profile | Yes | No | No |
3 | All conditions not covered above | No | Yes | Yes, if specified in your matching profile |
As an MTI client, submit trade allocation details, including any allocation commissions, in your MTI file. The CTM platform automatically generates a TradeLevel based on these allocations, and calculates TotalBlockCommission as the sum of all commissions from those allocations. Since TotalBlockCommission is a calculated field, you cannot force-match the field to correct a MISMATCHED trade component. Instead, you are required to cancel or amend the trade for the allocations. As a result, DTCC does not recommend activating the TotalBlockCommission field on your matching profile. This recommendation also applies to the other calculated field on a block, TotalAccruedInterestAmount on debt instruments.
The TradeTransactionConditionIndicator field (Trade Condition field in the Maintain Matching Profiles (MMP) tool) specifies trade conditions. If you use the settlement notification functionality available through the CTM platform, you can display the trade condition values DIRT (dirty) or CLEN (clean) in SWIFT messages. Your trade conditions appear in SWIFT messages only if your broker/dealer does not provide a value. If the broker/dealer provides a value, that value appears in the SWIFT message instead of yours.
Cross-settlement channel matching is a special feature for PSET. If either party submits CEDELULL (Clearstream Banking) and the counterparty submits MGTCBEBE (Euroclear) in the PSET field, the CTM platform does the following:
- L2 successfully matches
- Sets the FieldLevelMatchStatus to MATCHED (MACH)
Matching is also successful when the two parties submit the same values.
TD L2 Settlement Instructions Matching Fields option supports matching on a subset of SSI fields provided by the investment manager (InstructingParty), where PartyIdentifier is not provided or is equal to INST. Also referred to as dual SSIs, the executing broker (ExecutingBroker), where PartyIdentifier=INST, supplies the same SSIs as those provided by the investment manager.
The below table lists the settlement instruction fields and conditions that you can use for the TD L2 Settlement Instructions Matching Fields option in your L2 matching profile:
MMP Tool Name |
XML Field Name (where PartySettlement/PartyIdentifier is INST or is not provided) User Interface (UI) Field Name |
DBT | EQU | Tolerance Options |
PSET |
XML: PartySettlement/SettlementInstructions/PSET UI: PSET |
Yes | Yes | EXCT, NUFM |
ID2 |
XML: PartySettlement/SettlementInstructions/ID2 UI: ID2 |
Yes | Yes | EXCT, NUFM |
ID3 |
XML: PartySettlement/SettlementInstructions/ID3 UI: ID3 |
Yes | Yes | EXCT, NUFM |
AgentID |
XML: PartySettlement/SettlementInstructions/AgentID UI: AgentID |
Yes | Yes | EXCT, NUFM |
INSTorBrokerID |
XML: PartySettlement/SettlementInstructions/INSTorBrokerID UI: INSTorBrokerID |
Yes | Yes | EXCT, NUFM |
Sub Account No |
XML: PartySettlement/SettlementInstructions/SubAccountNo UI: A/C @ Local Agent |
Yes | Yes | EXCT, NUFM |
SecurityAccount |
XML: PartySettlement/SettlementInstructions/SecurityAccount UI: A/C @ Global Custodian |
Yes | Yes | EXCT, NUFM |
An InstructingParty cannot set an L2 matching profile to match on both PSET and TD L2 Settlement Instructions Matching Fields because they are mutually exclusive.
There are conditional matching scenarios associated with the TD L2 Settlement Instructions Matching Fields as follows:
- Assume the InstructingParty has the TD L2 Settlement Instructions Matching Fields in the matching profile for the trade. When the ExecutingBroker provided a BrokerCustodyIndicator of Y, the CTM platform does not perform matching on any of the seven fields in the TD L2 Settlement Instructions Matching Fields group. The CTM platform assigns those fields a FieldLevelMatchStatus of "SIBC-Settlement Instructions-Not applied for matching due to EB's BrokerCustodyIndicator of Y."
- Similar to the TDPSET field matching implementation, matching on PSET as part of TD L2 Settlement Instructions Matching Fields support cross-settlement channel matching. For a list of matching values, click here
- Assume the InstructingParty has the TD L2 Settlement Instructions Matching Fields in the matching profile for the trade. When the ExecutingBroker did not provide a BrokerCustodyIndicator value or provided a value of N, the CTM platform does the following:
InstructingParty PSET | CTM matches the fields as follows | CTM assigns FieldLevelMatch status as follows | ||
ID2 and ID3 | AgentID and INSTorBrokerID | SubAccountNo and SecurityAccount | ||
FRNYUS33 | Excluded from matching | Included in matching | Included in matching |
ID2 and ID3 SINA-Settlement instructions-Not applied for matching |
Provided and ≠ FRNYUS33 | Included in matching | Excluded from matching | Included in matching |
AgentID and INSTorBrokerID SINA-Settlement instructions-Not applied for matching |
Not provided | Included in matching | Excluded from matching | Excluded from matching |
AgentID, INSTorBrokerID, SubAccountNo and SecurityAccount SINA-Settlement instructions-Not applied for matching |
- When the InstructingParty provided a value for PSET, the CTM platform applies cross-field L2 matching on the SubAccountNo and SecurityAccount fields as follows:
- When the InstrucingParty provided a SubAccountNo, SubAccountNo is used for matching. The CTM platform does not use the SecurityAccount of the ExecutingBroker for matching
- If the ExecutingBroker provided a SubAccountNo, the SubAccountNo of the ExecutingBroker is used for matching. The CTM platform does not use the SecurityAccount of the ExecutingBroker for matching
- If the ExecutingBroker did not provide a SubAccountNo, but did provide SecurityAccount, then the SecurityAccount of the ExecutingBroker is used for matching - not the SubAccountNo of the ExecutingBroker
- When the InstructingParty did not provide a SubAccountNo, and if the InstructingParty did provide a SecurityAccount, the SecurityAccount of the InstructingParty is used for matching. The CTM platform does not use the SubAccountNo of the InstructingParty for matching.
- If the ExecutingBroker provided a SubAccountNo, the SubAccountNo of the ExecutingBroker is used for matching. The CTM platform does not use the SecurityAccount of the ExecutingBroker for matching
- If the ExecutingBroker did not provide a SubAccountNo, but did provide SecurityAccount, then the SecurityAccount of the ExecutingBroker is used for matching - not the SubAccountNo of the ExecutingBroker
- When the InstrucingParty provided a SubAccountNo, SubAccountNo is used for matching. The CTM platform does not use the SecurityAccount of the ExecutingBroker for matching
- The FieldLevelMatchStatus values of XMCH-Cross matched across SubAcountNo and SecurityAccount fields and XMSM-Cross mismatched across SubAccountNo and SecurityAccount fields communicate cross field matching and mismatching of the SubAccountNo and SecurityAccount fields.
To address issues with matching on SettlementAmount, use the optional subscription SAL2, which controls whether the CTM platform applies L2 on the SettlementAmount field at the allocation/confirmation (TradeDetail).
The following two scenarios outline business cases when conditional matching rules apply.
Scenario 1
You do not provide a SettlementAmount value and the broker/dealer provides a SettlementAmount where the SettlementCurrency is the same as the TradeCurrency value.
If you use the SAL2 subscription, then the SettlementAmount field will not be used for matching (NUFM)
Scenario 1 Example
Field | IM Value | B/D Value | Without SAL2 | With SAL2 |
NetCashAmount | 100 AUD | 100 AUD | MACH | Not applicable |
SettlementAmount | blank | 100 AUD | MISM | NUFM |
Scenario 2
You do not provide a SettlementAmount value and the broker/dealer provides 0 as the SettlementAmount.
If you use the SAL2 subscription, conditional matching is applied to SettlementAmount matching (NUFM).
Scenario 2 Example
Field | IM Value | B/D Value | Without SAL2 | With SAL2 |
NetCashAmount | 100 AUD | 100 AUD | MACH | Not applicable |
SettlementAmount | blank | 0 AUD | MISM | NUFM |
This section provides field-by-field recommendations for you to follow when implementing your L2 matching profiles for all supported asset classes.
The below table specifies how to set tolerances on TradeLevel matching profile fields. The table contains the following columns:
- MMP Tool Name/XML Field Name - Name of the L2 matching profile field in the Maintain Matching Profiles tool and the name of the L2 matching profile field in the direct XML interface
- Asset Class - Supported asset classes available for setting L2 matching tolerances:
- DBT - Debt
- EQT - Equity
- Tolerance Options - For more details on the matching tolerance options, see here
MMP Tool Name/XML Field Name | Asset Class | Tolerance Options | |
DBT | EQU | ||
Block UTI/BlockUTI | Yes | Yes | EXCT, NUFM |
Coupon Rate/CouponRate | Yes | No | EXCT, NUFM, MNMX |
Dated Date/DatedDate | Yes | No | EXCT, NUFM |
Maturity Date/MaturityDate | Yes | No | EXCT, NUFM |
Number of Days Accrued/NumberOfDaysAccrued | Yes | No | EXCT, NUFM, MNMX |
Party Capacity Indicator/PartyCapacityIndicator |
Yes | Yes | EXCT, NUFM |
Place of Trade/PlaceOfTrade |
Yes | Yes | EXCT, NUFM, CPOP |
|
|||
Price (TL)/DealPrice | Yes | Yes | ALL |
|
|||
Settlment Date/SettlementDate | Yes | Yes | EXCT, NUFM |
TLPSET/PSET | Yes | Yes | ALL |
|
|||
Total Accrued Interest Amount/TotalAccruedInterestAmount | Yes | No | ALL |
|
|||
Total Trade Amount/TotalTradeAmount | Yes | Yes | ALL |
Trade Commissions/TradeCommissions | Yes | Yes | ALL |
|
|||
Trade Conditions/TradeTransactionConditionIndicator | Yes | Yes | EXCT, NUFM |
Type of Financial Instrument/TypeOfFinancialInstrument |
Yes | No | EXCT, NUFM |
Yield/Yield | Yes | No | EXCT, NUFM, MNMX |
This section provides field-by-field recommendations for you to follow when implementing your L2 matching profiles for all supported asset classes.
The below table specifies how to set tolerances on TradeDetail matching profile fields. The table contain the following columns:
- MMP Tool Name/XML Field Name - Name of the L2 matching profile field in the Maintain Matching Profiles tool and the name of the L2 matching profile field in the direct XML interface
- Asset Class - Supported asset classes available for setting L2 matching tolerances:
- DBT - Debt
- EQT - Equity
- Tolerance Options - For more details on the matching tolerance options, see here
MMP Tool Name/XML Field Name | Asset Class | Tolerance Options | |
DBT | EQT | ||
Accrued Interest Amount/AccruedInterestAmount | Yes | No | ALL |
Allocation UTI/AllocationUTI | Yes | Yes | EXCT, NUFM |
Broker Custody Indicator/BrokerCustodyIndicator | Yes | Yes | EXCT, NUFM |
Charges or Taxes/ChargesOrTaxes | Yes | Yes | ALL |
|
|||
Commissions/Commissions | Yes | Yes | ALL |
Detail Level Party Capacity Indicator/DetailLevelPartyCapacityIndicator | Yes | Yes | EXCT, NUFM |
Net Cash Amount/NetCashAmount | Yes | Yes | ALL |
|
|||
PSET/PSET | Yes | Yes | EXCT, NUFM |
|
|||
Quantity Allocated/QuantityAllocated | Yes | Yes | EXCT, NUFM |
|
|||
Settlement Amount/SettlementAmount | Yes | Yes | ALL |
|
|||
Settlemtn Transaction Condition Indicator (STCI)/SettlementTransactionConditionIndicator | Yes | Yes | EXCT, NUFM |
Trade Amount/TradeAmount | Yes | Yes | ALL |
TD L2 Settlement instructions Matching Fields option (see FAQ for more information) | Yes | Yes | EXCT, NUFM |