# Cboe Titanium U.S. Equities Last Sale Specification

Version 1.2.5 · June 30, 2026

## Introduction

The Cboe Titanium U.S. Equities Last Sale Feed is a direct data feed product that is the source for real-time, intraday trade data which includes price, volume and time while specifically excluding order information. Routed executions are not reported on the Last Sale Feed.

*The highlighted sections indicate differences between Last Sale and similar protocols used by other Market Centers. Note that and Execution Ids are 12 characters base 36 instead of 9 characters base 10.

### Data Types

- Numeric fields are a string of ASCII digits, right justified and zero filled on the left.
- *Base 36 Numeric (Execution Id) fields are base 36 (0-9A-Z) numbers, right justified and Zero filled on the left.
- Alpha fields are left justified and space padded on the right.
- Prices are decimal with 6 whole number digits followed by 4 decimal digits. The whole number portion is zero filled on the left; the decimal portion is zero filled on the right. The decimal point is implied by position and does not does explicitly appear in the field.
- Long Prices are decimal with 8 whole number digits followed by 6 decimal digits. The whole number portion is zero filled on the left; the decimal portion is zero filled on the right. The decimal point is implied by position and does not does explicitly appear in the field.
- Timestamp fields are whole number milliseconds past midnight Eastern Time, right justified and zero filled on the left, with no decimal point. Negative offsets are possible and will have a minus sign '-' in the left most location. Negative values represent time before midnight Eastern Time.

## Protocol

### Message Format

The Last Sale data feed is comprised of a series of fixed-length sequenced messages. The length of each message is dependent upon the message type. Each message is made up of non-control ASCII bytes.

### Sequence Numbers

The messages that make up the Last Sale protocol are delivered using SOUP 2.0, which handles sequencing and delivery integrity. Cboe implementation of SOUP 2.0 is the same as other Market Centers.

## Sessions

Cboe’s implementation of SOUP 2.0 is the same as other Market Centers. This includes the implementation of session events such as login requests, client/server heartbeats, and logout requests.

## Message Types

The fields within each message type have a corresponding data type. The various data types are defined in the following table.

**Table 1. Message Types**

| Data Type | Description |
|---|---|
| Alpha | A string of ASCII letters (A-Z) left justified and space padded on the right. |
| Base 36 Numeric | A string of ASCII numbers and letters (0-9A-Z), representing base 36 digits, right justified and zero filled on the left. Typically used for Order IDs and Execution IDs . Note that these fields are longer than on some other Market Centers. |
| Numeric | A string of ASCII numbers (0-9), right justified and zero filled on the left. |
| Prices | A string of ASCII numbers (0-9) consisting of 6 whole number digits followed by 4 decimal digits. The whole number portion is zero filled on the left; the decimal portion is zero filled on the right. The decimal point is implied by position and does not does explicitly appear in the field. |
| Long Prices | A string of ASCII numbers (0-9) consisting of 8 whole number digits followed by 6 decimal digits. The whole number portion is zero filled on the left; the decimal portion is zero filled on the right. The decimal point is implied by position and does not does explicitly appear in the field. |
| Timestamps | A string of numbers (0-9) representing whole number milliseconds past midnight Eastern Time, right justified and zero filled on the left, with no decimal point. |

### System Event Message

Cboe does not send System Event messages.

### Last Sale Message

`Last Sale` messages are sent when an order on the Cboe book is executed in whole or in part.

**Table 1. Last Sale Message**

| Field Name | Offset | Length | Value | Description |
|---|---|---|---|---|
| Timestamp | 0 | 8 | Numeric | Timestamp |
| Message Type | 8 | 1 | "L" | Last Sale |
| Executed Shares | 9 | 8 | Numeric | Number of shares executed |
| Stock Symbol | 17 | 8 | Alpha | Stock symbol right padded with spaces |
| Price | 25 | 10 | Numeric | The execution price of the order |
| *Execution Id | 35 | 12 | Base 36 Numeric | Cboe generated day-unique execution identifier of this execution. Execution Id is also referenced in the `Trade Break` message. |

The extended version of the `Last Sale` message accommodates larger prices and has the following format:

**Table 2. Last Sale Extended Message**

