Imported from previous forum
Is there a reason that SideOrigTradeID (Tag 1507) is missing from the TMR message (35=DC)? SideTradeID (Tag 1506) is present so just wondering why SideOrigTradeID is missing since we will not be able to handle trade corrections without a reference back to the original trade ID being corrected
Yes. The TMR was designed without the notion of duplicate identifier fields for referencing previous values. It is much more than a group of TCRs. TrdMatchID(880) is the key identifier and it is intended to be persistent, i.e. does not change when the match event needs to be amended. This principle was also used for other IDs in the message (e.g. SideExecID, SideTradeReportID), i.e. no “Ref” or “Orig” fields. The match event is an atomic event, i.e. logically you are changing the entire match event when you change any of its attributes. The updated match event simply overwrites an existing event. The recipient can maintain the old version (with the old identifiers) if needed for an audit trail.
Please also have a look at the text in EP150 (http://www.fixtradingcommunity.org/pg/extensions/extension-pack?ExtensionID=EP150):
“The primary identifier for the TradeMatchReport is a business-level identifier, TrdMatchID(tbd). This ID does not change during the life cycle of the match event, even if the match event is amended or cancelled. As such, the TradeMatchReport does not have, nor does it need, a reference ID field. Amending a TradeMatchReport entails sending another TradeMatchReport message with the same TrdMatchID(tbd) and an appropriate TradeReportType(856).”
Okay I see but we have a requirement in which only partial changes to a match event are possible. For example match events involving complex instruments with implied matches, we would like to make amends only to specific InstrmtMtchSides within a TMR or make amendments to specific TrdMtchSides within an InstrmtMtchSide or make amendments to specific LegExecs within a TrdMtchSide to preserve market integrity
Of course, changes rarely involve an entire match event but only a few items. Similar to ExecutionReports with ExecType = D (Restated). The recipient is expected to process the entire message and determine the changes. ExecRestatementReason or Text fields can provide further information. On a TMR the Text(58) field is available on every TrdMatchSide where you can convey reasons for an update. SideTradeReportID and LegReportID allow you to convey new IDs specific to the change whilst leaving the entity IDs SideTradeID and LegTradeID unchanged. New sides or new leg execs can be added and others removed (recipient has to check whether all SideTradeID and LegTradeID values are still there to determine removals.