Guidebook for Part 17.00

Reports by Reporting Markets,

Futures Commission Merchants, Clearing

Members, and Foreign Brokers

Version 1.0

May 30, 2023

CFTC

Commodity Futures Trading

Commission
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 2 of 73

Contents

1. Introduction.................................................................................................................... 4

1.1 Large Trader Reporting Program............................................................................................. 4

1.1.1 Large Trader Data................................................................................................................ 4

References ...................................................................................................................................... 5

2. Data Dictionary ........................................................................................................................... 6

2.1 Large Trader Position Reports................................................................................................ 6

3 Technical Requirements...............................................................................................18

Reporting Schedules....................................................................................................... 18

Electronic Data Submission Procedure ........................................................................ 19

Format the Data for Transmission ................................................................................. 19

3.3.1 Reserved Characters ............................................................................................... 19

3.3.2 Special Characters ........................................................................................................ 20

File Naming Convention.................................................................................................. 20

Aggregate the Records ................................................................................................... 21

Compress the File(s) ....................................................................................................... 23

Connect to CFTC with Secure FTP ................................................................................ 23

Transmit the File(s).......................................................................................................... 24

Data Integrity.................................................................................................................... 24

Data Validation and Error Handling ............................................................................... 24

3.10.1 Large Trader FIXML Reference ID.................................................................................. 25

Error and Omission Correction Handling ..................................................................... 25

3.11.1 Initial Submission — New ................................................................................................ 27

3.11.2 Correct One or More Errors — Change ........................................................................... 28

1.1.2 The Entire Report Is Wrong — Delete ........................................................................... 31

Appendix A: SFTP Account Registration......................................................................34

Appendix B: Data Validation Rules for Large Trader Position Report (LTPOS).......................... 41

Appendix C: Annotated Examples and Working Samples .......................................................... 53
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 3 of 73

C-1: Large Trader ....................................................................................................................... 53

Appendix D: 80-Byte Format Comparison to FIXML................................................................... 65

Appendix E Legacy File Format.................................................................................................. 68

Appendix F: Map Part 17 Large Trader Data to FIXML............................................................... 71
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 4 of 73

1. Introduction

1.1 Large Trader Reporting Program

The CFTC operates a comprehensive system of collecting information on market participants to

support its market surveillance program and other programs throughout the Commission. Under

regulations set out in Part 17 of the CFTC’s regulations, promulgated under the Commodity 

Exchange Act (CEA), the Commission collects reports identifying volume threshold, omnibus, and 

special accounts as well as position information from clearing members, Futures Commission 

Merchants (FCMs), foreign brokers, and certain reporting markets.

To ensure privacy of the information provided, the CFTC has assigned confidential reporting 

numbers to reporting firms and traders. The Commission is prohibited under Section 8 of the CEA, 7 

USC 12, from publicly disclosing any person’s positions.

1.1.1 Large Trader Data

Under the Commission’s Large Trader Reporting System, clearing members, FCMs, foreign 

brokers, and certain reporting markets (collectively called “reporting firms”) file daily reports 

with the Commission under Part 17 of the CFTC’s regulations, 17 CFR Part 17. The reports 

show futures and option positions of traders with positions at or above specific reporting

levels as set by the Commission. Current reporting levels are found in CFTC Regulation

15.03(b), 17 CFR 15.03(b). (For more information, see 

https://www.cftc.gov/IndustryOversight/MarketSurveillance/LargeTraderReportingProgram/index.ht

m ) 

If, at the daily market close, a reporting firm has a trader with a reportable position according

to CFTC regulations 15.00(p)(1)(i) and (ii), the firm reports that trader’s entire position in all 

futures and options expiration months in that commodity, regardless of size.

Because traders frequently carry futures positions through more than one broker and 

control or have a financial interest in more than one account, the Commission routinely

collects information that enables its staff to aggregate related accounts. Specifically, 

reporting firms must file a CFTC Form 102A: Identification of “Special Accounts” to identify 

each new account that has a reportable position

The CFTC uses various means to ensure the accuracy of its large trader data. Where the CFTC 

identifies discrepancies in data submitted pursuant to regulation 17.00(a), an inquiry is 

made to the appropriate exchange and/or reporting firm.
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 5 of 73

The term “legacy” is used in the guidebook to reference the old 80-byte format (legacy).

Generic Specific

Legacy The Old 80-byte report format

See Appendix D: 80 Byte Comparison to FIXML for a comparison between the 80 byte and

FIXML formats.

See Appendix E:Legacy File Format for details about the 80 byte format.

 See Appendix F:Map Part 17 Large Trader Data to FIXML to see how the 80 byte data is mapped to FIXML

References

Document Name Location

CFTC regulations are found at Title 17

Chapter I of the Code of Federal Regulations

(CFR)

https://www.ecfr.gov/current/title-17/chapter-I.
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 6 of 73

2. Data Dictionary

2.1 Large Trader Position Reports

Item Data Element Use CFTC Description, Purpose or

Instruction