| Field Name | Offset | Length | Value | Description |
|---|---|---|---|---|
| Timestamp | 0 | 8 | Numeric | Timestamp |
| Message Type | 8 | 1 | "5" | Extended Last Sale |
| Executed Shares | 9 | 8 | Numeric | Number of shares executed |
| Stock Symbol | 17 | 8 | Alpha | Stock symbol right padded with spaces |
| Price | 25 | 14 | Long Price | The execution price of the order |
| *Execution Id | 39 | 12 | Base 36 Numeric | Cboe generated day-unique execution identifier of this execution. Execution Id is also referenced in the `Trade Break` message. |

### Trade Break Message

The `Trade Break` message is sent whenever an execution on Cboe is broken. Trade breaks are rare and only affect applications that rely upon Cboe execution-based data.

The `Trade Break` Message has the following format:

**Table 1. Trade Break Message**

| Field Name | Offset | Length | Data Type | Description |
|---|---|---|---|---|
| Timestamp | 0 | 8 | Numeric | Timestamp |
| Message Type | 8 | 1 | "B" | `Trade Break` message |
| *Execution ID | 9 | 12 | Base 36 Numeric | Cboe execution identifier of the execution that was broken. Execution ID refers to previously sent `Order Execution` or `Trade` messages. |

### Time Reference Message Fields (Effective 11/02/26 on BZX and EDGX)

The `Time Reference` message is used to provide a midnight reference point for recipients of the feed. It is sent whenever the system starts up and when the system crosses a midnight boundary. All subsequent Timestamp values will use the last Midnight Reference until another `Time Reference` message is received. The `Time Reference` message includes the Trade Date, so most other sequenced messages will not include that information.

The `Time Reference` message will be sent when the system first detects a message that crosses a midnight boundary. In the event a message from another internal data source has not yet passed midnight and needs to be sent, a negative Timestamp will be used to reflect that the time for that message is prior to midnight.

The Timestamp field will contain the offset from the Trade Date of the `Time Reference` message.

`Time Reference`messages will be included in a spin response.

**Table 1. Time Reference**

| Field Name | Offset | Length | Data Type | Description |
|---|---|---|---|---|
| Timestamp | 0 | 8 | Timestamp | Timestamp |
| Message Type | 8 | 1 | T | `Time Reference` message |
| Midnight Reference | 9 | 10 | Numeric | Midnight Eastern Time reference time for subsequent Timestamp values, expressed as number of whole seconds since the Epoch (Midnight January 1, 1970 UTC). |
| Time | 19 | 10 | Numeric | Number of whole seconds elapsed since the start of the current Eastern Time calendar day, derived by converting the current Eastern wall clock time (HH:MM:SS) to seconds. On Daylight Saving Time transition days, Time reflects wall clock seconds and does not adjust for the UTC offset change. On a DST spring-forward day, the maximum value will be 82,799 (23 hours). On a DST fall-back day, values between 3,600 and 7,199 will appear twice. Recipients requiring unambiguous absolute timestamps should use Midnight Reference in the `Time Reference` message. |
| Trade Date | 29 | 8 | Numeric | Current Trade Date as represented by YYYYMMDD |

## References

For more information on Cboe Symbology, please refer to the Cboe Titanium U.S. Symbology Reference.

## Support

Please direct questions or comments regarding this specification to tradedesk@cboe.com.

## Revision History

| Document Version | Date | Description |
|---|---|---|
| 1.0.0 | 04/06/10 | Initial Version 1.0. |
| 1.1.0 | 09/03/10 | Added Trade Break message type. |
| 1.2.0 | 02/19/16 | Bats branding/logo changes. |
| 1.2.1 | 10/17/17 | Cboe branding/logo changes. |
| 1.2.2 | 07/26/21 | Updated formatting, Trade Desk email, and Cboe Symbology Reference link. |
| 1.2.3 | 03/15/24 | Added extended version of `Last Sale` message (effective 06/17/24). |
| 1.2.4 | 01/15/25 | Updated with Cboe Titanium branding. |
| 1.2.5 | 06/30/26 | Updated Timestamp data type to indicate that negative offsets are possible and will have a minus sign '-' in the left most location. Added Time Reference Message Fields , effective 11/02/26 on BZX and EDGX. |
