Playbook › Playbook
Dividend-adjusted close prices silently break historical multiple and yield bands
Claim
yfinance and Yahoo's chart endpoint return back-adjusted prices by default: every
historical close is reduced to account for dividends paid since. That is correct for computing
total return and wrong for computing a multiple, because the multiple's numerator must
be the price an investor actually paid on that date.
The error compounds with time and with yield. On a name yielding ~5–7%, historical prices are understated by roughly the cumulative dividend — up to ~37% at VICI's 2018 IPO.
Evidence — VICI, 2026-08-03
Building VICI's historical P/AFFO band from adjusted closes would have shown the stock trading at low multiples throughout its life, supporting "10.7x is normal for VICI." Rebuilt from unadjusted prices, the real series is the opposite — a five-year monotone de-rating:
| FY-end | P/AFFO (unadjusted) | P/B |
|---|---|---|
| 2022 | 16.8x | 1.42x |
| 2023 | 14.8x | 1.32x |
| 2024 | 12.9x | 1.16x |
| 2025 | 11.8x | 1.08x |
| 2026-08-03 | 10.68x | 1.00x |
The correct series says VICI has never been cheaper and has not had a year of multiple expansion since 2021. The adjusted series would have flattened that slope into noise and removed the single most useful fact in the valuation.
Note the error runs in the cheap-looking direction for the past, which makes today look expensive relative to a fake history — the opposite of the usual vendor bias and therefore easy to miss.
Guard
Any time a historical multiple, yield or P/B band is being constructed, pull unadjusted prices.
python
yf.download(ticker, auto_adjust=False) # then use 'Close', not 'Adj Close'
Via the Yahoo Finance MCP get_historical_stock_prices, the returned series is adjusted —
cross-check at least one historical year against an independent unadjusted source before
building a band on it.
| Use case | Price series |
|---|---|
| Multiple band (P/E, P/AFFO, P/FFO, P/B, P/NAV) | Unadjusted |
| Historical dividend-yield band | Unadjusted (adjusted prices distort the yield too) |
| Total return / CAGR of an investment | Adjusted — this is what it is for |
| Drawdown from a prior high | Unadjusted, to match how the high is quoted |
Rule of thumb for whether it matters: error ≈ cumulative yield over the window. Negligible on a non-payer over two years; decisive on a REIT, BDC, MLP or utility over five-plus.
Why this is dangerous specifically
The band test is load-bearing. [[principle-down-a-lot-is-not-cheap]] instructs measuring against the name's own multiple band rather than its 52-week high — so a corrupted band silently corrupts the correction for the previous fallacy. And on income names the corrupted direction is systematically "the past was cheaper than it was," which flatters a hold and discourages a buy at genuine lows.
Same family as the two denominator fallacies already on file: a mechanical price adjustment producing a statistic that answers a different question from the one asked.
What would falsify this
Nothing about the arithmetic. What would change the guard: Yahoo defaulting to unadjusted, or
the MCP server exposing an auto_adjust parameter — worth re-checking before assuming the
workaround is still needed.
Related
[[principle-down-a-lot-is-not-cheap]] — the band test this pitfall corrupts. [[pitfall-dyt-inverts-when-price-caused-the-yield]] — the yield-band equivalent. [[pitfall-vendor-feeds-misread-sales-type-lease-reits]] · [[principle-primary-source-beats-vendor]].
History
- 2026-08-03 — caught by the Valuation desk while rebuilding VICI's AFFO multiple band during
the
/analyzerun, before it reached a conclusion. Would have understated 2018 multiples by ~37% and inverted the de-rating finding.