# OTC Markets (US OTC Quotes) Schemas OTC Markets operates trading platforms for over 10,000 OTC securities in the US public and private markets. ## OTCM Database includes the following tick types: * BBO - Combined best bid / offer quotes calculated across multiple sources * OTCM_INSIDE_QTE - OTCM Inside Quote * STAT - Static data, e.g. ISIN, description, security type ### OTCM - BBO Combined best bid / offer quotes calculated across multiple sources #### OTCM - BBO Table Schema | Field | Data Type | Description | |-------------|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | SYMBOL_NAME | string | Symbol Name (Exchange Symbol for Equities & ETFs, and Starting with Exchange Product Code for Derivative Markets followed by expiry and strike as appropriate) | | TIMESTAMP | nsectime | Event Timestamp (typically at a nano-second resolution) | | BID_PRICE | double | Best bid price. A null value is used if the bid side is empty, or if the best bid is set by unpriced orders (e.g. market orders) | | BID_SIZE | long | Best bid size | | ASK_PRICE | double | Best ask price. A null value is used if the ask side is empty, or if the best ask is set by unpriced orders (e.g. market orders) | | ASK_SIZE | long | Best ask size | | BID_MMID | string[30] | Bid Market Maker ID | | ASK_MMID | string[30] | Ask Market Maker ID | | OMDSEQ | uint | Sequence number allowing ticks of different types at the same timestamp to be sorted into the correct chronological order. e.g. if a trade and a quote have the same timestamp, the one with the lower value of OMDSEQ arrived first. | ### OTCM - OTCM_INSIDE_QTE OTCM Inside Quote #### OTCM - OTCM_INSIDE_QTE Table Schema | Field | Data Type | Description | |-------------|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | SYMBOL_NAME | string | Symbol Name (Exchange Symbol for Equities & ETFs, and Starting with Exchange Product Code for Derivative Markets followed by expiry and strike as appropriate) | | TIMESTAMP | nsectime | Event Timestamp (typically at a nano-second resolution) | | EXCH_TIME | nsectime | Event timestamp, as provided by the exchange. For electronic trading this refers to the matching engine timestamp | | BID_PRICE | double | Best bid price. A null value is used if the bid side is empty, or if the best bid is set by unpriced orders (e.g. market orders) | | BID_SIZE | long | Best bid size | | ASK_PRICE | double | Best ask price. A null value is used if the ask side is empty, or if the best ask is set by unpriced orders (e.g. market orders) | | ASK_SIZE | long | Best ask size | | OMDSEQ | uint | Sequence number allowing ticks of different types at the same timestamp to be sorted into the correct chronological order. e.g. if a trade and a quote have the same timestamp, the one with the lower value of OMDSEQ arrived first. | ### OTCM - STAT Static data, e.g. ISIN, description, security type #### OTCM - STAT Table Schema | Field | Data Type | Description | |-------------|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | SYMBOL_NAME | string | Symbol Name (Exchange Symbol for Equities & ETFs, and Starting with Exchange Product Code for Derivative Markets followed by expiry and strike as appropriate) | | TIMESTAMP | nsectime | Event Timestamp (typically at a nano-second resolution) | | NAME | string[50] | Description of the instrument | | CUSIP | string[9] | CUSIP code | | OMDSEQ | uint | Sequence number allowing ticks of different types at the same timestamp to be sorted into the correct chronological order. e.g. if a trade and a quote have the same timestamp, the one with the lower value of OMDSEQ arrived first. | ## OTCM_BARS Database includes the following tick types: * QTE_1M - 1-minute quote bars ### OTCM_BARS - QTE_1M 1-minute quote bars #### OTCM_BARS - QTE_1M Table Schema | Field | Data Type | Description | |-----------------------|-------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | SYMBOL_NAME | string | Symbol Name (Exchange Symbol for Equities & ETFs, and Starting with Exchange Product Code for Derivative Markets followed by expiry and strike as appropriate) | | TIMESTAMP | nsectime | Event Timestamp (typically at a nano-second resolution) | | FIRST_BID_TIME | nsectime | Time of the first best bid update in the current bar interval | | FIRST_BID_PRICE | double | Price of the first best bid update in the current bar interval | | FIRST_BID_SIZE | long | Size of the first best bid update in the current bar interval | | FIRST_ASK_TIME | nsectime | Time of the first best ask update in the current bar interval | | FIRST_ASK_PRICE | double | Price of the first best ask update in the current bar interval | | FIRST_ASK_SIZE | long | Size of the first best ask update in the current bar interval | | HIGH_BID_TIME | nsectime | Time of the bid quote that set HIGH_BID. If there are multiple quotes at that price, the first one is used. | | HIGH_BID | double | Highest bid price in the current bar interval | | HIGH_BID_SIZE | long | Size of the bid quote that set HIGH_BID. If there are multiple quotes at that price, the first one is used. | | ASK_PRICE_AT_HIGH_BID | double | Ask price of the quote that set HIGH_BID. If there are multiple bid quotes at HIGH_BID, the first one is used. | | ASK_SIZE_AT_HIGH_BID | long | Ask size of the quote that set HIGH_BID. If there are multiple bid quotes at HIGH_BID, the first one is used. | | LOW_ASK_TIME | nsectime | Time of the bid quote that set LOW_ASK. If there are multiple quotes at that price, the first one is used. | | LOW_ASK | double | Lowest ask price in the current bar interval | | LOW_ASK_SIZE | long | Size of the ask quote that set LOW_ASK. If there are multiple quotes at that price, the first one is used. | | BID_PRICE_AT_LOW_ASK | double | Bid price of the quote that set LOW_ASK. If there are multiple ask quotes at LOW_ASK, the first one is used. | | BID_SIZE_LOW_ASK | long | Bid size of the quote that set LOW_ASK. If there are multiple ask quotes at LOW_ASK, the first one is used. | | LAST_BID_TIME | nsectime | Time of the last best bid update in the current bar interval | | LAST_BID_PRICE | double | Price of the last best bid update in the current bar interval | | LAST_BID_SIZE | long | Size of the last best bid update in the current bar interval | | LAST_ASK_TIME | nsectime | Time of the last best ask update in the current bar interval | | LAST_ASK_PRICE | double | Price of the last best ask update in the current bar interval | | LAST_ASK_SIZE | long | Size of the last best ask update in the current bar interval | | MID_TWAP | double | Time-weighted average of the midpoint of the best bid/ask over the current bar interval. [Note: One-sided or empty quotes are excluded from the calculation] | | MID_MEDIAN | double | Median of the midpoint of the best bid/ask quotes over the current bar interval. [Note: One-sided or empty quotes are excluded from the calculation] | | MID_LAST | double | Midpoint of the last best bid/ask in the current bar interval. [Note: One-sided or empty quotes are excluded from the calculation] | | SPREAD_MIN | double | Narrowest bid/ask spread, i.e. the lowest value of (best ask price - best bid price) over the current bar interval. [Note: May be zero or negative if the book was locked/crossed. One-sided or empty quotes are excluded from the calculation] | | SPREAD_MAX | double | Widest bid/ask spread, i.e. the highest value of (best ask price - best bid price) over the current bar interval. [Note: May be zero or negative if the book was locked/crossed. One-sided or empty quotes are excluded from the calculation] | | SPREAD_TWAP | double | Time-weighted average of (best ask price - best bid price) over the current bar interval. [Note: May be zero or negative if the book was locked/crossed. One-sided or empty quotes are excluded from the calculation] | | SPREAD_MEDIAN | double | Median value of (best ask price - best bid price) over the current bar interval. [Note: May be zero or negative if the book was locked/crossed. One-sided or empty quotes are excluded from the calculation] | | SPREAD_LAST | double | Last value of (best ask price - best bid price) over the current bar interval. [Note: May be zero or negative if the book was locked/crossed. One-sided or empty quotes are excluded from the calculation] | | QUOTE_CURRENCY | string[3] | Currency in which a quote price is expressed. | | QUOTE_TICK_COUNT | long | Number of BBO quotes in the current bar interval | | CLOUD_DB | string[32] | In composite DBs: Identifies the source database for each tick. In bars DBs: Identifies the database containing the tick data used to calculate the bars. | | OMDSEQ | uint | Sequence number allowing ticks of different types at the same timestamp to be sorted into the correct chronological order. e.g. if a trade and a quote have the same timestamp, the one with the lower value of OMDSEQ arrived first. |