Financebotresearch desk研究台

Playbook › Playbook

Yahoo's insider_purchases field counts RSU grants and option conversions as "purchases"

static 2026-08-12

Claim

mcp__yahoo-finance__get_holder_info(holder_type="insider_purchases") returns a summary block with "Purchases", "Net Shares Purchased" and "% Buy". Those fields do not mean open-market buying. They aggregate every acquisition-side Form 4 code, including:

  • RSU/PSU vesting recorded at $0.00
  • Option exercises at legacy strikes (on RBLX: $3.40, $0.53, $0.06 — pre-IPO grants)

The case that caught it

RBLX, 2026-07-31, after a 75% drawdown. Yahoo reported:

Purchases: 4,363,572 shares / 21 transactions · Net Shares Purchased +3,546,185 · % Buy 12.3%

Read naively that is insiders accumulating into weakness — a golden flag under analysis_notes.md §6.3. The truth was the exact opposite: zero open-market purchases in the entire dataset back to May 2025, against ~$400M of CEO sales in June 2025 alone and metronomic monthly director selling all the way down.

The signal wasn't weak. It was inverted. This is worse than missing data, because it reads as confirmation.

The second failure mode — the summary can also be silently EMPTY

SPGI, 2026-08-12. insider_purchases returned all zeros — 0 purchases, 0 sales, 0 net. Read naively that is no insider activity at all.

The truth, from the insider_transactions rows, was $3.57M of genuine open-market buying in four transactions, every one of them into the drawdown:

Date Insider Role Value
2026-02-11 Hubert Joly Director $997,459
2026-04-29 Martina Cheung CEO $998,297
2026-04-30 Robert E. Moritz Jr. Director $500,001
2026-05-01 Catherine R. Clay Officer $1,078,475

Bought at $399–434 by the same people who sold at $500–561 in 2025, with zero 2026 sales. That is one of the strongest insider configurations available — and the summary field showed nothing.

So the field fails in both directions: it invented buying on RBLX and erased it on SPGI. Neither failure is detectable without reading the transaction rows, which means the summary field has no valid use at all.

How to avoid it

Never use the insider_purchases summary — it is unreliable when populated and can be empty when it should not be. Always pull holder_type="insider_transactions" and read the transaction rows, checking:

  1. Price per share. $0.00 = grant/vest, not a purchase. A strike far below the current price = option conversion, usually followed by an immediate sale.
  2. The text/description column — "Stock Gift", "Conversion of Exercisable Derivative", "Sale" vs. an actual open-market "Purchase".

Open-market insider buying is rare enough that when it's real it's unambiguous: cash paid at or near the prevailing market price. If you can't see that, it didn't happen.

Related

[[principle-primary-source-beats-vendor]] — same family. The authoritative source is the Form 4 on EDGAR, including its footnotes (which also carry 10b5-1 designation, a field Yahoo drops entirely — so "was this a pre-scheduled sale?" is never answerable from Yahoo alone).

History

  • 2026-07-31 — found during the RBLX analysis, where it would have flipped a red flag to a golden one.
  • 2026-08-12 — SPGI added the opposite failure mode: the summary returned all zeros while $3.57M of real CEO/director open-market buying sat in insider_transactions. Upgraded from "misleading when populated" to "unusable in all cases."
  • 2026-08-12 — IBM, third confirmation, same day, same empty-summary mode. insider_purchases returned 0 / 0 / 0 for the trailing six months while insider_transactions carried real open-market director buys (Miebach 434 @ $233.33, Howard 50 @ $237.83, Farr 1,000 @ $304.00). The field is now 0-for-3. IBM also shows why reading the rows pays twice: the transactions revealed not just that the summary was wrong, but that no insider bought at all after a 25% crash, with the window open three weeks and one director having bought at $304 in January. That absence was the strongest bearish signal in the file, and the summary field could not have surfaced it in either direction.

  • 2026-08-18 — META, fourth confirmation — and a NEW contaminating mechanism. Yahoo reported "Net Shares Purchased +1,093,984 · +41.1%" over six months. Every Form 4 filed since 2026-07-29 was pulled from EDGAR and parsed: there is not a single transaction code P. Two things were being counted as purchases: 1. Quarterly RSU vestings (the known mode — batches on 2026-05-15, 2026-02-13, 2025-11-14). 2. NEW — a share-class conversion, code C. Zuckerberg's 591,690-share Class B → Class A conversion on 2026-07-31, which was the mechanical first leg of a charitable gift (code G), not an acquisition of economic exposure. The Form 4 footnote is explicit: "The reporting person… has no pecuniary interest in these shares." Add code C to the exclusion list alongside code A/M vestings. Dual-class issuers make this routine: any founder gifting or selling Class A must first convert from Class B, and every one of those conversions can register as a "purchase." META also repeated the IBM lesson — reading the rows revealed zero open-market buys with the stock 31% off its high, which the summary field could not have surfaced in either direction. And it corrected a widely-held premise in the other direction: Zuckerberg has filed no open-market sale (code S) since at least 2025-11-01 — ten months of gifts and conversions only. See also [[pitfall-vendor-buyback-line-conflates-retirement-with-rsu-withholding]], the same RSU event corrupting the buyback line in the same analysis.