API Documentation

Finding Closing Prices

In determining "official" closing prices, there are consolidated closing reports sent by several organizations (see category chart, below) which are official closing reports for those groups, but the timing of the reports is not guaranteed or consistent (see Example 01, below). Not all Market Centers report this data consistently, or by a specific time, and there is no guarantee that it will exist for all symbols. To develop a baseline, note that typically the closing print is the last trade "eligible to set last".

With this in mind, make use of the Market Center close by looking at Trade Conditions:

NxID TradeCondition Description
51 MCOfficialClose The 'Official' closing value as determined by a Market Center.
63 MarketOnClose The 'Official' closing value as determined by a Market Center.

In addition, after market close, a number of closing reports potentially containing adjustments can be found via Category Message. It also may be helpful to look at the following day's Category 16 OHLC message for any adjustments that may have been sent after any closing reports.

NxID Category Description
50 CTA_ClosingReport Consolidated Tape Association Closing Report, often used for daily OHLCV.
51 OTCBB_ClosingReport Over the Counter Bulletin Board Closing Report.
52 OTC_ClosingReport Over the Counter Closing Report.
54 Nasdaq_ClosingReport Nasdaq Closing Report.
56 CCDF_ClosingReport Consolidated Canadian Data Feed Closing Report.
16 OHLC Open High Low Close.

NOTE: These values may or may not match each other, and other data sources such as Yahoo, Google, etc. might also differ from any of these values. If you have questions about why these reports are solely at the discretion of the exchange rather than standardized from a single source, please contact the Securities and Exchange Commission (SEC) at marketstructure@sec.gov.

Example 01: Closing prices

As a brief illustration of the variance in closing reports, there were a number of Category 50 CTA Closing Report messages at 16:15 (Eastern US/tape time), with others coming at 16:30. For Trade Condition 51 MC Official Close, many were at 16:00:00 but also several at 16:10:00 and then even more at 18:29:59, 18:30:00, and 20:00:00!

ITT shows Category 50 at 16:15:06:


[09-27-2016 16:15:06] Symbol: eITT  LExg: (NYSE-3), RExg: (0   -0)
[09-27-2016 16:15:06] Category # 50 Message  (CTA_ClosingReport):
[09-27-2016 16:15:06] Session Date: 09/27/2016  ID: 0  Age: 0 Days
[09-27-2016 16:15:06] Flags: 7 
[09-27-2016 16:15:06] Open: 34.3900 
[09-27-2016 16:15:06] High: 34.7500 
[09-27-2016 16:15:06] Low: 34.1800 
[09-27-2016 16:15:06] Last: 34.6900 
[09-27-2016 16:15:06] Netchange: 0.1200 
[09-27-2016 16:15:06] Volume: 557053 
[09-27-2016 16:15:06] Bid: 31.5300 
[09-27-2016 16:15:06] Bid Exg:  Table - 3  Exchange - 7

While AAPL shows a Category 54 at 16:30:00:

[16:30:00] Symbol: eAAPL  LExg: (NQNM-12), RExg: (0   -0)
[16:30:00] Category # 54 Message  (Nasdaq_ClosingReport):
[16:30:00] Session Date: 09/27/2016  ID: 0  Age: 0 Days
[16:30:00] Flags: 3 
[16:30:00] Open: 113.0000 
[16:30:00] High: 113.1800 
[16:30:00] Low: 112.3400 
[16:30:00] Last: 113.0900 
[16:30:00] Netchange: 0.2100 
[16:30:00] Volume: 24576155 
[16:30:00] Bid: 113.0600 
[16:30:00] Ask: 113.0900 
[16:30:00] Bid Exg:  Table - 3  Exchange - 7
[16:30:00] Ask Exg:  Table - 3  Exchange - 7

You can see why it's essential to check the first and last trades "eligible to set last" against several Trade and Category messages to determine accurate data.