Skip to content
All library documents

Checking Split Adjustments and Errors in Historical Price Data

Article Quant Q&A · Author: Evgeniy Berezovsky

Summary

The document examines how stock splits can affect historical OHLC prices, adjusted closes, and volume in downloaded price data. It presents two Tokyo-listed examples: one whose unadjusted OHLC values appear nearly unchanged around a split even though adjusted close changes sharply, and another whose prices show a more intuitive scale change. The question is whether the first series is erroneous or reflects prior adjustment, but the supplied answer does not diagnose that specific case.

Instead, the answer offers a data-quality practice: compare new observations with previously stored prices, flag unusually large changes, and investigate whether they reflect a split, a correction, or bad data. If data is manually cleaned, record the adjustment so it can be reversed if the provider later fixes the series. The examples show why split-adjusted fields and vendor histories need checking, but the passage gives no definitive reconstruction of the actual traded price or exact correction for the first security.

Key ideas

  • Stock splits can create apparent discontinuities or mismatches among price fields in vendor data.
  • A sharp change in newly downloaded prices can signal a split, a vendor correction, or a data error.
  • Historical price cleaners should compare incoming observations with stored values and investigate large changes.
  • Manual adjustments should be recorded so they can be removed if the vendor later corrects its data.
  • The provided answer does not resolve the actual historical price discrepancy in the first example.

Tags

Full text
# Yahoo data meaning of "close" and "adjusted close"


# Yahoo data meaning of "close" and "adjusted close"












When there's a 2-for-1 stock split,

- the number of shares doubles, while

- the value of the stock halves

For symbol 2154 on the Tokyo Stock Exchange, there was such a 2-for-1 split on 2016/3/29.

However when looking at csv data download from Yahoo, I see the "adjusted close" doubling (not halving), while the unadjusted "Close", as well as Open, High, Low, barely move.

Here's an excerpt:

```
       2154     Open     High      Low    Close  Volume  Adj Close 
-------------------------------------------------------------------
 2016-03-30  1576.00  1602.00  1530.00  1530.00   63600    1503.08 
 2016-03-29  1455.00  1620.00  1455.00  1551.00   86700    1523.71 
 2016-03-28  1450.00  1452.50  1425.50  1450.00   29000     712.24 
 2016-03-25  1469.50  1475.00  1438.50  1442.50   23200     708.56
```

How does this all add up? What was the actual price used on 2016/03/28 when 2154 was traded? Somewhere around 1450? Or 700? Or 2900?

I just looked at another set of Yahoo data for 2170 on the Tokyo Stock Exchange, which had a 100-for-1 split on 2014/3/27, and here everything looks as I would have expected.

```
       2170        Open        High         Low       Close  Volume  Adj Close 
-------------------------------------------------------------------------------
 2014-03-28      230.00      230.00      219.00      230.00   74700   190.4468 
 2014-03-27      224.00      229.00      191.00      225.00  119300   186.3067 
 2014-03-26    23500.00    23500.00    22000.00  22339.9994  181700   184.2366 
 2014-03-25  23739.9994  24080.0003  22810.0006  23230.0003  278800   191.5764
```

Is Yahoo's data for 2154 just wrong? Did they perhaps get already adjusted OHLC data for 2154, used those values as their OHLC values, and then re-adjusted the already adjusted close, which lead to incorrect "Adj Close" values?

That would also mean that the actual share price of symbol 2154 on 2016/3/28 would have been around 2900.

## Answer by Allen Maxwell (score 3, accepted)

https://quant.stackexchange.com/a/25648

I've used various data sources (including Yahoo) and their data is sometimes wrong. You can write code for sniffing out the errors. For all providers I've had to add "cleaners" to look for errors and make adjustments. If you use Google Finance etc you'll have random errors too. If you're making a private database then the adjustments need to be tracked in a table so you know what your program did. And some day later, Yahoo will correct the error and your adjustment needs to be removed. The trigger is comparing the new prices from Yahoo with the previous ones you had. A big change means a split or correction happened and you need to re-assess if the data is messed up or now clean.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.