Valid Values FIXML Path (Tag#) Legacy

Field

1. Total Message 

Count

M The total number of reports included in the file. Int/(19) FIXML/Batch@TotMsg=[Total Reports Count] Batch 

Total Messages (50001)

2. FIXML Message 

Type

M FIXML report type String/(varchar 2) FIXML/Batch/Hdr@MsgTyp=AP MessageType (35)

3. Sender ID M The CFTC issued reporting firm Alpha Code 

from the reporting firm sending the report. 

String/(varchar 20) FIXML/Batch/Hdr@SID=[CFTC Rpt Firm ID] Sender 

Comp ID (49)

4. To ID M Indicates the report was submitted to the CFTC String/(varchar 4) FIXML/Batch/Hdr@TID=CFTC

Target Comp ID (56)

5. Message Transmit 

Datetime

The date and time the file was created. Local time with UTC offset FIXML/Batch/Hdr@Snt=[YYYY-MMDDThh:mm:ss[+|-]hh:mm]Sending Time (52)

6. Report ID M A unique identifier assigned to each position 

report.

Int/(30) FIXML/Batch/PosRpt@RptID =[Unique Rpt ID] 

Report ID (721)

7. Record Type 

(Action)

M Indicates the action that triggered the position 

report.

1 = New - used to 

increment the overall 

transaction quantity

2 = Change - used to 

override the overall 

FIXML/Batch/PosRpt@Actn=[1 | 2 | 3] Position 

Report Action (2364)
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 7 of 73

Item Data Element Use CFTC Description, Purpose or

Instruction

Valid Values FIXML Path (Tag#) Legacy

Field

transaction quantity or 

specific add messages 

based on the FIXML 

Reference ID (Primary Key)

3 = Delete - The FIXML 

Reference ID (Primary Key) 

is used to completely backout (Delete) the 

transaction.

/(tinyint 1)

8. Report Date M The business date of the information being 

reported. YYYY-MM-DD FIXML/Batch/PosRpt@BizDt=[YYYY-MM-DD] Clearing Business Date (715) Report Date

9. Reporting Firm ID M CFTC assigned identifier for the reporting firm.

String/(varchar 3)

Src:

M=CFTC Reporting Firm 

Identifier

R:

116 = Reporting entity

FIXML/Batch/PosRpt/Pty@ID =[Rpt Firm ID] Party ID 

(448)

FIXML/Batch/PosRpt/Pty@Src=M (CFTC Reporting 

Firm Identifier)

Party ID Source (447)

FIXML/Batch/PosRpt/Pty@R=116 (Reporting Entity) 

Party Role (452)

Reporting Firm
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 8 of 73

Item Data Element Use CFTC Description, Purpose or

Instruction

Valid Values FIXML Path (Tag#) Legacy

Field

10. Special Account 

Controller LEI

C

The Legal Entity Identifier issued to the account 

controller. Conditional on Large Trader 

providing LEI to the reporting firm.

ID = Large Trader LEI Max 

Value Length = 20

Src:

N = Legal Entity Identifier

R:

89 = (Large Position 

Reporting Account

FIXML/Batch/PosRpt/Pty@ID= [Large Trader LEI] 

Party ID (448)

FIXML/Batch/PosRpt/Pty@Src=N (Legal Entity 

Identifier) Party ID Source (447)

FIXML/Batch/PosRpt/Pty@R=89 (Large Position 

Reporting Account)

Party Role (452)

11. Account ID M

A unique account identifier, assigned by the 

reporting firm to each special account. 

Assignment of the account number is subject 

to the provisions of 17 CFR § 17.00(b) and 

Appendix A of 17 CFR Part 17 (Form 102).

Max Value Length = 20

Src:

D = Proprietary/Custom

R:

89 = Large Position 

Reporting Account

FIXML/Batch/PosRpt/Pty@ID =[Form 102 Large 

trader Identifier]

Party ID (448)

FIXML/Batch/PosRpt/Pty@Src=D 

(Proprietary/Custom) Party ID Source (447)

FIXML/Batch/PosRpt/Pty@R=89 (Large Position 

Reporting Account)

Party Role (452)

Account 

Number

12. Exchange Indicator M

The exchange where the contract is traded.

(Use ISO MIC 

https://www.iso20022.org/10383/iso-10383-

market-identifier-codes.)

String/(varchar 10) FIXML/Batch/PosRpt/Instrmt@Exch=[MIC Code] 

Security Exchange (207) Exchange Code

13. Commodity 

Clearing Code 

M The clearing house assigned commodity code 

for the futures or options contract.

String/(varchar 50)

Src: H = Clearing Org

FIXML/Batch/PosRpt/Instrmt@ID =[Commodity 

Code] Security ID (48)

FIXML/Batch/PosRpt/Instrmt@Src=[ H] Security ID 

Source (22)

14. Product Type M Type of Product

FUT = Futures

OOF = Options on Futures

OOC = Options on Combos

FIXML/Batch/PosRpt/Instrmt@SecTyp (167)
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 9 of 73

Item Data Element Use CFTC Description, Purpose or

Instruction

Valid Values FIXML Path (Tag#) Legacy

Field

CMDTYSWAP = Commodity 

Swap /(varchar 25)

15. Ticker Symbol M Ticker symbol of the product traded. String/(varchar 50) FIXML/Batch/PosRpt/Instrmt@Sym (55) Commodity 

Code (1)

16. Maturity Month 

Year

M

Month and year of the delivery or maturity of 

the product, as applicable. Day must be 

provided when necessary to characterize a 

product.

 YYYYMM 

YYYYMMDD FIXML/Batch/PosRpt/Instrmt@MMY Maturity 

Month Year (200)

17. Maturity Time C

The expiration time of an option or last trading 

time of a future. Only required when 

Instrument has multiple expirations within 

same day.

String

/Local date and time with 

UTC offset.

/hh:mi:ss-tz

 hh:mi:ss.fff-tz

FIXML/Batch/PosRpt/Instrmt@MatTm 

=[hh:mm:ss.sss[+ |-]hh:mm]

Maturity Time (1079)

18. Listing Date C

Option listing date. Only required if a product 

with the same commodity code and maturity 

was previously knocked out and relisted. 

YYYY-MM-DD FIXML/Batch/PosRpt/Instrmt@Issued

Listing Date(225)

19. First Exercise Date C

The earliest time at which notice of exercise 

can be given. 

YYYY-MM-DD 

FIXML/Batch/PosRpt/Instrmt/Evnt@EventTyp=25 

First exercise date (865)

FIXML/Batch/PosRpt/Instrmt/Evnt@Dt

Earliest Exercise Date (866)

20. Strike Level C

Numeric option moneyness criterion. For 

Options only. StrkPx=[decimal(10)] Max 

Value Length = 19

FIXML/Batch/PosRpt/Instrmt@StrkPx =[decimal(10)]

Strike Price (202)

Strike Price
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 10 of 73

Item Data Element Use CFTC Description, Purpose or

Instruction

Valid Values FIXML Path (Tag#) Legacy

Field

21. Alpha Strike C

Non-Numeric option moneyness criterion. This

is mandatory for all options with Non-Numeric 

strike.

String/(vachar 256) FIXML/Batch/PosRpt/Instrmt@AlphaStrk =[String]

Strike Value ()

22. Cap Level C Ceiling value of a capped option or bounded 

future. Float/(21,9) FIXML/Batch/PosRpt /Instrmt/@CapPx=[Float(21,9)]Cap Level (1199)

23. Floor Level C Floor value of a capped option or bounded 

future. Float/(21,9) FIXML/Batch/PosRpt /Instrmt/@FlrPx =[Float(21,9)]Floor Level(1200)

24.

Bound or Barrier 

Type

C

Behavior of the product when it hits the bound 

or barrier. Only provide when instrument has a 

Cap, Floor, or Barrier.

Valid values:

1=Capped

3=Knock-in up

4=Knock-in down

5=Knock-out up

6=Knock-out down

/(tinyint 1)

FIXML/Batch/PosRpt/ Instrmt/CmplxEvnt/@Typ

Bound Type(1484)

25.

Bound or Barrier 

Level

C Barrier level of a contingent option. Float/(21,9) FIXML/Batch/PosRpt/ Instrmt/CmplxEvnt/@Px(

Barrier Level1486)

26. Put or Call Indicator C

Nature of the option exercise. 

Only for Options.

0 = Put

1 = Call

/(tinyint 1)

FIXML/Batch/PosRpt/Instrmt@PutCall

Put or Call (201)

Put or Call

27. Exercise Style C

Type of exercise of an option. 

Only for Options.

0=European

1=American

2=Bermuda

99=Other

FIXML/Batch/PosRpt/Instrmt/@ExerStyle (1194)
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 11 of 73

Item Data Element Use CFTC Description, Purpose or

Instruction

Valid Values FIXML Path (Tag#) Legacy

Field

/(tinyint 1)

28. Payout Amount C Cash amount indicating the payout associated 

with the product. Only for Binary Options. String/(varchar 10) FIXML/Batch/PosRpt/Instrmt/@OptPayAmt (1195)

29. Payout Type C

The type of valuation method or payout 

trigger. Only for Options.

1=Vanilla

2=Capped

3=Digital (Binary)

4=Asian

5=Barrier

6=Digital Barrier

7=Lookback

8=Other path dependent

99=Other

/(tinyint 1)

FIXML/Batch/PosRpt/Instrmt/@OptPayoutTyp 

(1482)

30. Underlying Contract 

ID

C

The instrument that forms the basis of an 

option. Only required for options for which the 

underlying is an exchange-traded instrument.

String/(varchar 20)

FIXML/Batch/PosRpt/PosUnd/Undly@ID 

=[Commodity]

FIXML/Batch/PosRpt/PosUnd/Undly@Src 

FIXML/Batch/PosRpt/PosUnd/Undly@Exch

Underlying Security ID (309)

Underlying Security ID Src (305)

Underlying Security Exchange (308) 

31.

Underlying 

Maturity Month 

Year

C

Underlying delivery year and month (and day 

where applicable). Only for options that 

reference a product with maturity month year.

YYYYMM

YYYYMMDD

FIXML/Batch/PosRpt/PosUnd/Undly@MMY 

Underlying Maturity Month Year (313)
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 12 of 73

Item Data Element Use CFTC Description, Purpose or

Instruction

Valid Values FIXML Path (Tag#) Legacy

Field

32. Long Position C The total of long open contracts carried at the 

end of the day.

Float/(10)

FIXML/Batch/PosRpt/Qty@Typ =FIN

Position Type (703) FIXML/Batch/PosRpt/Qty@Long 

=[decimal(10)] Long Quantity (704)

Report Type 

Long-BuyStopped

33. Short Position C The total of short open contracts carried at the 

end of the day.

Float/(10)

FIXML/Batch/PosRpt/Qty@Typ =FIN

Position Type (703) 

FIXML/Batch/PosRpt/Qty@Short =[decimal(10)] 

Short Quantity (705)

Report Type 

Short-SellIssued

34. Contracts Bought C

The total quantity of contracts bought (gross) 

during the day associated with a special 

account, including all block trades and, trade 

allocations such as give-ups, even if the giveups are processed beyond T+1. Do not include 

exchanges of derivatives for related positions 

EDRPs (EFP, EFS or EFR, EOO) or transfers. If no 

transactions are made as described, then 

populate with ‘0’.

Float/(10) 

 FIXML/Batch/PosRpt/Qty@Typ =TOT

Position Type (703) FIXML/Batch/PosRpt/Qty@Long 

=[decimal(10)] Long Quantity (704)

35. Contracts Sold C

The total quantity of contracts sold (gross) 

during the day associated with a special 

account, including all block trades, and trade 

allocations such as give-ups, even if the giveups are processed beyond T+1. Do not include 

EDRPs (EFP, EFS or EFR, EOO) or transfers. If no 

transactions are made as described, then 

populate with ‘0’.

Float/(10) FIXML/Batch/PosRpt/Qty@Typ =TOT

Position Type (703) 

FIXML/Batch/PosRpt/Qty@Short =[decimal(10)] 

Short Quantity (705)
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 13 of 73

Item Data Element Use CFTC Description, Purpose or

Instruction

Valid Values FIXML Path (Tag#) Legacy

Field

36.

Exchange for 

Physical (EFPs) 

Bought

C

The quantity of purchases of futures in 

connection with Exchanges for Physical (EFPs).

EFPs include transactions involving the 

simultaneous execution of a futures contract 

and a corresponding physical transaction, or 

any similar transaction commonly known to the 

trade as an EFP. If no transactions are made as 

described, then populate with ‘0’. 

Float/(10)

FIXML/Batch/PosRpt/Qty@Typ= EP

Position Type (703)

FIXML/Batch/PosRpt/Qty@Long =[decimal(10)] 

Long Quantity (704)

37. EFPs Sold C

The quantity of sales of futures in connection 

with EFPs. If no transactions are made as 

described, then populate with ‘0’.

Float/(10)

FIXML/Batch/PosRpt/Qty@Typ= EP 

Position Type (703) 

FIXML/Batch/PosRpt/Qty@Short =[decimal(10)] 

Short Quantity (705) 

38.

Exchanges for 

Swaps (EFSs) 

Bought (also known 

as Exchanges for 

Risk (EFRs))

C

The quantity of purchases of futures in 

connection with exchanges for swaps (EFSs), 

also known as exchanges for risk (EFRs)., 

EFSs and EFRs include the simultaneous 

exchange of a futures contract and a 

corresponding swap or other derivative 

transaction, or any similar transaction 

commonly known to the trade as an EFS or EFR. 

If no transactions are made as described, then 

populate with ‘0’.

Float/(10) FIXML/Batch/PosRpt/Qty@Typ= ES Position Type 

(703)

FIXML/Batch/PosRpt/Qty@Long =[decimal(10)] 

Long Quantity (704)
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 14 of 73

Item Data Element Use CFTC Description, Purpose or

Instruction

Valid Values FIXML Path (Tag#) Legacy

Field

39. EFSs Sold (also 

known as EFRs)

C

The quantity of sales of futures in connection 

with EFSs (also known as EFRs). If no 

transactions are made as described, then 

populate with ‘0’.

Float/(10)

FIXML/Batch/PosRpt/Qty@Typ= ES Position Type 

(703)

FIXML/Batch/PosRpt/Qty@Short =[decimal(10)] 

Short-Quantity (705)

40.

Exchanges of 

Option for Option 

(EOOs) Bought

C

The quantity of purchases of options in 

connection with exchanges of options for 

options (EOOs). EOOs include transactions 

involving the simultaneous execution of 

options and a corresponding transaction in an 

over-the-counter option, or any similar 

transaction commonly known to the trade as 

an EOO. If no transactions are made as 

described, then populate with ‘0’.

Float/(10) FIXML/Batch/PosRpt/Qty@Typ= EO Position Type 

(703)

FIXML/Batch/PosRpt/Qty@Long =[decimal(10)]

Long Quantity (704)

41. EOOs Sold C

The quantity of sales of options in connection 

with EOOs. If no transactions are made as 

described, then populate with ‘0’.

Float/(10)

FIXML/Batch/PosRpt/Qty@Typ= EO Position Type 

(703)

FIXML/Batch/PosRpt/Qty@Short =[decimal(10)] 

Short-Quantity (705)
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 15 of 73

Item Data Element Use CFTC Description, Purpose or

Instruction

Valid Values FIXML Path (Tag#) Legacy

Field

42. Delivery Notices 

Stopped

C

The number of futures contracts for which 

delivery notices have been stopped during a 

day. If no delivery notices were stopped, then 

populate with ‘0’.

Float/(10)

FIXML/Batch/PosRpt/Qty@Typ= DN Position Type 

(703)

FIXML/Batch/PosRpt/Qty@Long =[decimal(10)]

Long Quantity (704)

Report Type 

Long-BuyStopped

43. Delivery Notices 

Issued

C

The number of futures contracts for which 

delivery notices have been issued during a day. 

If no delivery notices were issued, then 

populate with ‘0’.

Float/(10)

FIXML/Batch/PosRpt/Qty@Typ= DN Position Type 

(703)

FIXML/Batch/PosRpt/Qty@Short =[decimal(10)]

Short-Quantity (705)

Report Type 

Short-SellIssued

44. Long Options 

Expired

C

Long option positions expired without being 

exercised. If no options expired as described, 

then populate with ‘0’.

Float/(10)

FIXML/Batch/PosRpt/Qty@Typ= EXP 

Position Type (703)

FIXML/Batch/PosRpt/Qty@Long =[decimal(10)] 

Long-Quantity (704)

45. Short Options 

Expired

C

Short option positions expired without being 

exercised. If no options expired as described, 

then populate with ‘0’. Float/(10)

FIXML/Batch/PosRpt/Qty@Typ= EXP 

Position Type (703) 

FIXML/Batch/PosRpt/Qty@Short =[decimal(10)] 

Short-Quantity (705)
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 16 of 73

Item Data Element Use CFTC Description, Purpose or

Instruction

Valid Values FIXML Path (Tag#) Legacy

Field

46. Long Options 

Exercised

C

Long options position exercised during the day, 

including options that are automatically 

exercised. If no options are exercised as 

described, then populate with ‘0’. 

Float/(10)

FIXML/Batch/PosRpt/Qty@Typ= EX 

Position Type (703)

FIXML/Batch/PosRpt/Qty@Long =[decimal(10)] 

Long-Quantity (704)

47. Short Options 

Exercised

C

Short options positions exercised by the holder 

during the day, including options that are 

automatically exercised. If no options are 

exercised as described, then populate with ‘0’.

Float/(10)

FIXML/Batch/PosRpt/Qty@Typ= EX 

Position Type (703)

FIXML/Batch/PosRpt/Qty@Short =[decimal(10)] 

Short-Quantity (705)

48. Long Futures 

Assigned

C

Long futures assigned as the result of an option 

exercise (for example, the exercise of a long 

call or a short put). If no futures are assigned as 

a result of option exercise, then populate with 

‘0’.

Float/(10)

FIXML/Batch/PosRpt/Qty@Typ= AS 

Position Type (703)

FIXML/Batch/PosRpt/Qty@Long =[decimal(10)] 

Long-Quantity (704)

49.

Short Futures 

Assigned

C

Short futures assigned as the result of an 

option exercise (for example, the exercise of a 

short call or a long put). If no futures are 

assigned as a result of option exercise, then 

populate with ‘0’.

Float/(10)

FIXML/Batch/PosRpt/Qty@Typ= AS 

Position Type (703)

FIXML/Batch/PosRpt/Qty@Short =[decimal(10)] 

Short-Quantity (705)

50. Long Transfers Sent C

Long positions sent through other transfers 

during the day. (Do not include give-ups).

If no transfers are made as described, then 

populate with ‘0’

Float/(10) 

FIXML/Batch/PosRpt/Qty@Typ= TRF 

Position Type (703) 

FIXML/Batch/PosRpt/Qty@Long =[decimal(10)] 

Long-Quantity (704)
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 17 of 73

Item Data Element Use CFTC Description, Purpose or

Instruction

Valid Values FIXML Path (Tag#) Legacy

Field

51. Long Transfers 

Received

C

Long positions received through other transfers 

during the day. (Do not include give-ups). If no 

transfers are made as described, then populate 

with ‘0’.

Float/(10)

FIXML/Batch/PosRpt/Qty@Typ= RCV 

Position Type (703) 

FIXML/Batch/PosRpt/Qty@Long =[decimal(10)]

Long-Quantity (704)

52.

Short Transfers 

Sent

C

Short positions sent through other transfers 

during the day. (Do not include give-ups).

If no transfers are made as described, then 

populate with ‘0’.

Float/(10)

FIXML/Batch/PosRpt/Qty@Typ= TRF 

Position Type (703)

FIXML/Batch/PosRpt/Qty@Short =[decimal(10)] 

Short-Quantity (705) 

53.

Short Transfers 

Received

C

Short positions received through other 

transfers during the day. (Do not include giveups). If no transfers are made as described, 

then populate with ‘0’.

Float/(10)

FIXML/Batch/PosRpt/Qty@Typ= RCV 

Position Type (703)

FIXML/Batch/PosRpt/Qty@Short =[decimal(10)] 

Short-Quantity (705) 
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 18 of 73

3 Technical Requirements

Reporting Schedules

Reports filed under Section 17.00(a) must be submitted through electronic data 

transmission procedures approved in writing by the Commission or its designee not later 

than 9 a.m. on the business day following that to which the information pertains. Unless 

otherwise specified by the Commission or its designee, the stated time is eastern time for 

information concerning markets located in that time zone, and central time for 

information concerning all other markets.

Reporting Time for § 17.00(a) Reports

9:00 AM (Local Mkt Time) LTPOS

The definition of business day in § 1.3 of the Commission’s regulations includes all days 

except Sundays and holidays. For the purposes of complying with Part 17, reporting 

entities may elect to not consider Saturdays to be a business day, as Saturday is not

commonly known as such. Instead, reporting entities may submit Part 17 data records 

under the schedule displayed in the following table. In the table, the submission day is 

the day of the week that the relevant report for the associated reporting day is 

expected by the Commission. The time during the day that reports are expected is 

unchanged from § 17.02(a).

The reporting schedule displayed in the table below does not consider holidays. To the 

extent that a U.S. Federal government holiday falls on the submission day, it is permissible

for the submission of the applicable Part 17 data record to occur on the business day 

immediately after the usual submission day. Please note that any submission made under

Part 17 can be made prior to the relevant submission day shown below. Early submission is 

beneficial in that it may allow the Commission to review your submission earlier and 

provide more timely feedback regarding the acceptability of the file structure and data 

contents.

Reporting Schedule for § 17.00(a) Reports

Report Day

Submit Day1

Monday Tuesday Wednesday Thursday Friday Saturday Sunday

Tuesday Wednesday Thursday Friday Monday Monday Monday
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 19 of 73

Electronic Data Submission Procedure

If reporting for an account the first time, identify the special account to the Commission on 

Form 102A and submit the form via CFTC Portal at https://portal.cftc.gov/ . 

Information on Form 102A can be found https://www.ecfr.gov/current/title-17/chapter-I/part17/appendix-Appendix%20A%20to%20Part%2017

Format the Data for Transmission

Consolidate the records into an XML-formatted file following the FIXML Position Report, as 

described in Section 2, Data Dictionary for Large Trader Reports. See https://fiximate.fixtrading.org/ 

for more details.

Make sure that your XML contains the FIXML message tag with the namespace. See sample 

messages in Appendix C.

3.3.1 Reserved Characters

Some characters have a special meaning in XML. If you place a character like "<" inside an XML

element, it will generate an error because the parser interprets it as the start of a new element.

This will generate an XML error:

To avoid this error, replace the "<" character with an entity reference: 

As shown in the table below, there are 5 predefined entity references in XML. If the indicated

characters appear in data fields, ensure they are replaced with the appropriate entity reference 

value.

<message>ifsalary < 1000 then</message>

<message>ifsalary < 1000 then</message>
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 20 of 73

3.3.2 Special Characters

Non-printable and special characters are not supported by all systems. They are often translated 

or interpreted erroneously and may cause data processing issues. There are 256 ASCII characters,

including the extended ASCII character set. To reduce confusion over which characters can be 

processed, ASCII characters can be classified in the following groups:

Many currency denominations and foreign symbols fall under the extended ASCII character set. For

this reason, any reference to currency denomination should be reported as the three-letter 

alphabetic ISO 4217 currency code (e.g., USD, GBP, EUR, JPY) rather than a translated currency 

name or ambiguous currency symbol (e.g., $, £, €, ¥).

File Naming Convention

The Commission uses file names to facilitate routing inbound data files to the appropriate

processing application. Each file must contain data for a single reporting firm for a single date. 

Do not combine records from 2 different dates or two different reporting firms.

For the Large Trader Position report the file naming convention is: 

LTPOS_[IDENT]_[Sender ID]_[YYYYMMDD].[EXTENSION]

IDENT:

This field is the 3-5 character identifier provided by the CFTC during the account 

registration process that is assigned to the submitting entity.

Sender ID:

This field is either the CFTC-assigned 3 character Alpha code assigned to the responsible

reporting firm or the name of the servicing firm entity for third party filings to represent 

the on behalf of ID. The name of the servicing firm may be up to 20 characters in length.
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 21 of 73

YYYYMMDD:

This field is the calendar date in string format of the data being reported in YYYYMMDD date

format.

EXTENSION:

This refers to the file extension .fixml

File Naming Convention - Direct Submission Files

The following examples represent Large Trader Position data submitted directly to CFTC

by a firm with the CFTC reporting identifier “ABC”:

LTPOS_ ABC_ABC_20160601.fixml (FIXML Large Trader Position Rpt)

File Naming Convention - On Behalf Files

Third parties can submit reports on behalf of a reporter. The following examples 

represent Large Trader Position data submitted to CFTC by a servicing firm with the 

Sender ID “DEF” on behalf of a firm with the CFTC reporting identifier “ABC”:

LTPOS_ DEF_ABC_20160601.fixml (On-Behalf-Of FIXML Large Trader Position Rpt)

File Naming Convention – Test Files

CFTC has established user acceptance test (UAT) environments for testing data files 

during development. Use the following naming convention to distinguish test data files

from production reports:

LTPOS_ ABC_ABC_20160601_TEST.fixml (Test FIXML Large Trader Position Rpt)

LTPOS_ DEF_ABC_20160601_TEST.fixml (Test On-Behalf-Of FIXML Large Trader Position Rpt)

. 

Aggregate the Records 

The example below shows how we receive data currently in 80 byte format and how we expect

the data to be aggregated in the FIXML format. The Part 17 Large Trader data report has been

submitted using an 80-byte columnar data format. That format required separate reports (rows)

for each count (RP/DN/EP) being submitted. Transition of the report to the FIXML Position 
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 22 of 73

Report message eliminates duplicate data entry, consolidating all counts under one report, while 

also eliminating the need for encoding numeric values for sign and decimal point location. 

Reporters should submit a single FIXML Position Report for each account and contract that 

contains all related quantities for the reporting date. The table below represents how the 80 

byte record format compares to the FIXML format. 

Reported Quantity 80-Byte FIXML

EOD Position Long/Short √ √

Delivery Notices Issued/Stopped √ √

ERFPs Bought/Sold √

Exchange for Physicals1 Bought/Sold √

Exchange for Options2 Bought/Sold √

Exchange for Swaps3 Bought/Sold √

Total Contracts Bought/Sold √

Options Expired Long/Short √

Options Exercised Long/short √

Futures Assigned Long/Short √

Long/Short Transfers Sent/Received √

Previously the report for an account in an exchange-listed futures contract could have up to

three rows in the 80-byte format:

 

1

 An EFP transaction involves the simultaneous execution of a futures contract and a corresponding physical 

transaction or a forward contract on a physical transaction, or any similar transaction commonly known to the trade as an 

EFP.

2 An EOO transaction involves the simultaneous execution of options and a corresponding transaction in an over-thecounter option, or any similar transaction commonly known to the trade as an EOO.

3

 An EFS (also known as EFR) transaction involves the simultaneous exchange of a futures contract and a 

corresponding swap or other derivative transaction, or any similar transaction commonly known to the trade as an EFS or 

EFR.
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 23 of 73

The new report for an account in an exchange-listed futures contract could have a single report

with up to five counts in the FIXML format:

Note: The new report must have at least one quantity, <Qty/>, reported and may have up to five 

reported quantities. There is no particular type, Typ, quantity requirement, except that you must

have at least one quantity reported in any given report, and the quantities must be aggregated as 

above.. 

Compress the File(s) 

After you assemble the data file, compress it using the GZIP or WInzip utility. The GZIP utility 

is freely available at http://www.gzip.org. The only acceptable file types are .ZIP or .GZ. Each 

compressed file should contain only one FIXML file for only one reporter and one report date

(Business Date). You can not have multiple reporters or report dates within a single zipped 

file.

Connect to CFTC with Secure FTP 

Connect to the CFTC FTP site at traders.cftc.gov, and log in using your account and

password. The compressed files will be submitted to the CFTC via Secure File Transfer

Protocol (SFTP). Reporting entities with SFTP accounts can continue to use those accounts 

for Part 17 reporting.

New reporters who do not already have an SFTP account must request a Secure FTP account from

the CFTC. See Appendix A: SFTP Account Registration. 
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 24 of 73

Transmit the File(s)

Reports submitted to CFTC under Part 17 are subjected to several data quality checks before final

processing and promotion into the appropriate production database tables. All messages must first 

pass validation against the applicable reference XML standards (e.g., FIXML) for well-formedness

and enumerated valid value sets. Appendix B contains details of all the validations.

Data Integrity

The inclusion of data elements reflecting counts of transactions, expirations or assignments, that 

resulted in day-to-day changes in positions enables reporting firms to perform an internal 

consistency check on position reports required to be submitted under Part 17. The day-to-day 

change in the size of a net position for a particular special account should equal the net value of 

contracts bought and sold; relevant EDRPs bought and sold; expirations, exercises, and assignments 

of contracts; and transfers sent and received.

More specifically, for futures positions, the day-to-day change in net position should equal:

Δ(Net Futures Position)

= (Contracts Bought - Contracts Sold) + (EFP Bought - EFP Sold)

+ (EFS Bought - EFS Bought) + (Notices Issued - Notices Stopped )

+ (Long Futures Assigned - Short Futures Assigned )

+ (Long Transfers Received - Long Transfers Sent)

+ (Short Transfers Sent - Short Transfers Received)

For options positions, the day-to-day change in position should equal:

Δ(Net Option Position)

= (Contracts Bought - Contracts Sold) + (EOO Bought - EOO Sold)

+ (Short Options Expired - Long Options Expired)

+ (Short Options Exercised - Long Options Exercised)

+ (Long Transfers Received - Long Transfers Sent)

+ (Short Transfers Sent - Short Transfers Received)

Data Validation and Error Handling

Reports submitted to CFTC under Part 17 are subjected to several data quality checks before final

processing and promotion into the appropriate production database tables. All messages must first 
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 25 of 73

pass validation against the applicable reference XML standards (e.g., FIXML) for well-formedness

and enumerated valid value sets. Appendix B contains details of all the validations. 

3.10.1 Large Trader FIXML Reference ID

The Large Trader reference id is made up of the minimum fields required to uniquely identify the 

records. The options and futures contain the same reference id parts except the options contain 

the additional put or call Indicator, strike fields and first exercise date. The reference id consists of

the data elements in the table below.

Fut Opt Data Element FIXML Path Definition

X X Report Date FIXML/Batch/PosRpt@BizDt Position date

X X Reporting Firm ID FIXML/Batch/PosRpt/Pty@ID (Src M) Reporting Firm Alpha Code

X X Account ID FIXML/Batch/PosRpt/Pty@ID (Src D) Special Account of trader

X X Security Exchange 

Indicator

FIXML/Batch/PosRpt/Instrmt@Exch ISO 10383 Market Identifier Code 

for the instrument of reported 

position

X X Commodity ID FIXML/Batch/PosRpt/Instrmt@ID Exchange's unique identifierfor 

the instrument

X X Maturity Month Year FIXML/Batch/PosRpt/Instrmt@MMY Maturity Month Year

X Put or Call Indicator FIXML/Batch/PosRpt/Instrmt@PutCall 0 = Put

1 = Call

X Strike Level FIXML/Batch/PosRpt/Instrmt@StrkPx Strike Level

X Alpha Strike FIXML/Batch/PosRpt/Instrmt@AlphaStrk Alpha Strike

X X Cap Level FIXML/Batch/PosRpt/Instrmt@CapPx Cap Level

X X Floor Level FIXML/Batch/PosRpt/Instrmt@FlrPx Floor Level

X X Ticker Symbol FIXML/Batch/PosRpt/Instrmt@Sym Ticker Symbol

X 

First Exercise Date FIXML/Batch/PosRpt/Instrmt/Evnt@EventT

yp=25

FIXML/Batch/PosRpt/Instrmt/Evnt@Dt

First Exercise Date

Error and Omission Correction Handling

Reporting markets shall file corrections to errors or omissions in data previously filed with the 

Commission pursuant to §17.00(a) using the same format, coding structure, and electronic 

data submission procedures previously described in this section. To correct errors or 

omissions a firm must resubmit ONLY the corrected records for the affected day. The records 

will be reprocessed and will replace the data records that have errors for that day. Data 

correction and resubmission must be done in a timely manner. Make sure that the key data 

elements listed in Section 3.10.1 are included when submitting changes. This will ensure that

the correct records get updated.
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 26 of 73

The examples below show scenarios when reporters should use New, Change and Delete 

messages. Note: The reference IDs are highlighted in blue. The action to be taken (New, 

Update, or Delete) is highlighted in yellow. The changes made to the data in the “Change”

section are highlighted in violet.

Please forward questions regarding format, content, and transmission of Part 17 data 

submission to the CFTC at Part17TechSupport@cftc.gov.
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 27 of 73

3.11.1 Initial Submission — New

• The account/contract hasreportable activity on the reporting date

The initial report for an account/contract/reporting date must contain the action code for 

“New”. In FIXML set FIXML/Batch/PosRpt@Actn=“1”. There can only be one such report per 

reporting date file. Include all reported quantities for the account/contract/reporting date in a 

single FIXML Position Report.

Submission Example 1: Initial Report with the Action Code of “New”

<?xml version="1.0" encoding="UTF-8"?>

<FIXML xmlns="http://www.fixprotocol.org/FIXML-5-0-SP2"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" v="FIX.5.0SP2"

xsi:schemaLocation="http://www.fixprotocol.org/FIXML-5-0-SP2 

file:///H:/My%20Documents/EP249/fixml-main-5-0-SP2.xsd">

<Batch TotMsg="2">

 <Hdr MsgTyp="AP" SID="ZZZ" TID="CFTC" Snt="2017-03-

02T09:30:47Z"/>

 <!-- Futures -->

 <PosRpt RptID="1" BizDt="2017-02-13" Actn="1" >

 <Pty ID="ZZZ" Src="M" R="116"/>

 <Pty ID="100" Src="D" R="89"/>

 <Pty ID="100" Src="N" R="89"/>

 <Instrmt ID="S" Src="H" MMY="201705" Exch="XCBT" SecTyp="FUT"

Sym="ABC"/>

 <Qty Typ="FIN" Long="10.0" Short="20.0"/>

 <Qty Typ="ES" Long="40.0" Short="30.0"/>

 <Qty Typ="EP" Long="50.0" Short="60.0"/>

 <Qty Typ="DN" Long="80.0" Short="70.0"/>

 <Qty Typ="TRF" Long="45.0" Short="35.0"/>

 </PosRpt>

 <!-- Options -->

 <PosRpt RptID="12" BizDt="2017-02-13" Actn="1">

 <Pty ID="ZZZ" Src="M" R="116"/>

 <Pty ID="100" Src="D" R="89"/>

 <Pty ID="100" Src="N" R="89"/>

 <Instrmt ID="S" Src="H" MMY="201705" StrkPx="3"

PutCall="0"

 Exch="XCBT" SecTyp="OOF" Sym="ABC" Issued="YYYY-MM-DD"

CapPx="10" 

 FlrPx="2" ExerStyle="1" OptPayAmt="10" OptPayoutTyp="3"/>

 <Evnt EventTyp="25" Dt="YYYY-MM-DD"/> 

 <CmplxEvnt Typ="3" Px="4" /> 

 </Instrmt>

 <PosUnd> <Undly ID="S" Src="H" MMY="201705"/></PosUnd>

 <Qty Typ="FIN" Long="10.0" Short="20.0"/>

 <Qty Typ="EO" Long="40.0" Short="30.0"/>

 <Qty Typ="EXP" Long="40.0" Short="30.0"/>

 <Qty Typ="EX" Long="50.0" Short="25.0"/>

 <Qty Typ="TRF" Long="45.0" Short="35.0"/>

 </PosRpt>

</Batch> </FIXML>
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 28 of 73

3.11.2 Correct One or More Errors — Change

• The account/contract hasreportable activity on the reporting date

• The initial report contains errors

Correcting errors requires resubmitting a file containing only the corrected individual Position 

Reports by account/contract/reporting date. Be sure to set the action code to indicate a 

“Change” report. In FIXML set FIXML/Batch/PosRpt@Actn=“2”. Be sure to include all the 

reported quantities in the corrected Position Report. Use the change report whenever the

previously submitted report contained an error.

 Submission Example 2: Existing FUT and OOF Position Reportsto be Updated

Change Example:

<?xml version="1.0" encoding="UTF-8"?>

<!--Existing FUT and OOF Position Reports to be Updated -->

<FIXML xmlns="http://www.fixprotocol.org/FIXML-5-0-SP2"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" v="FIX.5.0SP2"

xsi:schemaLocation="http://www.fixprotocol.org/FIXML-5-0-SP2 

file:///H:/My%20Documents/EP249/fixml-main-5-0-SP2.xsd">

<Batch TotMsg="2">

<Hdr MsgTyp="AP" SID="ZZZ" TID="CFTC" Snt="2017-03-02T09:30:47Z"/>

<!-- Futures -->

<PosRpt RptID="1" BizDt="2017-02-13" Actn="1">

 <Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100" Src="D" R="89"/>

<Pty ID="100" Src="N" R="89"/>

<Instrmt ID="S" Src="H" MMY="201705" Exch="XCBT" SecTyp="FUT" Sym="ABC"/>

<Qty Typ="FIN" Long="10.0" Short="20.0"/>

<Qty Typ="ES" Long="40.0" Short="30.0"/>

<Qty Typ="EP" Long="50.0" Short="60.0"/>

<Qty Typ="DN" Long="80.0" Short="70.0"/>

 <Qty Typ="TRF" Long="45.0" Short="35.0"/>

 </PosRpt>

<!-- Options -->

<PosRpt RptID="1" BizDt="2017-02-13" Actn="1">

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100" Src="D" R="89"/>

<Pty ID="100" Src="N" R="89"/>

<Instrmt ID="S" Src="H" MMY="201705" Exch="XCBT" SecTyp="FUT" Sym="ABC"/>

<Qty Typ="FIN" Long="10.0" Short="20.0"/>

<Qty Typ="ES" Long="40.0" Short="30.0"/>

<Qty Typ="EP" Long="50.0" Short="60.0"/>

<Qty Typ="DN" Long="80.0" Short="70.0"/>

 

 <Qty Typ="TRF" Long="45.0" Short="35.0"/>
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 29 of 73

 </PosRpt>

<!-- Options -->

<PosRpt RptID="12" BizDt="2017-02-13" Actn="1" >

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100" Src="D" R="89"/>

<Pty ID="100" Src="N" R="89"/>

<Instrmt ID="S" Src="H" MMY="201705" StrkPx="3" PutCall="0" Exch="XCBT"

SecTyp="OOF" Sym="ABC" Issued="YYYY-MM-DD" CapPx="10" FlrPx="2" ExerStyle="1"

OptPayAmt="10" OptPayoutTyp="3"/>

 <Evnt EventTyp="25" Dt="YYYY-MM-DD"/>

 <CmplxEvnt Typ="3" Px="4"/>

 </Instrmt>

<PosUnd><Undly ID="S" Src="H" MMY="201705"/></PosUnd>

<Qty Typ="FIN" Long="10.0" Short="20.0"/>

<Qty Typ="EO" Long="40.0" Short="30.0"/>

<Qty Typ="EXP" Long="40.0" Short="30.0"/>

<Qty Typ="EX" Long="50.0" Short="25.0"/>

<Qty Typ="TRF" Long="45.0" Short="35.0"/>

</PosRpt></Batch>

</FIXML>
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 30 of 73

Submission Example 3: Changed / Updated Position Reports 

 <?xml version="1.0" encoding="UTF-8"?>

<!-- Changed - Updated Position Reports -->

<FIXML xmlns="http://www.fixprotocol.org/FIXML-5-0-SP2"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" v="FIX.5.0SP2"

xsi:schemaLocation="http://www.fixprotocol.org/FIXML-5-0-SP2 

file:///H:/My%20Documents/EP249/fixml-main-5-0-SP2.xsd">

<Batch TotMsg="2">

<Hdr MsgTyp="AP" SID="ZZZ" TID="CFTC" Snt="2017-03-02T09:30:47Z"/>

<!-- Futures -->

<PosRpt RptID="1" BizDt="2017-02-13" Actn="2">

 <Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100" Src="D" R="89">

<Pty ID="100" Src="N" R="89"/>

<Instrmt ID="S" Src="H" MMY="201705" Exch="XCBT" SecTyp="FUT" Sym="ABC"/>

 <Qty Typ="FIN" Long="10.0" Short="21.0"/>

 <Qty Typ="ES" Long="40.0" Short="32.0"/>

 <Qty Typ="EP" Long="50.0" Short="63.0"/>

 <Qty Typ="DN" Long="80.0" Short="74.0"/>

<Qty Typ="TRF" Long="45.0"Short="36.0"/>

</PosRpt>

<!-- Options -->

<PosRpt RptID="12" BizDt="2017-02-13" Actn="2">

 <Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100" Src="D" R="89"/>

<Pty ID="100" Src="N" R="89"/>

<Instrmt ID="S" Src="H" MMY="201705" StrkPx="3" PutCall="0"

Exch="XCBT" SecTyp="OOF" Sym="ABC" Issued="YYYY-MM-DD" CapPx="10" 

 FlrPx="2" ExerStyle="1" OptPayAmt="10" OptPayoutTyp="3"/> 

 <Evnt EventTyp="25" Dt="YYYY-MM-DD"/>

 <CmplxEvnt Typ="3" Px="4"/>

 </Instrmt> 

<PosUnd><Undly ID="S" Src="H" MMY="201705"/></PosUnd>

<Qty Typ="FIN" Long="10.0" Short="21.0"/>

<Qty Typ="EO" Long="40.0" Short="32.0"/>

<Qty Typ="EXP" Long="40.0" Short="31.0"/>

<Qty Typ="EX" Long="50.0" Short="26.0"/>

<Qty Typ="TRF" Long="45.0" Short="36.0"/>

</PosRpt></Batch>

</FIXML>
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 31 of 73

1.1.2 The Entire Report Is Wrong — Delete

• There is no reportable activity for the account/contract on the reporting date

Only perform a delete action when the entire Position Report for an 

account/contract/reporting date was submitted in error i.e., there was no reportable activity.

In order to delete an erroneously submitted report, resubmit the entire previously submitted 

report, being sure to set the action code to indicate a “Delete” report. In FIXML set 

FIXML/Batch/PosRpt@Actn=“3”. Again, this is only used when the entire report is wrong. 
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 32 of 73

Submission Example 4: Existing FUT and OOF Position Reportsto be Delete

Delete Example:

<?xml version="1.0" encoding="UTF-8"?>

<!-- Existing FUT and OOF Position Reports to be Deleted. -->

<FIXML xmlns="http://www.fixprotocol.org/FIXML-5-0-SP2"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" v="FIX.5.0SP2"

xsi:schemaLocation="http://www.fixprotocol.org/FIXML-5-0-SP2 

file:///H:/My%20Documents/EP249/fixml-main-5-0-SP2.xsd">

<Batch TotMsg="2">

<Hdr MsgTyp="AP" SID="ZZZ" TID="CFTC" Snt="2017-03-02T09:30:47Z"/>

<!-- Futures -->

 <PosRpt RptID="1" BizDt="2017-02-13" Actn="1" >

 <Pty ID="ZZZ" Src="M" R="116"/>

 <Pty ID="100" Src="D" R="89"/>

 <Pty ID="100" Src="N" R="89"/>

<Instrmt ID="S" Src="H" MMY="201705" Exch="XCBT" 

 SecTyp="FUT"Sym="ABC"/>

 <Qty Typ="FIN" Long="10.0" Short="20.0"/>

 <Qty Typ="ES" Long="40.0" Short="30.0"/>

 <Qty Typ="EP" Long="50.0" Short="60.0"/>

 <Qty Typ="DN" Long="80.0" Short="70.0"/>

 <Qty Typ="TRF" Long="45.0" Short="35.0"/>

 </PosRpt>

 <!-- Options -->

 <PosRpt RptID="12" BizDt="2017-02-13" Actn="1" >

 <Pty ID="ZZZ" Src="M" R="116"/>

 <Pty ID="100" Src="D" R="89"/>

 <Pty ID="100" Src="N" R="89"/>

<Instrmt ID="S" Src="H" MMY="201705" StrkPx="3" PutCall="0" 

 Exch="XCBT"

 SecTyp="OOF"Sym="ABC"Issued="YYYY-MM-DD"CapPx="10" FlrPx="2" 

 ExerStyle="1"OptPayAmt="10"OptPayoutTyp="3"/>

 <Evnt EventTyp="25" Dt="YYYY-MM-DD"/>

 <CmplxEvnt Typ="3" Px="4"/> </Instrmt >

 <PosUnd><Undly ID="S" Src="H" MMY="201705"/></PosUnd>

<Qty Typ="FIN" Long="10.0" Short="20.0"/>

<Qty Typ="EO" Long="40.0" Short="30.0"/>

<Qty Typ="EXP" Long="40.0" Short="30.0"/>

<Qty Typ="EX" Long="50.0" Short="25.0"/>

<Qty Typ="TRF" Long="45.0" Short="35.0"/> 

 </PosRpt>

</Batch></FIXML>
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 33 of 73

Submission Example 5:Deleted Position Reports 

<?xml version="1.0" encoding="UTF-8"?>

<!-- Deleted Position Reports -->

<FIXML xmlns="http://www.fixprotocol.org/FIXML-5-0-SP2"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" v="FIX.5.0SP2"

xsi:schemaLocation="http://www.fixprotocol.org/FIXML-5-0-SP2 

file:///H:/My%20Documents/EP249/fixml-main-5-0-SP2.xsd">

<Batch TotMsg="2">

<Hdr MsgTyp="AP" SID="ZZZ" TID="CFTC" Snt="2017-03-02T09:30:47Z"/>

<!-- Futures -->

<PosRpt RptID="1" BizDt="2017-02-13" Actn="3">

 <Pty ID="ZZZ" Src="M" R="116"/>

 <Pty ID="100" Src="D" R="89"/>

 <Pty ID="100" Src="N" R="89"/>

 <Instrmt ID="S" Src="H" MMY="201705" Exch="XCBT"

SecTyp="FUT" 

 Sym="ABC"/>

<Qty Typ="FIN" Long="10.0" Short="20.0"/>

<Qty Typ="ES" Long="40.0" Short="30.0"/>

<Qty Typ="EP" Long="50.0" Short="60.0"/>

<Qty Typ="DN" Long="80.0" Short="70.0"/>

<Qty Typ="TRF" Long="45.0" Short="35.0"/>

</PosRpt>

<!-- Options -->

<PosRpt RptID="12" BizDt="2017-02-13" Actn="3">

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100" Src="D" R="89"/>

<Pty ID="100" Src="N" R="89"/>

<Instrmt ID="S" Src="H" MMY="201705" StrkPx="3" PutCall="0"

 

 Exch="XCBT" SecTyp="OOF" Sym="ABC" Issued="YYYY-MM-DD" CapPx="10" 

 FlrPx="2" ExerStyle="1" OptPayAmt="10" OptPayoutTyp="3"/>

 <Evnt EventTyp="25" Dt="YYYY-MM-DD"/>

 <CmplxEvnt Typ="3" Px="4" /> </Instrmt> 

<PosUnd><Undly ID="S" Src="H" MMY="201705"/></PosUnd>

<Qty Typ="FIN" Long="10.0" Short="20.0"/>

<Qty Typ="EO" Long="40.0" Short="30.0"/>

<Qty Typ="EXP" Long="40.0" Short="30.0"/>

<Qty Typ="EX" Long="50.0" Short="25.0"/>

<Qty Typ="TRF" Long="45.0" Short="35.0"/>

</PosRpt>

 

</Batch>

</FIXML>
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 34 of 73

Appendix A: SFTP Account Registration 

The compressed files will be submitted to the CFTC via Secure File Transfer Protocol (SFTP). Reporting 

markets with SFTP accounts can continue to use those accounts for this reporting requirement. New 

reporters who do not already have an SFTP account, must request a Secure FTP account from the CFTC. 

The following steps describe the process for that request.
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 35 of 73

Registration Step 1:

Users will browse to the Account Creation Page on the Commission’s website ( 

https://accountcreation.cftc.gov/CFTCAccount.aspx). Users will be presented with a CFTC Usage 

Agreement for review.

Users will be required to confirm that they have read the agreement and agree to abide by its terms by 

clicking the checkbox and pressing the “Agree” button.
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 36 of 73

Registration Step 2:

Users will be presented with the Account Creation page where they will be asked to supply:

(1) First Name – The first name of the user requesting the account

(2) Last Name – The last name (orsurname) of the user requesting the account

(3) Company Name – The company that will be supplying the data to the CFTC

(4) Email Address – The email address of the contact. The email address must be from the domain 

that will be submitting data, i.e. the reporting market’s domain. Third party email domains (e.g., 

Hotmail, Yahoo!, Gmail, etc.) will not be accepted.

(5) Contact Telephone Number – The requestor’s phone number, in case CFTC needs to confirm the 

user via a phone call.

(6) Contact FAX Number (not required).

Once the user has submitted the information, the request will be passed to the CFTC’s Office of Data 

and Technology for approval.
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 37 of 73

Registration Step 3:

Once the account creation is approved, the user will be sent an email with a link to confirm the 

request. This email will include the three-letter Alpha Code that must be used for all data submissions 

made by this company to the CFTC.

Clicking the link (or posting the URL into a browser) will bring users to the account confirmation screen 

where they will be asked to confirm the account creation request by typing in the three-letter Alpha 

Code supplied in the email.

Once the user has confirmed the Alpha Code, the page will tell them that their request has been 

submitted.

REQUEST ACCOUNT CREATION FOR DATA SUBMISSION TO THE CFTC
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 38 of 73

The CFTC will review your request and send you an email after your request has been processed.

Return to CFTC.gov
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 39 of 73

Registration Step 4:

The user will receive two emails from the CFTC. Each email will address guidelines for using the account. 

The first email will contain the user’s new ID. It will also contain instructions on converting a non-Secure 

FTP Account to a Secure FTP Account. All reporting markets that are providing Part 17 reporting must 

use Secure FTP to transmit data. The second email will contain the user’s new password for the FTP 

account.

Registration Step 5:

All reporting markets must exchange their Public Keys with the CFTC to activate their Secure FTP account.

Please send your Public Key to FTPSupport@cftc.gov as a text file attachment along with the account name 

from which the file will be transmitted. You will then receive the second email, which will contain your new

password for the FTP account.

File Transmission

Connect to the CFTC FTP site at traders.cftc.gov, and log in using your account and password. The 

compressed file can be transferred using normal FTP commands. Please do not change the directory. As 

soon as the file is placed on a CFTC server, the file will be moved to the correct directory for processing. 

You will not be able to see the file if you include a directory listing.
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 40 of 73

Upon file receipt, CFTC software will ingest the file hrough the CFTC firewall and begin processing of the

data.

Technical Support

Please forward questions regarding format, content, and transmission of Part 17 data submissions to the 

CFTC at Part17TechSupport@cftc.gov.
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 41 of 73

Appendix B: Data Validation Rules for Large Trader Position Report

(LTPOS)

The submitted data will pass through three levels of validations before being accepted into CFTC 

systems.

The first level of validation ensures that the file meets the basic needs of the FIXML Schema. The XML 

must be well formed, contain mandatory tags, and the format of certain fields must meet minimum 

standards for the file to pass through the schema validation. A file that fails schema validation will be 

rejected entirely and an automated email will be sent to the reporting party. No partial storage of the 

data can be achieved with a file that fails schema validation. Table B-1 describes the possible schema 

validation errors which could be encountered. Data reporters should resubmit the corrected file.

The second level of validation occurs immediately after the schema validation has successfully 

completed. These are referred to as primary data validations. These data validations check for 

consistency and completeness regarding the data that is being reported. For instance, certain fields are 

required for the reporting of options, and others are required for a futures contract. An automated 

email will be sent to the reporting party with a listing of all the errors. Table B-2 describes the possible 

data validation errors which can be encountered, and identifies the FIXML tag which is causing the 

error, as well as the field number in the data dictionary which describes how the value should be 

populated. Files which contain records that fail a data validation will be processed and stored with the 

exception of the records which had a failing condition. Data reporters should resend files containing just 

the failed records.

The third level of validation occurs when the submitted records are checked against the CFTC system of 

record. CFTC personnel may identify that certain values were incorrect and will contact you for 

clarification and correction of records.

 B-1: Schema Data Validation Rules for Large Trader Position Report (LTPOS)

Summary of Possible Schema Data Errors and Sample Error Messages.

Item Rule Type Rule Description FIXML Path

1. Required:

These fields are 

mandatory.

@RptID - Report ID 

@BizDt - Report Date

<Pty> – At least one Pty tag is required.

FIXML/Batch/PosRpt@RptID

FIXML/Batch/PosRpt@BizDt 

FIXML/Batch/PosRpt/Pty
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 42 of 73

2. Date or 

Datetime: 

These values 

must be valid 

date or time 

values.

@Snt - Message Transmit Datetime 

@BizDt - Report Date

@MatDt - Maturity Date 

@MatTm - Maturity Time

FIXML/Batch/Hdr@Snt 

FIXML/Batch/PosRpt@BizDt 

FIXML/Batch/PosRpt/Instrmt@MatDt 

FIXML/Batch/PosRpt/Instrmt@MatTm

3. Numeric or 

decimal(10): 

These fields 

must be 

numeric or 

decimal values.

@TotMsg - Total Message Count 

@StrkPx - Strike Price

Qty@Long - Position Long 

Qty@Short - Position Short

FIXML/Batch@TotMsg 

FIXML/Batch/PosRpt/Instrmt@StrkPx 

FIXML/Batch/PosRpt/Qty@Long 

FIXML/Batch/PosRpt/Qty@Short

4. Other 

Miscelaneous: 

These fields 

must follow the 

format as 

described in the 

Data Dictionary.

@MMY - Maturity Month Year 

Undly@MMY - Underlying Maturity Month 

Year

@Actn - Record Type (Action) 

@PutCall - Put or Call Indicator 

Qty@Typ - Type of position reported.

FIXML/Batch/PosRpt/Instrmt@MMY 

FIXML/Batch/PosRpt/PosUnd/Undly@M 

MY

FIXML/Batch/PosRpt@Actn 

FIXML/Batch/PosRpt/Instrmt@PutCall 

FIXML/Batch/PosRpt/Qty@Typ

5. Mis-Spellings or 

incomplete 

XML.

The attribute is not declared. This is a mis-spelled attribute or missing 

tag.

Below are examples of some of the schema errors verified and a sample message from each:
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 43 of 73
Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Page 44 of 73
Page 45 of 74

Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

B-2: Primary Data Validation Rules for Large Trader Position Report (LTPOS)

The DD Lnk column is a reference to the Item Number in the Data Dictionary. The FIXML conditions that the @MsgTyp must be “AP” apply to all data elements. The data will be checked for the following:

Item Rule 

Description

Valid Values Error Message FIXML Path FIXML Condition DD Lnk

1 Positions 

Report Header 

Required Fields.

N/A The header must contain the 

following fields: @TotMsg - Total 

Message Count

@MsgTyp - FIXML Message 

Type @SID - Sender ID

@TID - To ID

@Snt - Message Transmit 

Datetime

FIXML/Batch@TotMsg

FIXML/Batch/Hdr@MsgTyp 

FIXML/Batch/Hdr@SID 

FIXML/Batch/Hdr@TID 

FIXML/Batch/Hdr@Snt

Item 1

Item 2

Item 3

Item 4

Item 5

2 The Header 

field length does 

not conform to 

max allowed 

length.

N/A The Header field length does 

not conform to max allowed 

length.

@TotMsg -Total Message Count 

(Length: 19) 

@SID - Sender ID (Length: 20)

FIXML/Batch@TotMsg 

FIXML/Batch/Hdr@SID

Item 1

Item 3
Page 46 of 74

Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Item Rule 

Description

Valid Values Error Message FIXML Path FIXML Condition DD Lnk

3 End-of-Day 

Options 

Positions 

Report 

Required Fields.

N/A If the instrument is an option, 

then the following fields must be 

provided:

@RptID - Report ID

@Actn - Record Type (Action) 

@BizDt - Report Date 

(Pty@ID, @Src=M, @R=116) - 

Reporting Firm ID 

(Pty@ID, @Src=D, @R=89) - 

Account ID

(Instrmt@ID, Instrmt@Src) - 

Commodity ID 

@MMY - Maturity Month Year

@StrkPx - Strike Level 

@PutCall - Put or Call Indicator 

([0=Put | 1=Call])

@Exch - Security Exchange 

Indicator

Qty@Typ – Type of Contract 

Defined (Both @Long and 

@Short must be defined for any 

Contract Type defined.There 

must be at least one contract 

type reported.)

Qty@Long - Position Long 

Qty@Short - Position Short

FIXML/Batch/PosRpt@RptID

FIXML/Batch/PosRpt@Actn 

FIXML/Batch/PosRpt@BizDt 

FIXML/Batch/PosRpt/Pty (@ID, @Src=M, 

@R=116)

FIXML/Batch/PosRpt/Pty (@ID, @Src=D, 

@R=89)

FIXML/Batch/PosRpt/Instrmt@ID 

FIXML/Batch/PosRpt/Instrmt@Src 

FIXML/Batch/PosRpt/Instrmt@MMY 

FIXML/Batch/PosRpt/Instrmt@StrkPx

FIXML/Batch/PosRpt/Instrmt@PutCall 

FIXML/Batch/PosRpt/Instrmt@Exch

FIXML/Batch/PosRpt/Qty@Typ=[FIN, TOT, 

EO]

FIXML/Batch/PosRpt/Qty@Long 

FIXML/Batch/PosRpt/Qty@Short

FIXML/Batch/PosRpt/Instrmt@PutCall 

exists

Item 6

Item 7

Item 8

Item 10

Item 11

Item 13

Item 16

Item 20

Item 26

Item 12

FIN = Items 

32, 33 

TOT= Items 

34,35 

EO= Items 

40,41
Page 47 of 74

Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Item Rule 

Description

Valid Values Error Message FIXML Path FIXML Condition DD Lnk

4 End-of-Day 

Futures 

Positions 

Report 

Required Fields.

N/A If the instrument is a future, 

then the following fields must be 

provided:

@RptID - Report ID

@Actn - Record Type (Action) 

@BizDt - Report Date 

(Pty@ID, @Src=M, @R=116) - 

Reporting Firm ID

(Pty@ID, @Src=D, @R=89) - 

Account ID

(Instrmt@ID, Instrmt@Src) - 

Commodity ID

@MMY - Maturity Month Year 

@Exch - Security Exchange 

Indicator

Qty@Typ – Type of Contract 

Defined (Both Long and Short 

must be defined for any Contract 

Type defined.)

Qty@Long - Position Long 

Qty@Short - Position Short

FIXML/Batch/PosRpt@RptID 

FIXML/Batch/PosRpt@Actn 

FIXML/Batch/PosRpt@BizDt 

FIXML/Batch/PosRpt/Pty (@ID, @Src=M, 

@R=116)

FIXML/Batch/PosRpt/Pty (@ID, @Src=D, 

@R=89)

FIXML/Batch/PosRpt/Instrmt@ID 

FIXML/Batch/PosRpt/Instrmt@Src 

FIXML/Batch/PosRpt/Instrmt@MMY 

FIXML/Batch/PosRpt/Instrmt@Exch

FIXML/Batch/PosRpt/Qty@Typ=[FIN, TOT, 

EP, ES, DN]

FIXML/Batch/PosRpt/Qty@Long 

FIXML/Batch/PosRpt/Qty@Short

FIXML/Batch/PosRpt/I 

nstrmt@PutCall does not exist.

Item 6

Item 7

Item 8

Item 10

Item 11

Item 13

Item 16

Item 12

FIN =

Items 32, 33 

TOT=Items 

34,35 

EP=Items 

26,27

ES=Items 38, 

39 

DN=Items 

42,43
Page 48 of 74

Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Item Rule 

Description

Valid Values Error Message FIXML Path FIXML Condition DD Lnk

5 The Instrument 

field length does 

not conform to 

max allowed 

length.

N/A The Instrument field length 

does not conform to max allowed 

length.

@RptID - Report ID (Length: 30) 

Pty@ID - Reporting Firm ID 

(Length: 3)

Pty@ID - Account ID (Length: 

20)

Instrmt@ID - Commodity ID 

(Length: 20)

@StrkPx - Strike Level (Length: 

19)

@PutCall - Put or Call Indicator 

(Length: 1)

Instrmt@Exch - Security 

Exchange Indicator (Length: 4)

@Long - Position Long (Length: 

10) (non-negative value)

@Short - Position Short (Length: 

10) (non-negative value)

Pty@ID - Member LEI (Length: 

20

FIXML/Batch/PosRpt@RptID 

FIXML/Batch/PosRpt/Pty@ID (@Src=M 

and @R=116)

FIXML/Batch/PosRpt/Pty@ID (@Src=D and 

@R=89)

FIXML/Batch/PosRpt/Instrmt@ID

FIXML/Batch/PosRpt/Instrmt@StrkPx 

FIXML/Batch/PosRpt/Instrmt@PutCall 

FIXML/Batch/PosRpt/Instrmt@Exch

FIXML/Batch/PosRpt/Qty@Long

FIXML/Batch/PosRpt/Qty@Short

FIXML/Batch/PosRpt/Pty@ID (@Src=N and 

@R=89)

Item 6

Item 10

Item 11

Item 13

Item 20

Item 15

Item 26

Items 32 -44)

Item 10

6 Unrecognized 

Quantity 

Position Type 

reported for 

options.

Only FIN, TOT, 

and EO can be 

reported for 

options.

For the Large Trader Position 

Report, only End of Day (FIN) 

and Exchanges for Options (EO) 

positions can be reported for 

Options.

At most one Instance of each 

Quantity Type. 

Qty@Typ = "FIN" - End of Day 

Position Long and Short

Qty@Typ = "TOT" – Contracts 

Bought and Sold 

Qty@Typ = "EO" - Exchanges for 

Options Bought and Sold

FIXML/Batch/PosRpt/Qty@Typ FIXML/Batch/PosRpt/I 

nstrmt@PutCall exists, 

FIXML/Batch/PosRpt/ Qty@Typ='not 

null'

FIN = Items 

32, 33 

TOT = Items 

34, 35 

EO = Items 

40, 41
Page 49 of 74

Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Item Rule 

Description

Valid Values Error Message FIXML Path FIXML Condition DD Lnk

7 Unrecognized 

Quantity 

Position Type 

reported for 

futures.

Only FIN, TOT, 

EP, ES,

and DN can be 

reported for 

futures.

For the Large Trader Position 

Report, only End of Day (FIN), 

Exchanges for Physicals (EP), 

Exchanges for Swaps (ES), and 

Delivery notices (DN) can be 

reported for futures.

At most one Instance of each 

Quantity Type. 

Qty@Typ = "FIN" - End of Day 

Position Long and Short

Qty@Typ = "TOT" – Contracts 

Bought and Sold 

Qty@Typ = "EP" - Exchanges for 

Physicals Bought and Sold

Qty@Typ = "ES" - Exchanges for 

Swaps Bought and Sold

Qty@Typ = "DN" - Delivery 

notices Issued and Stopped

FIXML/Batch/PosRpt/Qty@Typ FIXML/Batch/PosRpt/I

nstrmt@PutCall does not exist, 

FIXML/Batch/PosRpt/ Qty@Typ='not 

null'

FIN = Items 

32, 33 

TOT = Items 

34, 35 

EP = Items 

36, 37 

ES = Items 

38, 39 

DN = Items 

42, 43

8 The Underlying 

field length does 

not conform to 

max allowed 

length.

N/A The Underlying field length does 

not conform to max allowed 

length.

Undly@ID - Underlying Contract 

(Length:20)

FIXML/Batch/PosRpt/PosUnd/Undly@ID Item 8
Page 50 of 74

Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Item Rule 

Description

Valid Values Error Message FIXML Path FIXML Condition DD Lnk

9 The 

combination of 

reference key 

and action 

should be 

unique for 

options.

N/A There are multiple records with 

the same reference keys and 

action. This can happen when 

records are not aggregated. The 

combination of the following 

Large Trader Position Report 

options field's values used for the 

data reference id and requested 

Action are not distinct in each 

record. 

@Actn - Action 

@BizDt - Report Date

(Pty@ID, @Src=M, @R=116) - 

Reporting Firm ID 

(Pty@ID, @Src=D, @R=89) - 

Account ID

Instrmt@ID - Commodity ID

@MMY - Maturity Month Year 

@StrkPx - Strike Price

@Exch - Security Exchange 

Indicator @PutCall - Put or Call 

Indicator

FIXML/Batch/PosRpt@Actn

The FIXML reference id fields used are listed 

in Sec. 3.9.1, Large Trader FIXML 

Reference ID.

FIXML/Batch/PosRpt/I 

nstrmt@PutCall exists
Page 51 of 74

Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Item Rule 

Description

Valid Values Error Message FIXML Path FIXML Condition DD Lnk

10 The 

combination of 

reference key 

and action 

should be 

unique for 

futures.

N/A There are multiple records with 

the same reference keys and 

action. This can happen when 

records are not aggregated. The 

combination of the following 

Large Trader Position Report 

field's futures values used for the 

data reference id and requested 

Action are not distinct in each 

record. 

@Actn - Action. 

@BizDt - Report Date

(Pty@ID, @Src=M, @R=116) - 

Reporting Firm ID 

(Pty@ID, @Src=D, @R=89) - 

Account ID 

Instrmt@ID - Commodity ID

@MMY - Maturity Month Year 

@Exch - Security Exchange 

Indicator

FIXML/Batch/PosRpt@Actn

The FIXML reference id fields used are listed 

in Sec. 3.9.1, Large Trader FIXML 

Reference ID.

FIXML/Batch/PosRpt/I 

nstrmt@PutCall does not exist

11 The Total 

Message Count 

must equal 

number of 

messages 

loaded.

N/A The Total Message Count does 

not equal the number of records 

loaded.

@TotMsg - Total Message Count

FIXML/Batch@TotMsg Item 1

12 Report Date 

Has Not Arrived

N/A The Report Date is either:

1. After the current date OR

2. Equal to the current date but 

received before 2:00PM.

@BizDt - Report Date

FIXML/Batch/PosRpt@BizDt Item 8

13 Report Date Is 

Too Old

N/A Report Date cannot be more than 

60 days before the current date.

@BizDt - Report Date

FIXML/Batch/PosRpt@BizDt Item 8
Page 52 of 74

Commodity Futures Trading Commission

Division of Data

Guidebook for Part 17

Item Rule 

Description

Valid Values Error Message FIXML Path FIXML Condition DD Lnk

14 Account 

Number Not 

Recognized

Alphanumeric The Account Number must be an 

alphanumeric field. 

Pty@ID=[Form 102 Large trader 

Identifier]

When 

Pty@Src=D 

Pty@R=89

FIXML/Batch/PosRpt/Pty@ID=[Form 102 

Large trader Identifier] 

FIXML/Batch/PosRpt/Pty@Src=D 

(Proprietary/Custom) 

FIXML/Batch/PosRpt/Pty@R=89 (Large 

Position Reporting Account)

Item 11

15 Options 

Underlying 

Futures Maturity 

Month Year 

incorrectly 

formed.

The Underlying Futures Maturity 

Month Year for an option was 

incorrectly formed.

Undly@MMY - Underlying 

Maturity Month Year

FIXML/Batch/PosRpt/PosUnd/Undly@MMY FIXML/Batch/PosRpt/I 

nstrmt@PutCall exists

Item 26

16 Futures Position 

Already Exists

N/A The futures New request cannot 

be processed because a 

matching position already exists 

for the futures position.

The FIXML fields used are listed in Sec. 

3.9.1, Large Trader FIXML Reference ID.

FIXML/Batch/PosRpt/I 

nstrmt@PutCall does not exist

17 Options Position 

Already Exists

N/A The options New request cannot 

be processed because a 

matching position already exists 

for the options position.

The FIXML fields used are listed in Sec. 

3.9.1, Large Trader FIXML Reference ID.

FIXML/Batch/PosRpt/I 

nstrmt@PutCall exists

18 No Matching 

Futures Position 

Found

N/A The Change/Delete request 

cannot be processed because no 

matching Futures position was 

found.

The FIXML fields used are listed in Sec. 

3.9.1, Large Trader FIXML Reference ID.

FIXML/Batch/PosRpt/I 

nstrmt@PutCall does not exist

19 No Matching 

Options Position 

Found

N/A The Change/Delete request 

cannot be processed because no 

matching options position was 

found.

The FIXML fields used are listed in Sec. 

3.9.1, Large Trader FIXML Reference ID.

FIXML/Batch/PosRpt/I 

nstrmt@PutCall exists

20 Same Exact 

Record Already 

Exists

N/A There currently exists an exact 

match of record.

N/A
Commodity Futures Trading Commission

Guidebook for Part 17

Division of Data

Page 53 of 74

Appendix C: Annotated Examples and Working Samples

C-1: Large Trader

C-1-1 : FIXML Position Report With Explanatory Annotations(former 80-byte RP/EP/DN records):

<?xml version="1.0" encoding="UTF-8"?>

<FIXML xmlns="http://www.fixprotocol.org/FIXML-5-0-SP2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

xsi:schemaLocation="http://www.fixprotocol.org/FIXML-5-0-SP2 file:///H:/My%20Documents/EP249/fixml-main-5-0-SP2.xsd">

<Batch TotMsg="1">

<!-- Message Header Information

@MsgTyp = [FIXML Message Type] (AP =Position Report)

@SID = [CFTC Reporting Firm Identitifier | Servicing Firm Identifier]( Use CFTC-issued Reporting ID. The Servicing firm identifier is provided 

when reporting on-behalf-of the exchange)

@TID = [To ID = ‘CFTC’]

@Snt = [Message Transmit Datetime] (format is [Date]+"T"+[Time]+[TZ Offset]; YYYY-MM-DDThh:mm:ss[+|-]hh:mm)-->

<Hdr MsgTyp="AP" SID="[CFTC-Issued Reporting ID or name of servicing firm]" TID="CFTC" Snt="2012-09-14T09:30:47-06:00"/>

<!-- Position Information 

@RptID = [Report Identifier]

@BizDt = [Report Date] (format is YYYY-MM-DD)

@Actn = [1 = Add | 2 = Change | 3 = Delete]-->

<PosRpt RptID="0" BizDt="2012-09-13" Actn="1">

<!-- Large Trader Information

@ID = [Large Trader Identifier] (Use CFTC-issued code.) 

@Src = M (M=CFTC-Issued Identifier)

@R = 116 (116 = Reporting Entity) -->

<Pty ID="[Use CFTC-issued identifier]" Src="M" R="116"/>

<!-- Position Account Information 

@ID = [Position Account Identifier]

@Src = D (D = Proprietary or custom identifier)

@R = 89 (89 = Larger Position Reporting Account)-->

<Pty ID="[ Position Account Identifier]" Src="D" R="89"/>
Commodity Futures Trading Commission

Guidebook for Part 17

Division of Data

Page 54 of 74

<!-- Large Trader LEI 

@ID = [Large Trader LEI]

@Src = N (N = Legal entity identifier)

@R = 89 (89 = Large Position Reporting Account)-->

<Pty ID="[Large Trader LEI]" Src="N" R="89"/>

<!-- Contract Information 

@ID = [Commodity ID]

@Src = H (1 = CUSIP, 2 = SEDOL, 3 = QUIK, 4 = ISIN number, 5 = RIC code, 6 = ISO Currency Code, 7 = ISO Country Code,

8 = Exchange Symbol, 9 = Consolidated Tape Association (CTA) Symbol (SIAC CTS/CQS line format), A = Bloomberg 

Symbol, B = Wertpapier, C = Dutch, D = Valoren, E = Sicovam, F = Belgian, G = Common (Clearstream and Euroclear), 

H = Clearing House / Clearing Organization, I = ISDA/FpML Prod XML, J = Option Price Reporting Authority,

K = ISDA/FpML Prod URL, L = Letter of Credit, M = Marketplace-assigned Identifier) 

@MMY = [Maturity Month/Year](futures delivery year and month or options expiration year and month)

formats YYYYMM for month, YYYYMMDD for day, YYYYMMwN for week. A 

specific date

or can be appended to the MaturityMonthYear. For instance, if multiple standard products exist that mature in the same 

Year and Month, but actually mature at a different time, a value can be appended, such as "w" or "w2" to indicate week 

as opposed to week 2 expiration. Likewise, the date (0-3) can be appended to indicate a specific expiration (maturity 

date).

@StrkPx = [Strike Price] (for options only, format decimal number, e.g., 0.0000000000; ) 

@PutCall = [Put or Call Indicator] (0 = Put, 1 = Call; only used for Options)

@Exch = [Security Exchange Indicator] ) -->

<Instrmt ID="String" Src="H" MMY="201210" StrkPx="0.0000000000" PutCall="0" Exch="[Use ISO code.]"/>

<!-- Underlying Position Information -->

<PosUnd>

<!-- Underlying Contract Information

@ID = [Underlying Contract = Cleared Product ID]

@Src = H (1 = CUSIP, 2 = SEDOL, 3 = QUIK, 4 = ISIN number, 5 = RIC code, 6 = ISO Currency Code, 7 = ISO Country Code,

8 = Exchange Symbol, 9 = Consolidated Tape Association (CTA) Symbol (SIAC CTS/CQS line format), A = Bloomberg 

Symbol, B = Wertpapier, C = Dutch, D = Valoren, E = Sicovam, F = Belgian, G = Common (Clearstream and Euroclear), 

H = Clearing House / Clearing Organization, I = ISDA/FpML Prod XML, J = Option Price Reporting Authority,

K = ISDA/FpML Prod URL, L = Letter of Credit, M = Marketplace-assigned Identifier)

@MMY = [Underlying Maturity Month/Year]. (formats YYYYMM for month, YYYYMMDD for day, YYYYMMwN for week.) A specific

date or can be appended to the MaturityMonthYear. For instance, if multiple standard products exist that mature in 

the same Year and Month, but actually mature at a different time, a value can be appended, such as "w" or "w2" to 
Commodity Futures Trading Commission

Guidebook for Part 17

Division of Data

Page 55 of 74

indicate week as opposed to week 2 expiration. Likewise, the date (0-3) can be appended to indicate a specific 

expiration (maturity date). -->

<Undly ID="String" Src="H" MMY="201210"/>

</PosUnd>

<!--Total Open Contracts Carried Information 

@Typ = FIN (FIN = Final Quantity)

@Long = [Total Long Open Contracts] (format decimal number, e.g., 0.0000000000)

@Short = [Total Short Open Contracts] (format decimal number, e.g., 0.0000000000)-->

<Qty Typ="FIN" Long="0.0000000000" Short="0.0000000000"/>

<!--Total Bought Sold Information 

@Typ =TOT (TOT = Total Bought Sold)

@Long = [Total Long Contracts Bought] (format decimal number, e.g., 0.0000000000)

@Short = [Total Short Contracts Sold] (format decimal number, e.g., 0.0000000000)-->

<Qty Typ="TOT" Long="572.0000000000" Short="802.0000000000"/>

<!--Total Contracts Exchanged for Cash Futures Information 

@Typ = EP (EP = Exchanged for Physical)

@Long = [Total EP Contracts Bought] (format decimal number, e.g., 0.0000000000) 

@Short = [Total EP Contracts Sold] (format decimal number, e.g., 0.0000000000)-->

<Qty Typ="EP" Long="0.0000000000" Short="0.0000000000"/>

<!--Total Contracts Exchanged Swaps Information 

@Typ = ES (ES = Exchanged for Swaps)

@Long = [Total ES Contracts Bought] (format decimal number, e.g., 0.0000000000) 

@Short = [Total ES Contracts Sold] (format decimal number, e.g., 0.0000000000)-->

<Qty Typ="ES" Long="0.0000000000" Short="0.0000000000"/>

<!--Total Contracts Exchanged Options Information 

@Typ = EO (EO = Exchanged for Options)

@Long = [Total EO Contracts Bought] (format decimal number, e.g., 0.0000000000) 

@Short = [Total EO Contracts Sold] (format decimal number, e.g., 0.0000000000)-->

<Qty Typ="EO" Long="0.0000000000" Short="0.0000000000"/>

<!--Total Contracts with Delivery Notices Issued or Stopped Information 

@Typ = DN (DN = Delivery Notice)

@Long = [Total DN Stopped Contracts] (format decimal number, e.g., 0.0000000000)

@Short = [Total DN Stopped Issued Contracts] (format decimal number, e.g., 0.0000000000)-->

<Qty Typ="DN" Long="0.0000000000" Short="0.0000000000"/>

</PosRpt>

</Batch></FIXML>
Commodity Futures Trading Commission

Guidebook for Part 17

Division of Data

Page 56 of 74

C-1-2 : Example Large Trader Position Report (LTPOS)

Message 

Container 

Open

<?xml version="1.0" encoding="UTF-8"?>

<!--Sample XML file generated by XMLSpy v2014 rel. 2 sp1 (x64) (http://www.altova.com)-->

<FIXML xmlns="http://www.fixprotocol.org/FIXML-5-0-SP2" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" v="FIX.5.0SP2" r="String" xv="0" cv="String" xr="String" s="2014-05-07" 

xsi:schemaLocation="http://www.fixprotocol.org/FIXML-5-0-SP2 file:///H:/My%20Documents/EP249/fixml-main-5- 0-

SP2.xsd">

<Batch TotMsg="17">

Header <Hdr MsgTyp="AP" SID="ZZZ" TID="CFTC" Snt="2016-03-02T09:30:47Z"/>

Futures 

Positions

<PosRpt RptID="1" BizDt="2017-02-13" Actn="1" >

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100" Src="D" R="89"/>

<Pty ID="100" Src="N" R="89"/>

<Instrmt ID="S" Src="H" MMY="201705" Exch="XCBT" SecTyp="FUT" Sym="ABC"/>

<Qty Typ="FIN" Long="10.0" Short="20.0"/>

<Qty Typ="TOT" Long="10.0" Short="20.0"/>

<Qty Typ="ES" Long="40.0" Short="30.0"/>

<Qty Typ="EP" Long="50.0" Short="60.0"/>

<Qty Typ="DN" Long="80.0" Short="70.0"/>

 <Qty Typ="TRF" Long="45.0" Short="35.0"/>

</PosRpt>

<PosRpt RptID="2" BizDt="2017-02-13" Actn="1" >

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100" Src="D" R="89"/>

<Pty ID="100" Src="N" R="89"/>

<Instrmt ID="S" Src="H" MMY="201705" Exch="XCBT" SecTyp="FUT" Sym="ABC"/>

<Qty Typ="FIN" Long="10.0" Short="20.0"/>

<Qty Typ="TOT" Long="10.0" Short="20.0"/>

 <Qty Typ="TRF" Long="45.0" Short="35.0"/></PosRpt> 
Commodity Futures Trading Commission

Guidebook for Part 17

Division of Data

Page 57 of 74

<PosRpt RptID="3" BizDt="2017-02-13" Actn="1" >

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100" Src="D" R="89"/>

<Pty ID="100" Src="N" R="89"/>

<Instrmt ID="S" Src="H" MMY="201705" Exch="XCBT" SecTyp="FUT" Sym="ABC"/>

<Qty Typ="TOT" Long="10.0" Short="20.0"/>

<Qty Typ="ES" Long="40.0" Short="30.0"/>

</PosRpt>

<PosRpt RptID="4" BizDt="2017-02-13" Actn="1" >

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100" Src="D" R="89"/>

<Pty ID="100" Src="N" R="89"/>

<Instrmt ID="S" Src="H" MMY="201705" Exch="XCBT" SecTyp="FUT" Sym="ABC"/>

<Qty Typ="TOT" Long="10.0" Short="20.0"/>

<Qty Typ="EP" Long="50.0" Short="60.0"/>

</PosRpt>

<PosRpt RptID="5" BizDt="2017-02-13" Actn="1" >

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100" Src="D" R="89"/>

<Pty ID="100" Src="N" R="89"/>

<Instrmt ID="S" Src="H" MMY="201705" Exch="XCBT" SecTyp="FUT" Sym="ABC"/>

<Qty Typ="DN" Long="80.0" Short="70.0"/>

</PosRpt>

<PosRpt RptID="6" BizDt="2017-02-13" Actn="1" >

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100" Src="D" R="89"/>

<Pty ID="100" Src="N" R="89"/>

<Instrmt ID="S" Src="H" MMY="201705" Exch="XCBT" SecTyp="FUT" Sym="ABC"/>

<Qty Typ="TOT" Long="10.0" Short="20.0"/>

<Qty Typ="FIN" Long="10.0" Short="20.0"/>

<Qty Typ="ES" Long="40.0" Short="30.0"/>
Commodity Futures Trading Commission

Guidebook for Part 17

Division of Data

Page 58 of 74

</PosRpt>

<PosRpt RptID="7" BizDt="2017-02-13" Actn="1" >

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100" Src="D" R="89"/>

<Pty ID="100" Src="N" R="89"/>

<Instrmt ID="S" Src="H" MMY="201705" Exch="XCBT" SecTyp=”FUT” Sym=”ABC”/>

<Qty Typ="TOT" Long="10.0" Short="20.0"/>

<Qty Typ="FIN" Long="10.0" Short="20.0"/>

<Qty Typ="EP" Long="50.0" Short="60.0"/>

</PosRpt>

<PosRpt RptID="8" BizDt="2017-02-13" Actn="1" >

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100" Src="D" R="89"/>

<Pty ID="100" Src="N" R="89"/>

<Instrmt ID="S" Src="H" MMY="201705" Exch="XCBT" SecTyp=”FUT” Sym=”ABC”/>

<Qty Typ="TOT" Long="10.0" Short="20.0"/>

<Qty Typ="FIN" Long="10.0" Short="20.0"/>

<Qty Typ="DN" Long="80.0" Short="70.0"/>

</PosRpt>

<PosRpt RptID="9" BizDt="2017-02-13" Actn="1" >

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100" Src="D" R="89"/>

<Pty ID="100" Src="N" R="89"/>

<Instrmt ID="S" Src="H" MMY="201705" Exch="XCBT" SecTyp=”FUT” Sym=”ABC”/>

<Qty Typ="TOT" Long="10.0" Short="20.0"/>

<Qty Typ="ES" Long="40.0" Short="30.0"/>

<Qty Typ="EP" Long="50.0" Short="60.0"/>

</PosRpt>

<PosRpt RptID="10" BizDt="2017-02-13" Actn="1" >

<Pty ID="ZZZ" Src="M" R="116"/>
Commodity Futures Trading Commission

Guidebook for Part 17

Division of Data

Page 59 of 74

<Pty ID="100" Src="D" R="89"/>

<Pty ID="100" Src="N" R="89"/>

<Instrmt ID="S" Src="H" MMY="201705" Exch="XCBT" SecTyp=”FUT” Sym=”ABC”/>

<Qty Typ="TOT" Long="10.0" Short="20.0"/>

<Qty Typ="ES" Long="40.0" Short="30.0"/>

<Qty Typ="DN" Long="80.0" Short="70.0"/>

</PosRpt>

<PosRpt RptID="11" BizDt="2017-02-13" Actn="1" >

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100" Src="D" R="89"/>

<Pty ID="100" Src="N" R="89"/>

<Instrmt ID="S" Src="H" MMY="201705" Exch="XCBT" SecTyp=”FUT” Sym=”ABC”/>

<Qty Typ="TOT" Long="10.0" Short="20.0"/>

<Qty Typ="EP" Long="50.0" Short="60.0"/>

<Qty Typ="DN" Long="80.0" Short="70.0"/>

</PosRpt>
Commodity Futures Trading Commission

Guidebook for Part 17

Division of Data

Page 60 of 74

Option on 

Futures

or other 

Derivative 

Contract 

Positions

<PosRpt RptID="12" BizDt="2017-02-13" Actn="1" >

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100" Src="D" R="89"/>

<Pty ID="100" Src="N" R="89"/>

<Instrmt ID="S" Src="H" MMY="201705" StrkPx="3" PutCall="0" Exch="XCBT" SecTyp=”OOF” Sym=”ABC”

Issued=”YYYY-MM-DD” CapPx="10" FlrPx="2" ExerStyle=”1” OptPayAmt=”10” OptPayoutTyp=”3” />

<Evnt EventTyp="25" Dt="YYYY-MM-DD"/>

<CmplxEvnt Typ="3" Px=”4” />

</Instrmt>

 <PosUnd>

<Undly ID="S" Src="H" MMY="201705"/>

</PosUnd>

<Qty Typ="TOT" Long="10.0" Short="20.0"/>

<Qty Typ="FIN" Long="10.0" Short="20.0"/>

<Qty Typ="EO" Long="40.0" Short="30.0"/>

<Qty Typ="EXP" Long="40.0" Short="30.0"/>

<Qty Typ="EX" Long="50.0" Short="25.0"/>

<Qty Typ="TRF" Long="45.0" Short="35.0"/>

</PosRpt

<PosRpt RptID="13" BizDt="2017-02-13" Actn="1" >

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100" Src="D" R="89"/>

<Pty ID="100" Src="N" R="89"/>

<Instrmt ID="S" Src="H" MMY="201705" StrkPx="3" PutCall="0" Exch="XCBT" SecTyp=”OOF” Sym=”ABC”

Issued=”YYYY-MM-DD” CapPx="10" FlrPx="2" ExerStyle=”1” OptPayAmt=”10” OptPayoutTyp=”3” />

<Evnt EventTyp="25" Dt="YYYY-MM-DD"/>

<CmplxEvnt Typ="3" Px=”4” />

</Instrmt>

<PosUnd>

<Undly ID="S" Src="H" MMY="201705"/>

</PosUnd>

<Qty Typ="FIN" Long="10.0" Short="20.0"/>
Commodity Futures Trading Commission

Guidebook for Part 17

Division of Data

Page 61 of 74

</PosRpt>

<PosRpt RptID="14" BizDt="2017-02-13" Actn="1" >

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100" Src="D" R="89"/>

<Pty ID="100" Src="N" R="89"/>

<Instrmt Sym="OZS" ID="S" Src="H" MMY="201705" StrkPx="3" PutCall="0" Exch="XCBT" SecTyp=”OOF” 

Sym=”ABC” Issued=”YYYY-MM-DD” CapPx="10" FlrPx="2" ExerStyle=”1” OptPayAmt=”10” OptPayoutTyp=”3” />

<Evnt EventTyp="25" Dt="YYYY-MM-DD"/>

<CmplxEvnt Typ="3" Px=”4” />

</Instrmt>

<PosUnd>

<Undly ID="S" Src="H" MMY="201705"/>

</PosUnd>

<Qty Typ="TOT" Long="10.0" Short="20.0"/>

<Qty Typ="EO" Long="40.0" Short="30.0"/>
Commodity Futures Trading Commission

Guidebook for Part 17

Division of Data

Page 62 of 74

</PosRpt>

<PosRpt RptID="15" BizDt="2017-02-13" Actn="1" >

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100" Src="D" R="89"/>

<Pty ID="100" Src="N" R="89"/>

<Instrmt ID="31" Src="H" MMY="201705" StrkPx="0.52" PutCall="0" Exch="XCBT" SecTyp=”OOF” 

Sym=”ABC” Issued=”YYYY-MM-DD” CapPx="10" FlrPx="2" ExerStyle=”1” OptPayAmt=”10” OptPayoutTyp=”3” 

/>

 <Evnt EventTyp="25" Dt="YYYY-MM-DD"/>

 <CmplxEvnt Typ="3" Px=”4” />

 </Instrmt>

 <PosUnd>

<Undly ID="31" Src="H" MMY="201705"/>

</PosUnd>

<Qty Typ="FIN" Long="10.0" Short="20.0"/>

<Qty Typ="TOT" Long="10.0" Short="20.0"/>

</PosRpt>

<PosRpt RptID="16" BizDt="2017-02-13" Actn="1" >

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100" Src="D" R="89"/>

<Pty ID="100" Src="N" R="89"/>

<Instrmt ID="31" Src="H" MMY="201705" StrkPx="0.52" PutCall="0" Exch="XCBT" SecTyp=”OOF” 

Sym=”ABC” Issued=”YYYY-MM-DD” CapPx="10" FlrPx="2" ExerStyle=”1” OptPayAmt=”10” OptPayoutTyp=”3” 

/>

<Evnt EventTyp="25" Dt="YYYY-MM-DD"/>

<CmplxEvnt Typ="3" Px=”4” />

</Instrmt>

<PosUnd>

<Undly ID="31" Src="H" MMY="201705"/>

</PosUnd>

<Qty Typ="FIN" Long="10.0" Short="20.0"/>

<Qty Typ="TOT" Long="10.0" Short="20.0"/>
Commodity Futures Trading Commission

Guidebook for Part 17

Division of Data

Page 63 of 74

<Qty Typ="EO" Long="40.0" Short="30.0"/>

</PosRpt>

<PosRpt RptID="17" BizDt="2017-02-13" Actn="1" >

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100" Src="D" R="89"/>

<Pty ID="100" Src="N" R="89"/>

<Instrmt ID="31" Src="H" MMY="201705" StrkPx="0.52" PutCall="0" Exch="XCBT"/>

<PosUnd>

<Undly ID="31" Src="H" MMY="201705"/>

</PosUnd>

 </PosRpt>
Commodity Futures Trading Commission

Guidebook for Part 17

Division of Data

Page 64 of 74

Message 

Container 

Close

</Batch>

</FIXML>
Commodity Futures Trading Commission

Guidebook for Part 17

Division of Data

Page 65 of 74

Appendix D: 80-Byte Format Comparison to FIXML

These sample reports portray end-of-day positions, exchange for physicals and delivery notices reported by a large trader, ZZZ, at close of business on 3 March 

2016 for two accounts with June 2016 Soybean Futures and September 2016 Soybean Option on Futures positions using CME as the exchange.

Sample Data in 80-Byte Format

RPZZZ 00000000100C2016030102 S 201606 0000000 00001650000000 A 

RPZZZ 00000000100C2016030102PSU 201609150000900A00001000000000S 201609 A EPZZZ

00000000100C2016030102 S 201606 0000000 00000000000100 A 

DNZZZ 00000000100C2016030102 S 201606 0000000 00001000000000 A 

RPZZZ 00000000100H2016030102 S 201606 0000165 00000000000000 A 

RPZZZ 00000000100H2016030102CSU 201609150000900A00000000000100S 201609 A EPZZZ

00000000100H2016030102 S 201606 0000000 00001000000000 A 

DNZZZ 00000000100H2016030102 S 201606 0000000 00001000000000 A
Commodity Futures Trading Commission

Guidebook for Part 17

Division of Data

Page 66 of 74

Sample Data in FIXML PosRpt Format

<?xml version="1.0" encoding="UTF-8"?>

<!--Sample XML file generated by XMLSpy v2014 rel. 2 sp1 (x64) (http://www.altova.com)-->

<FIXML xmlns="http://www.fixprotocol.org/FIXML-5-0-SP2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

v="FIX.5.0SP2" r="String" xv="0" cv="String" xr="String" s="2014-05-07" xsi:schemaLocation="http://www.fixprotocol.org/FIXML-5-0-

SP2 fixml-main-5-0-SP2.xsd">

<Batch TotMsg="4">

<Hdr MsgTyp="AP" SID="ZZZ" TID="CFTC" Snt="2016-03-02T09:30:47Z" />

<PosRpt RptID="1" Actn="1" BizDt="2016-03-01" >

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100C" Src="D" R="89"/>

<Instrmt ID="S" Src="H" SecTyp="FUT" MMY="201606" Exch="XCME" />

<Qty Typ="FIN" Long="165" Short="0"/>

<Qty Typ="TOT" Long="165" Short="0"/>

<Qty Typ="EP" Long="0" Short="100"/>

<Qty Typ="DN" Long="100" Short="0"/>

</PosRpt>
Commodity Futures Trading Commission

Guidebook for Part 17

Division of Data

Page 67 of 74

<PosRpt RptID="2" Actn="1" BizDt="2016-03-01" >

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100C" Src="D" R="89"/>

<Instrmt ID="SU" Src="H" SecTyp="OOF" MatDt="2016-06-15" StrkPx="9.00" PutCall="0" Exch="XCME" />

<PosUnd>

<Undly ID="S" SecTyp="FUT" MMY="201606"" Exch="XCME" />

</PosUnd>

<Qty Typ="FIN" Long="100" Short="0"/>

<Qty Typ="TOT" Long="165" Short="0"/>

</PosRpt>

<PosRpt RptID="3" Actn="1" BizDt="2016-03-01" >

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100H" Src="D" R="89"/>

<Instrmt ID="S" Src="H" SecTyp="FUT" MMY="201606" Exch="XCME" />

<Qty Typ="FIN" Long="0" Short="165"/>

<Qty Typ="TOT" Long="165" Short="0"/>

<Qty Typ="EP" Long="100" Short="0"/>

<Qty Typ="DN" Long="0" Short="100"/>

</PosRpt>

<PosRpt RptID="4" Actn="1" BizDt="2016-03-01" >

<Pty ID="ZZZ" Src="M" R="116"/>

<Pty ID="100H" Src="D" R="89"/>

<Instrmt ID="SU" Src="H" SecTyp="OOF" MatDt="2016-06-15" StrkPx="9.00" PutCall="1" Exch="XCME" />

<PosUnd>

<Undly ID="S" SecTyp="FUT" MMY="201606" Exch="XCME" />

</PosUnd>

<Qty Typ="FIN" Long="0" Short="100"/>

<Qty Typ="TOT" Long="165" Short="0"/>

</PosRpt>

</Batch>

</FIXML>
Commodity Futures Trading Commission

Guidebook for Part 17

Division of Data

Page 68 of 74

Appendix E Legacy File Format

The legacy file format is the current Large Trader 80 byte format, which is to be converted to FIXML. Once converted to FIXML, the 80 byte format will become 

obsolete. This information is relevant to the transition only.

Except as otherwise approved by the Commission or its designee, all required records shall be submitted together in a single file. Each record will be 80 

characters long. The specific record format is shown in the table below, where “AN” = alphanumeric, “S” = signed numeric, and “N” = numeric.

Beginning

Column Length Type Name Position

1 2 AN Report Type 1-2

3 3 AN Reporting Firm 3-5

6 2 - Reserved 6-7

8 12 AN Account Number 8-19

20 8 AN Report Date 20-27

28 2 AN Exchange Code 28-29

30 1 AN Put or Call 30

31 5 AN Commodity Code (1) 31-35

36 8 AN Expiration Date (1) 36-43

44 7 S Strike Price 44-50

51 1 AN Exercise Style 51

52 7 N Long-Buy-Stopped 52-58

59 7 N Short-Sell-Issued 59-65

66 5 AN Commodity Code (2) 66-70

71 8 AN Expiration Date (2) 71-78

79 1 - Reserved 79

80 1 AN Record Type 80
Commodity Futures Trading Commission

Guidebook for Part 17

Division of Data

Page 69 of 74

1. Report type. This report format will be used to report three types of data: long and short futures and options positions, futures delivery notices issued 

and stopped, and exchanges of futures for a commodity or for a derivatives position bought and sold. Valid values for the report type are “RP” for

reporting positions, “DN” for reporting notices, and “EP” for reporting exchanges of futures for a commodity or for a derivatives position.

2. Reporting firm. The clearing member number assigned by an exchange or clearing house to identify reporting firms. If a firm is not a clearing member, a 

three-character alpha-numeric identifier assigned by the Commission.

3. Account Number. A unique identifier assigned by the reporting firm to each special account. The field is zero filled with the account number rightjustified. Assignment of the account number is subject to the provisions of paragraph (b) of this section and appendix A of this part (Form 102).

4. Report date. The format is YYYYMMDD, where YYYY is the year, MM is the month, and DD is the day of the month.

5. Exchange. This is a two-character field approved by the Commission to identify the exchange on which a position is held.

6. Put or Call. Valid values for this field are “C” for a call option and “P” for a put option. For futures, the field is blank.

7. Commodity (1). An exchange-assigned commodity code for the futures or options contract. Thisis the human readable ticker value.

8. Expiration date (1). The date format is YYYYMMDD and represents the expiration date or delivery date of the reported futures or options contract. For 

date-specific instruments such as flexible products, the full date must be reported. For other options and futures, this field is used to report the 

expiration year and month for an options contract or a delivery year and month for a futures contract. The day portion of the field for these contracts 

contains spaces.

9. Strike price. This is a signed numeric field for reporting options strike prices. The strike prices should be right-justified and the field zero-filled. Strike 

prices must be reported in the same formats that are used by an exchange. For futures, the field is left blank.

Right Most Character Value Sign

0 through 9 0 through 9 +

{ 0 +

A 1 +

B 2 +

C 3 +

D 4 +

E 5 +

F 6 +

G 7 +

H 8 +

I 9 +
Commodity Futures Trading Commission

Guidebook for Part 17

Division of Data

Page 70 of 74

Right Most Character Value Sign

} 0 -

J 1 -

K 2 -

L 3 -

M 4 -

N 5 -

O 6 -

P 7 -

Q 8 -

R 9 -

10. Exercise style. Valid values for this field are “A” for American style options, i.e., those that can be exercised at any time during the life of the options; and 

“E” for European, i.e., those that can be exercised only at the end of an option's life. This field is required only for flexible instruments or as otherwise 

specified by the Commission.

11. Long-Buy-Stopped (Short-Sell-Issued). When report type is “RP”, report long (short) positions open at the end of a trading day. When report is “DN”,

report delivery notices stopped (issued) on behalf of the account. When report type is “EP”, report purchases (sales) of futures for a commodity or for a 

derivatives position for the account. Report all information in contracts. Position data are reported on a net or gross basis in accordance with paragraphs

(d) and (e) of this section.

12. Commodity (2). The exchange assigned commodity code for a futures contract or other instrument that a position is exercised into from a date-specific 

or flexible option. This is the human readable Options Futures underlying ticker value.

13. Expiration date (2). Similar to other dates, the format is YYYYMMDD and represents the expiration date or delivery month and year of the future or 

other instrument that a position is exercised into from a date-specific or flexible option.

14. Record type (1). Record type is used to correct errors or delete recordsthat have previously been submitted. Valid values are “A”, “C”, “D” or “blank”.

An A or “blank” is used in this field for all new records. If the record corrects information for a previously provided record, this field must contain a “C” or 

“blank” and the record must contain all information on the previously transmitted record. If the record deletes information on a previously provided

record, this field must contain a “D” and all information on the previously transmitted record.
Commodity Futures Trading Commission

Division of Data

 Guidebook for Part 17

Page 71 of 73

Appendix F: Map Part 17 Large Trader Data to FIXML

The legacy 80 byte Large Trader Position Reports should be mapped to the FIXML standard as follows. The first column is the Legacy 80 Byte Large

Trader field name. The four additional columns list the FIXML equivalent for the resulting XML Xpath, the FIXML tag #, the valid FIXML values, and the 

name of the FIXML field name.

Item Legacy Field 

Name

FIXML FIX 

Tag

Valid Values FIXML Data 

Element(s)

1 Report Type FIXML/Batch/PosRpt/Qty@Typ 703 FIN = End-of-Day position 

TOT=Total Contracts for Day 

EP = Exchange for Physical 

DN = Delivery Notice

ES = Exchange for Swaps 

EO = Exchange for Options

Note: Exchange for Swaps and 

Exchange for Options are added 

in order to align with Part 16.

Position Type

2 Reporting Firm FIXML/Batch/PosRpt/Pty@ID=[Rpt Firm ID] 

FIXML/Batch/PosRpt/Pty@Src=M (CFTC Reporting Firm Identifier)

FIXML/Batch/PosRpt/Pty@R=116 (Reporting Entity)

448

447

452

CFTC assigned Reporting firm identifier

@ID=Rpt Firm ID

@Sc="M" @R="116"

Party ID

Party ID Source 

Party Role

3 Account 

Number

FIXML/Batch/PosRpt/Pty@ID=[Form 102 Large trader Identifier]

FIXML/Batch/PosRpt/Pty@Src=D (Proprietary/Custom)

FIXML/Batch/PosRpt/Pty@R=89 (Large Position Reporting 

Account)

448

447

452

Proprietary/Custom Reporting entity 

assigned identifier @Src=”D”

@R="89"

@ID=Large trader Identifier

Party ID

Party ID Source 

Party Role
Commodity Futures Trading Commission

Guidebook for Part 17

Division of Data

Page 72 of 74

Item Legacy Field 

Name

FIXML FIX 

Tag

Valid Values FIXML Data 

Element(s)

4 Report Date FIXML/Batch/PosRpt@BizDt[YYYY-MM-DD] 715 FIXML YYYY-MM-DD date format. See 

Data Dictionary for further 

information.

Clearing 

Business Date

5 Exchange Code FIXML/Batch/PosRpt/Instrmt@Exch 207 See 

https://www.iso20022.org/10383/iso10383-market-identifier-codes

for valid exchange code values.

Exchange Code

6 Put or Call FIXML/Batch/PosRpt/Instrmt@PutCall 201 0 = Put

1 = Call

Put or Call 

Indicator

7 Commodity 

Code (1)

FIXML/Batch/PosRpt/Instrmt@Sym=[Commodity Code] 55 This value should match the code 

formerly used as the commodity code 

in the 80-byte report format.

Commodity ID 

(Legacy)

8 Expiration Date 

(1)

FIXML/Batch/PosRpt/Instrmt@MMY= [YYYYMM] and 

conditionally

FIXML/Batch/PosRpt/Instrmt@MatDt= [YYYY-MM-DD]

200

541

FIXML YYYY-MM-DD date format. See 

Data Dictionary for further 

information.

Maturity Month 

Year

Maturity Date

9 Strike Price FIXML/Batch/PosRpt/Instrmt@StrkPx 202 decimal(10) Strike Price

10 Exercise Style FIXML/Batch/PosRpt/Instrmt@ExerStyle 1194 0=European 1=American 2=Bermuda 

99= Other

Exercise Style

11 Long-BuyStopped or

Short-SellIssued

FIXML/Batch/PosRpt/Qty@Long Or 

FIXML/Batch/PosRpt/Qty@Short

704

705

decimal(10) Long Quantity Or 

Short Quantity
Commodity Futures Trading Commission

Guidebook for Part 17

Division of Data

Page 73 of 74

Item Legacy Field 

Name

FIXML FIX 

Tag

Valid Values FIXML Data 

Element(s)

12 Commodity 

Code (2)

FIXML/Batch/PosRpt/PosUnd/Undly@ID =[Commodity 

Code]

309 This value should match the code 

formerly used as the commodity code 

in the 80-byte report format for option 

underlying commodity code.

Underlying

Contract (Legacy)

13 Expiration Date 

(2)

FIXML/Batch/PosRpt/PosUnd/Undly@MMY=[YYYYMM] 313 FIXML required date format. See Data 

Dictionary for further information.

Underlying 

Maturity Month 

Year

14 Record Type FIXML/Batch/PosRpt@Actn 2364 1 = New - used to increment the 

overall transaction quantity

2 = Change - used to override the 

overall transaction quantity or specific 

add messages based on the FIXML 

Reference ID (Primary Key)

3 = Delete - The FIXML Reference ID 

(Primary Key) is used to completely 

back-out (Delete) the transaction.

Position Report 

Action

See the data dictionary tables for further mapping guidance.