> ## Documentation Index
> Fetch the complete documentation index at: https://fruitstand.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Why Don't My Historical Stock Prices Match Yahoo Finance?

> Why historical stock prices differ from Yahoo Finance: Yahoo's Close is split-adjusted, Adj Close adds dividends, and some sources use after-hours closes.

*By [Fruit Stand Team](https://fruitstand.dev/about.md) · November 3, 2026 · Guides*

Stock prices usually differ from Yahoo Finance for one of three reasons.
Yahoo's **Close** is split-adjusted, so older dates don't show the price
that actually traded. Yahoo's **Adj Close** also adjusts for dividends. And
some datasets use after-hours closes instead of the official 4 PM close. Match
the definition, and the numbers line up to the cent.

That's what we found comparing Fruit Stand's Historical Stock Prices with
Yahoo Finance on November 2, 2026. Below are the real numbers, how to tell
which kind of price you're looking at, and SQL to check your own data.

## The three kinds of "close"

| Price | What it is | Where you see it |
| - | - | - |
| Raw close | The official 4 PM price that actually traded that day | Exchange records, broker statements, Fruit Stand's `close` |
| Split-adjusted close | The raw close divided by every later split | Yahoo Finance's **Close** column |
| Split- and dividend-adjusted close | Also scaled down for every later dividend, so returns include dividends | Yahoo's **Adj Close**, Fruit Stand's `adjusted_close` |
| After-hours close | The last price of the after-hours session | Snowflake Curated Data's "Post-Market Close" |

On a recent date with no splits or dividends since, the first three are
the same number. The further back you go, and the more splits and dividends
a stock has had, the further apart they get.

## Real numbers: Fruit Stand vs. Yahoo Finance

| Ticker | Date | Fruit Stand `close` | Yahoo "Close" | Fruit Stand `adjusted_close` | Yahoo "Adj Close" |
| - | - | -: | -: | -: | -: |
| AAPL | Jan 2, 2020 | \$300.35 | \$75.09 | \$72.27 | \$72.27 |
| NVDA | Jun 7, 2024 | \$1,208.88 | \$120.89 | \$120.54 | \$120.54 |
| NVDA | Jun 10, 2024 | \$121.79 | \$121.79 | \$121.44 | \$121.44 |
| KO | Jun 12, 2026 | \$82.62 | \$82.62 | \$81.60 | \$81.60 |
| KO | Jun 15, 2026 | \$80.91 | \$80.91 | \$80.43 | \$80.43 |

What each row shows:

* **AAPL, January 2, 2020.** Apple actually closed at $300.35. Yahoo shows
  $75.09 because it divides by the 4-for-1 split in August 2020. Both
  adjusted closes are \$72.27, which also takes out the dividends paid since.
* **NVDA, June 7 and 10, 2024.** Nvidia closed at $1,208.88 on Friday, June
  7, then split 10-for-1 and opened Monday near $121. Yahoo's Close shows
  $120.89 for Friday, which is $1,208.88 / 10. On June 10, after the split,
  raw and split-adjusted are the same.
* **KO, June 12 and 15, 2026.** Coca-Cola went ex-dividend on June 15 (\$0.53
  a share). No split, so Yahoo's Close matches the raw close, but both
  adjusted closes are lower because of the dividends paid after each date.

The adjusted closes match Yahoo's to the cent on every row. The difference
is only in which column you compare.

## How to tell which price you have

* **Compare one old date with a chart.** If AAPL in early 2020 shows about
  $300, it's raw. About $75 means split-adjusted. About \$72 means split- and
  dividend-adjusted.
* **Look for the jump on a split date.** In raw prices, NVDA drops about 90%
  from June 7 to June 10, 2024. In adjusted prices there's no jump.
* **Check the latest day.** Raw, split-adjusted and adjusted closes are equal
  on the most recent date, since no corporate actions have happened after it.

With raw and adjusted prices side by side, the ratio between them shows
every split and dividend in one query:

```sql theme={null}
select
    date,
    close,
    adjusted_close,
    round(adjusted_close / close, 4) as adjustment_factor
from security_price_history_vw
where code = 'NVDA'
  and exchange_code = 'US'
  and date between '2024-06-05' and '2024-06-12'
order by date;
```

The factor jumps by 10x across June 7–10, 2024: that's the split. Small
steps elsewhere are dividends.

## Which close should you use?

* **Returns, backtests and charts over time:** the adjusted close. It's the
  only one where a split doesn't look like a crash and dividends count.
* **What a share actually traded for on a date:** the raw close. Use it for
  trade reconciliation, cost basis or a historical market cap.
* **Matching Yahoo's Close column:** the raw close divided by the splits
  since, which most databases don't store. In practice, compare adjusted
  with Adj Close instead.
* **Avoid mixing them.** A return from a raw close to an adjusted close is
  meaningless. See [Adjusted Close vs. Close](https://fruitstand.dev/blog/adjusted-close-vs-close.md)
  for more on when each applies.

## Other reasons prices differ

* **After-hours closes.** Some datasets, including Snowflake Curated Data,
  use the after-hours close. On days with news after the bell it can be 5–9%
  away from the official close.
  [Snowflake's Free Stock Prices vs. Paid](https://fruitstand.dev/blog/free-snowflake-stock-price-data-compared.md)
  shows real examples.
* **Adjustment timing.** Adjusted history changes every time a new dividend
  posts. If you saved Yahoo's Adj Close last year, it won't match today's.
* **Dates and time zones.** Some APIs return timestamps in UTC, which can
  shift a close onto the next calendar day.

## F.A.Q.

> [accordion] Is Yahoo Finance's Close the actual closing price?
>
> Only for dates after the most recent split. Yahoo adjusts its Close column for splits, so older prices are divided by every split since. The actual price that traded is the raw, unadjusted close.

> [accordion] What's the difference between Close and Adj Close on Yahoo Finance?
>
> Close is adjusted for splits only. Adj Close is adjusted for splits and dividends, so it reflects total return. Use Adj Close for returns.

> [accordion] Why did my adjusted prices change?
>
> Every new dividend or split restates all earlier adjusted prices. A dataset that only appends new days keeps stale adjusted history, which is why adjusted data needs a full refresh when corporate actions post.

> [accordion] Does Fruit Stand's data match Yahoo Finance?
>
> Its adjusted close matched Yahoo's Adj Close to the cent on every date we checked. Its close is the raw official close, which matches Yahoo's Close only after the most recent split.

To get both raw and adjusted prices in one table, start a free 30-day trial of
the [Historical Stock Prices listing on the Snowflake Marketplace](https://app.snowflake.com/marketplace/listing/GZTYZTG3LNFA).
It has daily raw and adjusted OHLC for 50,000+ US stocks, ETFs and mutual
funds. The schema is in the [dataset docs](https://fruitstand.dev/datasets/historical-stock-prices.md).
Questions? Reach out at [contact@fruitstand.dev](mailto:contact@fruitstand.dev).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.