# Why two charts show a different daily candle for the same stock

Same stock, same day, two candles. Which feed, which trades, which close and which day boundary each chart used, and how to find the one that differs.

*https://stockmarketstack.com/guides/why-two-charts-show-different-candles · background to Stock Charting Platforms & Screeners*

**Answer:** Because a daily candle is four prices and a volume chosen from hundreds of thousands of trades, and each source chooses differently. A single-exchange feed sees a few percent of the trades the consolidated tape sees. Odd lots, extended-hours and late prints count toward volume but not toward the high, low or last. The official close is the listing exchange's auction price, not the last trade. Day boundaries and adjustment differ too.

Open the same stock on two charting sites and the daily candles rarely match to the cent. The open
is a few cents apart, the close a little more, the volume sometimes by a factor of fifty. Usually
neither chart is broken. A daily candle is five numbers chosen from hundreds of thousands of trades,
by rules most charting tools do not print anywhere.

The rules mostly come from two documents, the output specifications of the two US consolidated
tapes. They say which trades update which field. Everything a vendor does beyond them is its own
choice: which feed to buy, which hours to include, where a day ends and whether to adjust.

## How it works

Every US stock trade is reported once, by the exchange that executed it or, for off-exchange
trades, to a FINRA trade reporting facility. Both routes end at a securities information processor:
the CTA plan's for NYSE- and regional-listed stocks, the UTP plan's for Nasdaq-listed ones. Each
trade carries up to four sale-condition codes. The SIP specification maps each code to the fields
it may update. Then a vendor builds bars, from the SIP feed or from one exchange's own feed, and
decides the rest.

So two candles can differ at five points, independently of each other:

1. **The feed.** Every venue, or one.
2. **The trades.** Which sale conditions count toward price and which only toward volume.
3. **The close.** The listing exchange's official close, or the last eligible trade.
4. **The day.** Where it starts and ends, and whether extended hours are inside it.
5. **The record.** Live as printed, or rebuilt after corrections, adjusted or raw.

## One exchange is not the market

The largest differences come from the feed. Every exchange sells its own data, and a free real-time
US quote is very often one exchange's feed rather than the consolidated tape.

