Why does your price history rewrite itself every quarter?
You download ten years of adjusted daily prices for a dividend payer. Three months later you download them again to extend the series, and every single historical value has changed — not just the new rows. Nobody edited the past. This lesson explains the mechanism, and it is the point where corporate actions stop being a side topic and become the reason two honest sources disagree.
The two series
The end-of-day endpoint returns both a raw and an adjusted price. The raw close is what printed on the tape that day and never changes. The adjusted close is derived: it is the raw close scaled so that the whole series is expressed in a single, consistent unit of ownership and return.
Two kinds of event force that scaling:
- Splits change how many shares one claim is divided into. A 4-for-1 split means every pre-split price must be divided by 4 to be comparable to today.
- Dividends remove cash from the company on the ex-date. To measure total return rather than price alone, every price before that ex-date is scaled down by the proportion the dividend represented.
The data behind both is exactly what the previous two lessons covered: /splits/{ticker} supplies the ratios, /div/{ticker} supplies the amounts and, critically, the ex-dates.
Why the past keeps moving
A split happens once in years. A dividend happens every quarter. Each new dividend adds one more factor to the chain applied to all earlier prices.
Concretely: Apple's /div record for 2020-02-07 shows unadjustedValue 0.77 and value 0.1925, and the same 4:1 factor that rewrote that dividend rewrote every price before 2020-08-31. Then the next quarter's dividend arrives, and every price before that ex-date shifts again — by a fraction of a percent, but it shifts.
So the adjusted history of a dividend payer changes every quarter, forever. That is not a defect. It is what "adjusted" means. The consequence is specific and practical:
- Two vendors can publish different adjusted values for the same day in 2015 and both be right, if they last recomputed at different times or apply dividends slightly differently.
- A backtest run in January and re-run in April on "the same data" will not give identical numbers.
- A cached adjusted series is stale the moment the next ex-date passes, in a way a cached raw series never is.
What this means for reproducibility
If a result has to be reproducible — for a paper, an audit, a client, or your own sanity — the only durable approach is to store the raw close plus the corporate actions, and derive the adjustment yourself at read time. Then the inputs are fixed and the transformation is versioned code. If instead you store somebody's adjusted series, you have stored the output of a computation whose inputs will keep arriving.
This is the same discipline the Reading the Market material describes as trusting-but-verifying: when a series can change under you, record enough to reconstruct it.
The honest caveat
Adjustment is a convention, not a law. Providers differ on whether to adjust for special dividends, how to handle spinoffs, and whether to adjust volume alongside price. Intraday bars are typically not adjusted at all, which is why an intraday series and a daily adjusted series disagree across a split until you apply the coefficient yourself. These are defensible choices, but you need to know which ones your provider made.
Try it now
- Apple's latest dividend, 0.27, went ex on 10 August 2026 (measured 28 September 2026). The first table is
/eod/AAPL.USacross that ex-date: divideadjusted_closebycloseon the day before it, and you have the factor that ex-date applied to every earlier row. The second table is a session five years back. Undo the factor on itsadjusted_closeto recover the value a file saved before 10 August held, and diff the two. The size of that diff, from one quarterly dividend, is this lesson's entire argument.
- Here are Apple's six sessions around 2020-08-31, both close columns. Take one raw close from before the split, divide by 4, and compare with the adjusted close for that day. Then take the ratio of
adjusted_closetocloseon the first post-split row: that is the dividends since, and multiplying by it closes the remaining gap.
- Write down which of the two — raw or adjusted — your own pipeline stores. If it is the adjusted one, decide now whether you can live with a history that moves.
Build it yourself
Build the panel that shows which of your numbers were rewritten and when. How old is this number, really?