Financebotresearch desk研究台

Playbook › Playbook

Yahoo's dividend yield uses previousClose while its P/E uses the live price

static 2026-08-04

Claim

A single yfinance .info payload mixes two different price bases:

Field Value (QCOM, 2026-08-04) Base actually used
currentPrice 162.67
previousClose 151.57
trailingPE 18.591 162.67 / 8.75 → currentPrice
forwardPE 15.798 162.67 / 10.297 → currentPrice
dividendYield 2.43 3.68 / 151.57 → previousClose
trailingAnnualDividendYield 0.023685 3.59 / 151.57 → previousClose

QCOM rose +7.32% that session. The reported 2.43% yield was the yield on yesterday's price; the true forward yield at the quote in the same payload was 3.68 / 162.67 = 2.26%.

Why it matters

The error is silent and it lands exactly where it does the most damage:

  • Dividend Yield Theory is a comparison of two yields. QCOM's fiveYearAvgDividendYield is 2.12%. Against the reported 2.43% the name looks 14.6% cheap; against the correct 2.26% it looks 6.6% cheap — less than half the signal, on the same day, from the same file. See [[pitfall-dyt-inverts-when-price-caused-the-yield]] for the other half of the DYT trap.
  • The direction of the error tracks the day's move, so it is largest on exactly the days a scan is most likely to fire — a post-earnings gap, a sector snapback, a capitulation low. On a −8% day the yield is understated and a name in its buy zone reads as out of it.
  • fin.py --quote surfaces DivYield% straight from this field, so the whole scan layer inherits it.

How to apply

  • Never take dividendYield at face value. Recompute: dividendRate / currentPrice for the forward yield, trailingAnnualDividendRate / currentPrice for the trailing one.
  • The tell that the reported yield is stale: dividendYield / 100 * previousClose reproduces dividendRate exactly, while dividendRate / currentPrice does not match the reported yield. One line of arithmetic confirms it per name.
  • The same lag has not been observed on trailingPE/forwardPE, so do not assume the whole payload shares one base — check each derived field you intend to lean on.
  • Corollary of [[principle-primary-source-beats-vendor]]: a derived vendor field is a second-order construct, and every vendor derives from a different snapshot.

Related: [[pitfall-adjusted-close-breaks-multiple-bands]] · [[pitfall-dyt-inverts-when-price-caused-the-yield]] · [[principle-primary-source-beats-vendor]]

History

  • 2026-08-04 — Found during /analyze QCOM, on a session where the stock gapped +7.3% with the semiconductor snapback. static — it is a property of how the vendor assembles the payload, not of any market condition.