[Alpaca](https://stockmarketstack.com/tools/alpaca-market-data)'s market data FAQ puts numbers on it. Its daily bars for Apple
on 29 September 2023 are:

| Feed | Open | High | Low | Close | Volume | Trades |
|---|---|---|---|---|---|---|
| Consolidated (SIP) | 172.02 | 173.07 | 170.341 | 171.21 | 51,861,083 | 535,134 |
| IEX only | 172.015 | 173.06 | 170.36 | 171.29 | 923,134 | 12,630 |

The prices are close, because a busy stock trades at much the same price on every venue. The
volume is 56 times apart. Alpaca's feed documentation puts IEX at "approximately ~2.5% of the
market volume". [Tiingo](https://stockmarketstack.com/tools/tiingo)'s production real-time equity data is IEX-derived as
well.

Other single-venue feeds are larger but still partial. Cboe describes the Cboe One feed as a view
"from all four Cboe U.S. Equities Exchanges: BZX Exchange, BYX Exchange, EDGX Exchange and EDGA
Exchange" — four exchanges, not the market. [TradingView](https://stockmarketstack.com/tools/tradingview)'s data-coverage page
labels its free US stock data "limited real-time via Cboe One". [StockCharts](https://stockmarketstack.com/tools/stockcharts)
patches the most recent 15 minutes of its delayed official data with BATS prints and suppresses
volume on those bars.

Off-exchange trades are the other half. Trades executed by alternative trading systems and
wholesalers are reported to FINRA's trade reporting facilities. FINRA's
[filing of 15 July 2026](https://www.sec.gov/files/rules/sro/finra/2026/34-105922.pdf) states that
all reports submitted for publication "are transmitted to and publicly disseminated by the
appropriate SIP". No single exchange's feed carries them. A candle built from an exchange feed is
missing all of them. One built from the SIP includes them, and their prices with them.

## Which trades move the price

Even two consolidated candles can differ, because not every trade is allowed to set a price. The
[CTS output specification](https://www.ctaplan.com/publicdocs/ctaplan/CTS_Pillar_Output_Specification_ETH.pdf),
version 2.12b of 1 July 2026, has a table of every sale condition and the fields it updates. The
[UTP specification](https://www.utpplan.com/DOC/UtpBinaryOutputSpec.pdf), version 4.1 of September
2026, has the same matrix for Nasdaq-listed stocks. In both, these update **volume only**, never
the consolidated last, high or low:

- **T**, extended-hours trades, and **U**, extended-hours trades reported out of sequence.
- **I**, odd-lot trades.
- **C**, cash trades settled the same day.
- **H**, price-variation trades.
- **R**, seller's-option trades.
- **V**, contingent trades, and **7**, qualified contingent trades.
- Average-price trades: **B** on the CTA tape, **W** on the UTP tape.

Late reports follow their own notes. A trade marked **Z**, sold out of sequence, updates the high
and low but sets the last sale only if it is the only qualifying trade. A trade marked **L**, sold
last, sets the last sale on the CTA tape only if it is the only qualifying last, comes from the
same exchange as the current last, or comes from the listing market.

A vendor that follows the matrix and one that does not will disagree on any day with a wide
extended-hours range or a stray contingent trade. Alpaca's FAQ says its bars are aggregated from
trades, and that condition codes decide whether each trade updates the open and close, the high
and low, or the volume. Few charting sites publish the equivalent table.

## The close is an auction, not the last trade

The last trade of the regular session and the official close are two different prices, and the
tapes treat them as two different messages.

The official close is the price of the listing exchange's closing auction. NYSE's FAQ says NYSE Arca
publishes its official closing price after the 4 p.m. closing auction "with a sale condition of
'M'". Both specifications define M as the market center's official close and give it no update of
the consolidated last, high or low, and no volume. The UTP specification spells it out: M "shall
only affect the market center closing/last sale value and will not affect the consolidated market
value." The opening auction's official price, condition Q, works the same way.

So "close" means one of three things. It can be the listing exchange's official close from its M
message. It can be the consolidated last sale, the last eligible trade reported on any venue, which is
often the auction's own closing trade but need not be. Or it can be the last trade the vendor itself
counted, which on a single-venue feed is that venue's last trade. On the Apple day in the table
above, the consolidated bar closed at 171.21 and the IEX bar at 171.29.

For thinly traded funds the official close may not be a trade at all. Under Nasdaq Rule 4754(b)(4),
as described in its [filing of 27 June 2025](https://www.sec.gov/files/rules/sro/nasdaq/2025/34-103341.pdf),
a Nasdaq-listed ETP with no closing cross gets an official close equal to "the time-weighted
average midpoint ('T-WAM') of the national best bid and offer" over the final minutes of the session.
The filing extends this to crosses of less than one round lot, and says NYSE Arca and Cboe BZX
already use "substantively identical" processes. A chart that plots the official close and one that
plots the last trade can show different closes for that fund, sometimes by a lot. Neither is in
error.

The open has the same split. Neither tape's table has a consolidated open column: the CTS table
gives an open only for each exchange, and the UTP matrix gives none. A vendor's open can be the listing exchange's official
open, condition Q, or the first regular-session trade it counted on any venue. These can be a
fraction of a second and a few cents apart.

## Odd lots, and the round-lot change

Odd-lot trades count toward volume and never toward the consolidated high, low or last. What
changed is the definition of an odd lot. Under
[17 CFR 242.600](https://www.ecfr.gov/current/title-17/section-242.600), a round lot is 100 shares
for a stock whose average closing price over the evaluation period was 250 dollars or less, 40
shares from 250.01 to 1,000 dollars, 10 shares from 1,000.01 to 10,000 dollars, and one share
above that. The evaluation periods are March and September, and the sizes are reassigned on the
first business day of May and November.

The SEC's [order of 31 October 2025](https://www.sec.gov/files/rules/exorders/2025/34-104172.pdf),
which postponed the tick-size and access-fee changes, left the round-lot date in place:
implementation "is required to be completed on the first business day of November 2025, i.e.,
November 3, 2025". The CTS specification now requires an I trade to be smaller than "the symbol
round lot size".

So for a stock above 250 dollars, a 60-share trade before 3 November 2025 was an odd lot and could
not set the day's high. After that date it is a round lot and can. A candle series built across the
change is built under two rules. Two vendors that rebuilt their history differently will disagree
on old highs and lows as well.

## Where the day starts and ends

Extended-hours trades carry the T condition and, on the tape's own rules, add to volume and to
nothing else. A daily bar built from the consolidated fields therefore has regular-session prices
and full-day volume, including 4 a.m. pre-market and after-hours trading to 8 p.m. A bar built by
aggregating trades by time can include extended hours in its high and low, or exclude them from its
volume. Both are defensible, and they are different candles. [TradingView](https://stockmarketstack.com/tools/tradingview)'s
support page describes extended hours as something shown "on intraday charts", switched on with
the ETH option.

The day's edges are a second choice. Alpaca's FAQ says a trade's timestamp "is truncated ... to the
day (in New York) for daily bars". A bar cut at midnight UTC instead puts the evening's late
trading into the next day's bucket, and the boundary shifts by an hour twice a year. The
consequences for intraday bars are covered in
[why indicator values differ](https://stockmarketstack.com/guides/why-indicator-values-differ).

The edges move again under 23-hour trading. The
[CTA plan's FAQ](https://www.ctaplan.com/publicdocs/ctaplan/CTA_Extended_Trading_Hours_FAQ.pdf)
says that from the scheduled launch on 6 December 2026 the whole window from 9 p.m. to 8 p.m. "is
one trading day". Trades between 9 p.m. and midnight are counted under the next calendar date. A
bar truncated to the calendar day in New York and a bar keyed by trade date will then put a Sunday
night trade in different days. See [what 23-hour trading changes](https://stockmarketstack.com/guides/overnight-trading-data).

## Corrections, late prints and adjustment

A candle drawn live is a first draft. Both tapes carry cancel and correction messages for trades
already printed. The CTS specification also defines condition 9, a corrected consolidated close
that only the listing exchange may send, at the earliest 30 seconds after the close. Under the
extended-hours schedule, the CTA FAQ says, late reports from a session and cancellations or
corrections of its trades may be submitted from 9 p.m. in the next session. A chart that drew its
bar from the live stream and never redraws it can keep a high that was later cancelled. One that
rebuilt from the end-of-day record will not.

Then there is adjustment, which moves every historical candle at once. Split-adjusted,
split-and-dividend-adjusted and raw series differ by design, and two providers adjust in different
ways. That is its own page:
[why two providers give different returns](https://stockmarketstack.com/guides/why-adjusted-close-differs).

## What you can do about it

**Find out which feed each chart uses.** The volume line tells you fastest. If one chart shows a
few percent of the other's volume, it is a single-venue feed, and nothing else about the two
candles is worth comparing until that is fixed. On [TradingView](https://stockmarketstack.com/tools/tradingview) the full US
exchange bundle is a separate monthly subscription on top of the plan, and the
[real-time data fees guide](https://stockmarketstack.com/guides/real-time-market-data-fees) explains why the tape costs extra.

**Compare closes against the official close.** For the listed stock, take the official close from
the listing exchange's own data or a source that publishes it explicitly, then see which chart
matches. A chart that matches the official close and one that matches the last trade are both
working as designed. Decide which definition you want, especially for thinly traded ETPs.

**Turn extended hours off on both, or on on both.** Compare daily bars with the same session
setting. Then compare intraday bars over the regular session only. If they now agree, the
difference was the session.

**Expect odd-lot and late-print differences on small numbers.** A one-cent difference in a high on
a quiet stock is very often one odd-lot, contingent or out-of-sequence print that one vendor
counted and another did not. If you need to know, pull the trades with their condition codes from
an API that exposes them, and check the trade that set the high against the table above.

**Reload before you report.** If a high, low or close matters for a record or a backtest, take it
from a rebuilt end-of-day file the next morning, not from the bar drawn live. Write down the feed,
the session setting and the adjustment next to the number. The how-to on
[drawing candlesticks in your own app](https://stockmarketstack.com/how-to/draw-candlesticks-in-your-own-app) covers the
other half of the problem, and the charting tools themselves are in
[charting platforms and screeners](https://stockmarketstack.com/categories/charting-screeners).

## Tools this bears on

- [TradingView](https://stockmarketstack.com/tools/tradingview.md) — Charting across 50-plus markets, with Pine Script, server-side alerts and broker trading.
- [StockCharts](https://stockmarketstack.com/tools/stockcharts.md) — Browser technical charting, custom scans and alerts, priced per service level.
- [Alpaca Market Data](https://stockmarketstack.com/tools/alpaca-market-data.md) — Free IEX data forever, full SIP and OPRA for a flat $99 a month.
- [Tiingo](https://stockmarketstack.com/tools/tiingo.md) — End-of-day equity history back to 1962, plus crypto, forex and news, from $30 a month.

## FAQ

### Why is the volume different on two charts for the same stock?

Usually because one of them is not looking at the whole market. The consolidated tape carries every exchange and every off-exchange trade report, while a single-exchange feed carries one venue's trades. Alpaca's own example for Apple on 29 September 2023 shows 51.9 million shares in the consolidated daily bar and 0.9 million in the IEX-only bar. Between two consolidated sources, the remaining difference is which trade types and which hours each one counts.

### Why is the closing price on my chart different from the official close?

Because the official close is set by the listing exchange's closing auction and published as its own message, while a chart's close is often the last trade it counted. On both US tapes the official-close message updates only that exchange's own figures, never the consolidated last sale. For a thinly traded Nasdaq ETP with no closing cross, or one whose cross is under a round lot, the official close is a time-weighted midpoint of the best bid and offer, a price at which nothing may have traded.

### Do pre-market and after-hours trades count in the daily candle?

In the consolidated tape's own rules, extended-hours trades count toward the day's volume and never toward the consolidated high, low or last sale. A chart or API that builds its daily bar from the consolidated fields follows that rule. One that aggregates every trade itself may include them in the high and low as well. Check which your tool does before comparing two candles.

### Do odd-lot trades count in volume?

Yes. On both US tapes an odd-lot trade adds to volume and does not update the consolidated high, low or last. What counts as an odd lot changed on 3 November 2025, when round lots became 40, 10 or 1 share for stocks averaging over 250, 1,000 or 10,000 dollars. A 50-share trade in a stock that averaged 300 dollars now updates the high and low, where before that date it did not.

### Why did my chart's daily high change after the market closed?

Because trades can be cancelled, corrected or reported late after the bar was first drawn. The consolidated tape carries cancellation and correction messages, and under the extended-hours schedule a session's late reports and corrections can arrive from 9 p.m. in the next session. A chart that drew the bar from live data and one that rebuilt it from the corrected record can disagree until the first one rebuilds.

## Sources

1. [CTS Pillar Multicast Output Binary Specification (Extended Trading Hours), version 2.12b](https://www.ctaplan.com/publicdocs/ctaplan/CTS_Pillar_Output_Specification_ETH.pdf) — Securities Industry Automation Corporation, 2026-07-01
2. [UTP Data Feed Services Specification, version 4.1 (September 2026)](https://www.utpplan.com/DOC/UtpBinaryOutputSpec.pdf) — UTP Plan, read 2026-10-08
3. [CTA Extended Trading Hours — Frequently Asked Questions, version 1.2](https://www.ctaplan.com/publicdocs/ctaplan/CTA_Extended_Trading_Hours_FAQ.pdf) — Consolidated Tape Association / Securities Industry Automation Corporation, 2026-09-29
4. [Market Data FAQ](https://docs.alpaca.markets/us/docs/market-data-faq) — Alpaca, read 2026-10-08
5. [Historical Stock Data (feed parameter)](https://docs.alpaca.markets/us/docs/historical-stock-data-1) — Alpaca, read 2026-10-08
6. [US Equities Market Data Services (Cboe One Feed)](https://www.cboe.com/market_data_services/us/equities/) — Cboe Global Markets, read 2026-10-08
7. [Nasdaq notice of filing to modify how the Nasdaq Official Closing Price is determined for a Nasdaq-listed ETP, Release No. 34-103341](https://www.sec.gov/files/rules/sro/nasdaq/2025/34-103341.pdf) — U.S. Securities and Exchange Commission, 2025-06-27
8. [Extended-Hours Trading Frequently Asked Questions, v4.0 (August 2026)](https://www.nyse.com/publicdocs/nyse/NYSE_Extended_Hours_Trading_FAQ.pdf) — New York Stock Exchange (NYSE Arca), read 2026-10-08
9. [Order Granting Temporary Exemptive Relief from Compliance with Rules 600(b)(89)(i)(F), 610(c), 610(d) and 612 of Regulation NMS, Release No. 34-104172](https://www.sec.gov/files/rules/exorders/2025/34-104172.pdf) — U.S. Securities and Exchange Commission, 2025-10-31
10. [17 CFR 242.600, NMS security designation and definitions](https://www.ecfr.gov/current/title-17/section-242.600) — Electronic Code of Federal Regulations, read 2026-10-08
11. [FINRA notice of filing to extend Trade Reporting Facilities operating hours, Release No. 34-105922 (SR-FINRA-2026-015)](https://www.sec.gov/files/rules/sro/finra/2026/34-105922.pdf) — U.S. Securities and Exchange Commission, 2026-07-15
12. [I want to access Extended Hours data](https://www.tradingview.com/support/solutions/43000502023-i-want-to-access-extended-hours-data/) — TradingView, read 2026-10-08

*Last updated 2026-10-08. A reference page, corrected in place — not a dated post.*
