Position reports
Duco provides templates for position reports in FIXML from CME, ICE, NYMEX and OCC to be used as data input in a reconciliation process. The data in those XML messages are transformed and mapped to list of fields using the following mapping:
Duco field name
|
Duco field data type
|
PosRpt
|
Field in XML
|
---|---|---|---|
PosRpt Attributes | |||
RptID | Text | PosRpt/@RptID | |
ReqID | Text | PosRpt/@ReqID | |
ReqTyp | Text | PosRpt/@ReqTyp | |
SubReqTyp | Text | PosRpt/@SubReqTyp | |
BizDt | Date (2016-06-01) | PosRpt/@BizDt | |
SetSesID | Text | PosRpt/@SetSesID | |
AcctTyp | Text | PosRpt/@AcctTyp | |
SetPx | Decimal | PosRpt/@SetPx | |
SetPxTyp | Text | PosRpt/@SetPxTyp | |
PriSetPx | Decimal | PosRpt/@PriSetPx | |
Non-standard attributes | |||
MtchStat | Text | PosRpt/@MtchStat | |
SettlCcy | Text | PosRpt/@SettlCcy | |
MsgEvtSrc | Text | PosRpt/@MsgEvtSrc | |
SettlDt | Date (2016-06-01) | PosRpt/@SettlDt | |
SettlCurrFxRt | Text | PosRpt/@SettlCurrFxRt | |
Party IDs | |||
ExecutingFirm | Text | PosRpt/Pty[@R='1']/@ID | |
Clearing Firm | Text | PosRpt/Pty[@R='4']/@ID | |
Clearing Organization | Text | PosRpt/Pty[@R='21']/@ID | |
Exchange | Text | PosRpt/Pty[@R='22']/@ID | |
Position Account | Text | PosRpt/Pty[@R='38']/@ID | |
Instrmt Attributes | |||
Instrmt Sym | Text | PosRpt/Instrmt/@Sym | |
Instrmt Sfx | Text | PosRpt/Instrmt/@Sfx | |
Instrmt ID | Text | PosRpt/Instrmt/@ID | |
Instrmt Src | Text | PosRpt/Instrmt/@Src | |
Instrmt Prod | Text | PosRpt/Instrmt/@Prod | |
Instrmt CFI | Text | PosRpt/Instrmt/@CFI | |
Instrmt SecTyp | Text | PosRpt/Instrmt/@SecTyp | |
Instrmt SubTyp | Text | PosRpt/Instrmt/@SubTyp | |
Instrmt MMY | Text | PosRpt/Instrmt/@MMY | |
Instrmt MatDt | Date (2016-10-01) | PosRpt/Instrmt/@MatDt | |
Instrmt CpnPmt | Date (2016-10-01) | PosRpt/Instrmt/@CpnPmt | |
Instrmt Issued | Date (2016-10-01) | PosRpt/Instrmt/@Issued | |
Instrmt Fctr | Decimal | PosRpt/Instrmt/@Fctr | |
Instrmt StrkCcy | Text | PosRpt/Instrmt/@StrkCcy | |
Instrmt Mult | Decimal | PosRpt/Instrmt/@Mult | |
Instrmt Exch | Text | PosRpt/Instrmt/@Exch | |
Instrmt Desc | Text | PosRpt/Instrmt/@Desc | |
Non-standard attributes | |||
Instrmt FnlSettlCcy | Text | PosRpt/Instrmt/@FnlSettlCcy | |
Instrmt PCFctr | Decimal | PosRpt/Instrmt/@PCFctr | |
Instrmt PutCall | Text | PosRpt/Instrmt/@PutCall | |
Instrmt PxQteCcy | Text | PosRpt/Instrmt/@PxQteCcy | |
Instrmt PxUOM | Text | PosRpt/Instrmt/@PxUOM | |
Instrmt PxUOMCcy | Text | PosRpt/Instrmt/@PxUOMCcy | |
Instrmt PxUOMQty | Decimal | PosRpt/Instrmt/@PxUOMQty | |
Instrmt StrkDnmtr | Decimal | PosRpt/Instrmt/@StrkDnmtr | |
Instrmt StrkMult | Text | PosRpt/Instrmt/@StrkMult | |
Instrmt StrkPx | Decimal | PosRpt/Instrmt/@StrkPx | |
Instrmt StrkTickPx | Decimal | PosRpt/Instrmt/@StrkTickPx | |
Instrmt StrkValu | Decimal | PosRpt/Instrmt/@StrkValu | |
Instrmt UOM | Text | PosRpt/Instrmt/@UOM | |
Instrmt UOMCcy | Text | PosRpt/Instrmt/@UOMCcy | |
Instrmt UOMQty | Decimal | PosRpt/Instrmt/@UOMQty | |
Instrmt ValMeth | Text | PosRpt/Instrmt/@ValMeth | |
Quantity Fields | |||
Transaction Quantity Long | Decimal | PosRpt/Qty[@Typ='TQ']/@Long | |
Transaction Quantity Short | Decimal | PosRpt/Qty[@Typ='TQ']/@Short | |
Transaction Quantity Status | Text | PosRpt/Qty[@Typ='TQ']/@Stat | |
Intra Spread Qty Long | Decimal | PosRpt/Qty[@Typ='IAS']/@Long | |
Intra Spread Qty Short | Decimal | PosRpt/Qty[@Typ='IAS']/@Short | |
Intra Spread Qty Status | Text | PosRpt/Qty[@Typ='IAS']/@Stat | |
Inter Spread Qty Long | Decimal | PosRpt/Qty[@Typ='IES']/@Long | |
Inter Spread Qty Short | Decimal | PosRpt/Qty[@Typ='IES']/@Short | |
Inter Spread Qty Status | Text | PosRpt/Qty[@Typ='IES']/@Stat | |
End of Day Qty Long | Decimal | PosRpt/Qty[@Typ='FIN']/@Long | |
End of Day Qty Short | Decimal | PosRpt/Qty[@Typ='FIN']/@Short | |
End of Day Qty Status | Text | PosRpt/Qty[@Typ='FIN']/@Stat | |
Start of Day Qty Long | Decimal | PosRpt/Qty[@Typ='SOD']/@Long | |
Start of Day Qty Short | Decimal | PosRpt/Qty[@Typ='SOD']/@Short | |
Start of Day Qty Status | Text | PosRpt/Qty[@Typ='SOD']/@Stat | |
Option Exercise Qty Long | Decimal | PosRpt/Qty[@Typ='EX']/@Long | |
Option Exercise Qty Short | Decimal | PosRpt/Qty[@Typ='EX']/@Short | |
Option Exercise Qty Status | Text | PosRpt/Qty[@Typ='EX']/@Stat | |
Option Assignment Long | Decimal | PosRpt/Qty[@Typ='AS']/@Long | |
Option Assignment Short | Decimal | PosRpt/Qty[@Typ='AS']/@Short | |
Option Assignment Status | Text | PosRpt/Qty[@Typ='AS']/@Stat | |
Transaction from Exercise Long | Decimal | PosRpt/Qty[@Typ='TX']/@Long | |
Transaction from Exercise Short | Decimal | PosRpt/Qty[@Typ='TX']/@Short | |
Transaction from Exercise Status | Text | PosRpt/Qty[@Typ='TX']/@Stat | |
Trans from Assignment Long | Decimal | PosRpt/Qty[@Typ='TA']/@Long | |
Trans from Assignment Short | Decimal | PosRpt/Qty[@Typ='TA']/@Short | |
Trans from Assignment Status | Text | PosRpt/Qty[@Typ='TA']/@Stat | |
Pit Trade Qty Long | Decimal | PosRpt/Qty[@Typ='PIT']/@Long | |
Pit Trade Qty Short | Decimal | PosRpt/Qty[@Typ='PIT']/@Short | |
Pit Trade Qty Status | Text | PosRpt/Qty[@Typ='PIT']/@Stat | |
Transfer Trade Qty Long | Decimal | PosRpt/Qty[@Typ='TRF']/@Long | |
Transfer Trade Qty Short | Decimal | PosRpt/Qty[@Typ='TRF']/@Short | |
Transfer Trade Qty Status | Text | PosRpt/Qty[@Typ='TRF']/@Stat | |
Electronic Trade Qty Long | Decimal | PosRpt/Qty[@Typ='ETR']/@Long | |
Electronic Trade Qty Short | Decimal | PosRpt/Qty[@Typ='ETR']/@Short | |
Electronic Trade Qty Status | Text | PosRpt/Qty[@Typ='ETR']/@Stat | |
Allocation Trade Qty Long | Decimal | PosRpt/Qty[@Typ='ALC']/@Long | |
Allocation Trade Qty Short | Decimal | PosRpt/Qty[@Typ='ALC']/@Short | |
Allocation Trade Qty Status | Text | PosRpt/Qty[@Typ='ALC']/@Stat | |
Adjustment Qty Long | Decimal | PosRpt/Qty[@Typ='PA']/@Long | |
Adjustment Qty Short | Decimal | PosRpt/Qty[@Typ='PA']/@Short | |
Adjustment Qty Status | Text | PosRpt/Qty[@Typ='PA']/@Stat | |
As of Trade Qty Long | Decimal | PosRpt/Qty[@Typ='ASF']/@Long | |
As of Trade Qty Short | Decimal | PosRpt/Qty[@Typ='ASF']/@Short | |
As of Trade Qty Status | Text | PosRpt/Qty[@Typ='ASF']/@Stat | |
Delivery Qty Long | Decimal | PosRpt/Qty[@Typ='DLV']/@Long | |
Delivery Qty Short | Decimal | PosRpt/Qty[@Typ='DLV']/@Short | |
Delivery Qty Status | Text | PosRpt/Qty[@Typ='DLV']/@Stat | |
Total Transaction Qty Long | Decimal | PosRpt/Qty[@Typ='TOT']/@Long | |
Total Transaction Qty Short | Decimal | PosRpt/Qty[@Typ='TOT']/@Short | |
Total Transaction Qty Status | Text | PosRpt/Qty[@Typ='TOT']/@Stat | |
Cross Margin Qty Long | Decimal | PosRpt/Qty[@Typ='XM']/@Long | |
Cross Margin Qty Short | Decimal | PosRpt/Qty[@Typ='XM']/@Short | |
Cross Margin Qty Status | Text | PosRpt/Qty[@Typ='XM']/@Stat | |
Integral Split Long | Decimal | PosRpt/Qty[@Typ='SPL']/@Long | |
Integral Split Short | Decimal | PosRpt/Qty[@Typ='SPL']/@Short | |
Integral Split Status | Text | PosRpt/Qty[@Typ='SPL']/@Stat | |
Exch for Physical Qty Long | Decimal | PosRpt/Qty[@Typ='EP']/@Long | |
Exch for Physical Qty Qty Short | Decimal | PosRpt/Qty[@Typ='EP']/@Short | |
Exch for Physical Qty Qty Status | Text | PosRpt/Qty[@Typ='EP']/@Stat | |
Transfer In Qty Long | Decimal | PosRpt/Qty[@Typ='TFT']/@Long | |
Transfer In Qty Short | Decimal | PosRpt/Qty[@Typ='TFT']/@Short | |
Transfer In Qty Status | Text | PosRpt/Qty[@Typ='TFT']/@Stat | |
Transfer Out Qty Long | Decimal | PosRpt/Qty[@Typ='TFF']/@Long | |
Transfer Out Qty Short | Decimal | PosRpt/Qty[@Typ='TFF']/@Short | |
Transfer Out Qty Status | Text | PosRpt/Qty[@Typ='TFF']/@Stat | |
Short Delivery Issued Qty Long | Decimal | PosRpt/Qty[@Typ='DI']/@Long | |
Short Delivery Issued Qty Short | Decimal | PosRpt/Qty[@Typ='DI']/@Short | |
Short Delivery Issued Qty Status | Text | PosRpt/Qty[@Typ='DI']/@Stat | |
Long Pos stopped exp Qty Long | Decimal | PosRpt/Qty[@Typ='DS']/@Long | |
Long Pos stopped exp Qty Short | Decimal | PosRpt/Qty[@Typ='DS']/@Short | |
Long Pos stopped exp Qty Status | Text | PosRpt/Qty[@Typ='DS']/@Stat | |
Corp Action Adj Qty Long | Decimal | PosRpt/Qty[@Typ='CAA']/@Long | |
Corp Action Adj Qty Short | Decimal | PosRpt/Qty[@Typ='CAA']/@Short | |
Corp Action Adj Qty Status | Text | PosRpt/Qty[@Typ='CAA']/@Stat | |
Expired Option Qty Long | Decimal | PosRpt/Qty[@Typ='OXP']/@Long | |
Expired Option Qty Short | Decimal | PosRpt/Qty[@Typ='OXP']/@Short | |
Expired Option Qty Status | Text | PosRpt/Qty[@Typ='OXP']/@Stat | |
Amt Fields | |||
Final Mark to Market Currency | Text | PosRpt/Amt[@Typ='FMTM']/@Ccy | |
Final Mark to Market Amount | Decimal | PosRpt/Amt[@Typ='FMTM']/@Amt | |
Incremental MTM Currency | Text | PosRpt/Amt[@Typ='IMTM']/@Ccy | |
Incremental MTM Amount | Decimal | PosRpt/Amt[@Typ='IMTM']/@Amt | |
Trade Variation Currency | Text | PosRpt/Amt[@Typ='TVAR']/@Ccy | |
Trade Variation Amount | Decimal | PosRpt/Amt[@Typ='TVAR']/@Amt | |
Start of Day MTM Currency | Text | PosRpt/Amt[@Typ='SMTM']/@Ccy | |
Start of Day MTM Amount | Decimal | PosRpt/Amt[@Typ='SMTM']/@Amt | |
Premium Currency | Text | PosRpt/Amt[@Typ='PREM']/@Ccy | |
Premium Amount | Decimal | PosRpt/Amt[@Typ='PREM']/@Amt | |
Cash Residual Currency | Text | PosRpt/Amt[@Typ='CRES']/@Ccy | |
Cash Residual Amount | Decimal | PosRpt/Amt[@Typ='CRES']/@Amt | |
Cash Amount Corp Event Currency | Text | PosRpt/Amt[@Typ='CASH']/@Ccy | |
Cash Amount Corp Event Amount | Decimal | PosRpt/Amt[@Typ='CASH']/@Amt | |
Value Adjusted Currency | Text | PosRpt/Amt[@Typ='VADJ']/@Ccy | |
Value Adjusted Amount | Decimal | PosRpt/Amt[@Typ='VADJ']/@Amt | |
Settlement Currency | Text | PosRpt/Amt[@Typ='SETL']/@Ccy | |
Settlement Amount | Decimal | PosRpt/Amt[@Typ='SETL']/@Amt |
The following assumptions were used in the data mapping:
- For fields that use a “type” or “role” attribute, Duco maps only the enum values that the exchanges use, not all the values that the FIXML schema allows. E.g. for Party, Quantity, Amount.
- A generic Party element has a “Sub” sub-element. This is mapped only for some party types. It is also assumed that at most one Sub element is used. However the XML schema allows multiple Sub elements, and when multiple Sub elements are found, all values will appear in the output as a space-delimited list.