Financebotresearch desk研究台

Playbook › Playbook

Yahoo's dividend feed applies a spin-off factor as a "stock split", silently deflating every pre-spin dividend

static 2026-08-12

Claim

get_stock_actions for IBM returns a row at 2021-11-04 reading "Stock Splits": 1.046. IBM did not split its stock in 2021. That is the Kyndryl spin-off, recorded as a 1.046 adjustment factor — and every dividend in the feed before that date has been divided by 1.046.

Yahoo feed (quarterly) × 1.046 = actual declared
2016-05: $1.338432 $1.40
2017-05: $1.434034 $1.50
2018-05: $1.500956 $1.57
2020-05: $1.558317 $1.63
2021-05: $1.567878 $1.64

Post-spin rows are un-factored and are the real declared amounts ($1.65, $1.66, $1.67, $1.68, $1.69). So the series silently changes basis mid-stream at the spin date.

Why it is dangerous rather than merely wrong

The error has a direction, and the direction flatters. A spin-off factor is always >1, so every pre-spin dividend is pushed down. Dividing an un-deflated recent dividend by a deflated old one overstates the dividend CAGR — which is precisely the metric the dividend-grower overlay leans on.

On IBM the distortion is small in percentage terms and large in meaning:

Window Off the raw feed Corrected
10yr dividend CAGR 2.35% 1.90%
8yr dividend CAGR 1.49% 0.92%

The corrected 8-year figure is 0.92%, and the corrected recent run-rate is 0.60%/yr — exactly one penny per quarter-rate per year, six years running. The raw feed makes a dividend that has died look merely slow. It is the difference between "a slow grower" and "a payout losing 2pts of real purchasing power every year," which is a different investment.

This is the dividend-side sibling of [[pitfall-divested-segment-corrupts-multiyear-cagr]] — same corporate event, same silent mid-series basis change, opposite direction of error. That one hides compounders by understating growth; this one hides decayed dividends by overstating it.

The tell

A fractional "Stock Splits" value. Real splits are clean ratios — 2.0, 3.0, 1.5, 0.1 for a reverse. A number like 1.046, 1.0783, 1.21 is not a split; it is a spin-off or a special-dividend adjustment. Whenever get_stock_actions shows one, treat every dividend before that date as rebased.

Second tell: the declared amounts stop being round. Boards declare dividends in whole cents. $1.567878 was never declared by anyone; $1.64 was.

The fix

  1. Scan get_stock_actions for any Stock Splits value that is not a clean ratio.
  2. Multiply every dividend before that date by the factor to recover declared amounts.
  3. Cross-validate against a second source — roic.ai's div_per_shr carried IBM's FY2024 $6.668 and FY2025 $6.709 against the hand-computed $6.67 and $6.71, confirming the post-spin rows need no adjustment and the correction is applied only to the earlier half.
  4. Prefer stating the declared quarterly rate series in the report over a single CAGR — a reader can see "$1.65, $1.66, $1.67, $1.68, $1.69" and draw the conclusion without trusting any computation.

What would falsify this

Yahoo separating spin-off adjustments from the Stock Splits field, or exposing an unadjusted dividend series. Neither is present as of 2026-08-12.

History

  • 2026-08-12 — found during the IBM full analysis; the 1.046 Kyndryl factor was recovered and the corrected dividend series became the central finding of that report. Also applies to any other Kyndryl-era or spin-heavy issuer — check KD and any name in [[consulting-it-services]] with a spin in its history.

  • 2026-08-19 — fired again on LEN during /analyze; see Output/Stocks/Consumer/LEN/analyze-2026-08-19.md.