This is an old revision of the document!
THIS PAGE IS UNDER CONSTRUCTION
Prediction Markets
Prediction markets on the T4 platform are binary-outcome instruments that settle at either 0 or 1 (expressed as a price). This page explains how to interpret settlement messages so your application can correctly determine the outcome of a prediction market trade.
Overview
Unlike traditional futures contracts, prediction market instruments resolve to one of two discrete values at expiration:
- 1 – The event occurred; the “Yes” side wins.
- 0 – The event did not occur; the “No” side wins.
When a prediction market settles, the T4 platform generates a synthetic order update on the opposite side of your position at the settlement price. Your application should watch for this message to determine whether a held position resolved in or out of the money.
Settlement Mechanics
How Settlement Works
At market expiration, T4 will evaluate the outcome and issue a closing order update for each open position. The message will always be:
- Side – Opposite of your open position (long positions receive a sell; short positions receive a buy).
- Price – Either 0 (lost) or 1 (won), expressed in the instrument's native price format. See System Price Format.
- Order Type –
[TBD – settlement order type tag/value] - Quantity – Equal to your open position size.
Outcome Matrix
| Your Position | Settlement Price | Outcome |
|---|---|---|
| Long | 1 | Won – event occurred |
| Long | 0 | Lost – event did not occur |
| Short | 1 | Lost – event occurred |
| Short | 0 | Won – event did not occur |
Identifying a Settlement Message
Your application should identify a settlement message by checking for the following combination of fields in an order update:
- The instrument is a prediction market type. See Market Data & Definitions for how to identify prediction market instruments.
- The order update represents a closing fill (opposite side of the open position).
- Price is exactly 0 or 1.
- Order type is
[TBD].
Note: Settlement messages are generated by the platform and do not represent a resting order in the book. They will not appear in the order book feed and should be treated as system-generated close events.
FIX API
Settlement is communicated via an Execution Report (tag 35=8) on the FIX session. The report will reflect the closing fill at the settlement price.
For full FIX tag definitions see FIX API.
Key FIX Tags
| Tag | Field Name | Settlement Value |
|---|---|---|
| 1 | Account | Account holding the position being settled |
| 8 | BeginString | FIX protocol version in use |
| 9 | BodyLength | Number of bytes in message body |
| 10 | CheckSum | Three-digit checksum for message validation |
| 11 | ClOrdID | Client-assigned order identifier for the settlement order |
| 14 | CumQty | Cumulative quantity filled so far |
| 17 | ExecID | Unique identifier for this execution |
| 21 | HandlInst | Order handling instruction (automated, no intervention) |
| 31 | LastPx | Price of the last fill; 0 or 1 for settlement |
| 32 | LastQty | Position size being closed |
| 34 | MsgSeqNum | Sequence number of this message in the session |
| 35 | MsgType | 8 (Execution Report) |
| 37 | OrderID | Identifier assigned by broker/exchange for the settlement order |
| 38 | OrderQty | Total quantity of the settlement order |
| 39 | OrdStatus | Order Status |
| 40 | OrdType | Order Type |
| 44 | Price | 0 or 1 |
| 48 | SecurityID | Identifier for the underlying contract/instrument |
| 49 | SenderCompID | Identifier of the sending firm/system |
| 50 | SenderSubID | Sub-identifier of the sending system |
| 52 | SendingTime | Timestamp the message was sent |
| 54 | Side | Opposite of open position (1=Buy, 2=Sell) |
| 55 | Symbol | Prediction market instrument identifier |
| 56 | TargetCompID | Identifier of the receiving firm/system |
| 59 | TimeInForce | Duration the settlement order remains valid |
| 60 | TransactTime | Timestamp of the actual transaction/execution |
| 97 | LocateReqd | Whether a locate was required (relevant for short positions) |
| 107 | SecurityDesc | Name of the contract |
| 151 | LeavesQty | Remaining quantity left to be filled (0 once fully settled) |
| 167 | SecurityType | Type of instrument (e.g., option) being settled |
| 200 | MaturityMonthYear | Contract expiration month/year |
| 201 | PutOrCall | Indicates whether contract is a put or call |
| 204 | CustOrderCapacity | Capacity in which the order was entered (customer/firm) |
| 207 | SecurityExchange | Exchange where the contract is listed/settled |
| 447 | PartyIDSource | Source/type of identifier used for the party |
| 448 | PartyID | Identifier of the party involved in settlement (e.g., administrator) |
| 452 | PartyRole | Role of the identified party in the settlement process |
| 453 | NoPartyIDs | Number of party ID entries included in the message |
Example: Won (Long Position, Settles at 1)
<< 8 : 1=ExampleAccount| 8=FIX.4.2 | 9=451 | 10=180 | 11=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854 | 14=1 | 17=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854_0_T | 21=1 | 31=0 | 32=1 | 34=70 | 35=8 | 37=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854 | 38=1 | 39=2 | 48=Contract Ticker | 49=test | 50=T4FIX | 52=20260827-15:15:45.148 | 54=2 | 55=Market | 56=TradeBook | 59=0 | 60=20260827-15:15:45.147 | 97=Y | 107=Example Contract Name | 150=F | 151=0 | 167=OPT | 200=202608 | 201=1 | 204=0 | 207=Exchange Name | 447=D | 448=Administrator | 452=44 | 453=1 | [9=451|35=8] EXECUTION: Market **SELL 1@1** | Order=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854 | Filled=1/1@0 | Remaining=0 | Status=Filled
Example: Lost (Long Position, Settles at 0)
<< 8 : 1=ExampleAccount| 8=FIX.4.2 | 9=451 | 10=180 | 11=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854 | 14=1 | 17=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854_0_T | 21=1 | 31=0 | 32=1 | 34=70 | 35=8 | 37=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854 | 38=1 | 39=2 | 48=Contract Ticker | 49=test | 50=T4FIX | 52=20260827-15:15:45.148 | 54=2 | 55=Market | 56=TradeBook | 59=0 | 60=20260827-15:15:45.147 | 97=Y | 107=Example Contract Name | 150=F | 151=0 | 167=OPT | 200=202608 | 201=1 | 204=0 | 207=Exchange Name | 447=D | 448=Administrator | 452=44 | 453=1 | [9=451|35=8] EXECUTION: Market **SELL 1@0** | Order=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854 | Filled=1/1@0 | Remaining=0 | Status=Filled
Example: Won (Short Position, Settles at 0)
<< 8 : 1=ExampleAccount| 8=FIX.4.2 | 9=451 | 10=180 | 11=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854 | 14=1 | 17=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854_0_T | 21=1 | 31=0 | 32=1 | 34=70 | 35=8 | 37=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854 | 38=1 | 39=2 | 48=Contract Ticker | 49=test | 50=T4FIX | 52=20260827-15:15:45.148 | 54=2 | 55=Market | 56=TradeBook | 59=0 | 60=20260827-15:15:45.147 | 97=Y | 107=Example Contract Name | 150=F | 151=0 | 167=OPT | 200=202608 | 201=1 | 204=0 | 207=Exchange Name | 447=D | 448=Administrator | 452=44 | 453=1 | [9=451|35=8] EXECUTION: Market **BUY 1@0** | Order=CB7ED23B-1D2F-4652-BE77-DF16DB3ED854 | Filled=1/1@0 | Remaining=0 | Status=Filled
P&L Calculation
Settlement P&L for a prediction market position is straightforward:
- P&L per contract = (Settlement Price - Entry Price) * Contract Multiplier * Quantity
- For a long at entry price 0.60 settling at 1: (1 - 0.60) * [multiplier] * qty = profit
- For a long at entry price 0.60 settling at 0: (0 - 0.60) * [multiplier] * qty = loss
Note: Confirm the contract multiplier for each prediction market instrument via the Instruments API.