Playbook › Playbook
Yahoo's sharesOutstanding returns only the listed class on dual-class foreign issuers
Claim
Yahoo Finance (and fin.py, which surfaces the same field) reports sharesOutstanding as the
listed class only on dual-class issuers. Unlisted Class B / founder / super-voting shares
are omitted. Meanwhile marketCap in the same response is computed off
impliedSharesOutstanding, which is correct.
The two fields therefore contradict each other, and the contradiction is the detection method.
Detection — a five-second check that should be routine
marketCap ÷ price vs sharesOutstanding
If they disagree by more than rounding, the share count is wrong. Cross-check against diluted weighted-average shares on the income statement, then confirm the true total from the 20-F/10-K cover page or the equity note.
Evidence
NU (Nu Holdings), 2026-07-31. Yahoo reported SharesOut 3.81B at a price of $14.33 —
implying a $54.6B market cap against a reported MktCap of $69.22B. The true figure from the
Q1'26 6-K was 4,861.7M (Class A 3,839.1M + Class B 1,022.6M). Diluted weighted-average was
4,910.3M.
The error is 27%. Any per-share metric computed from the raw field — book value per share, FCF per share, revenue per share, EPS cross-checks — is overstated by that margin, and a valuation built on it would have been badly wrong in the bullish direction.
TEAM (Atlassian), 2026-08-07. Yahoo reported SharesOut 159.63M — Class A only. True
total from the 10-Q cover page: Class A 159,634,245 + Class B 94,133,617 = 253,767,862.
The error is 37.1%, and it propagated: fin.py's derived EV $28.06B was $10.5B (27%)
too low, which implied $10.5B of net cash against an actual +$250M — a distortion large
enough that it reached a subagent's moat analysis as "can fund this fight for a decade,"
which was false. A wrong share count does not stay in the per-share metrics.
⚠️ The FPI framing was too narrow — dual class is the risk factor, not foreign domicile
The original note (NU, a Brazilian 20-F filer) attributed the failure to the FPI/20-F filing path. That was wrong, or at least incomplete. Running the reconciliation across a software peer set on 2026-08-07 found three more failures, and two of the three are ordinary US 10-K filers:
| Ticker | sharesOutstanding |
True count | Error | Filer |
|---|---|---|---|---|
| NU | 3.81B | 4,861.7M | 27.6% | 20-F (FPI) |
| TEAM | 159.63M | 253.77M | 37.1% | 10-K (US domestic) |
| WDAY | 201.00M | 246.97M | 22.9% | 10-K (US domestic) |
| ASAN | 167.82M | 237.36M | 41.4% | 10-K (US domestic) |
| CBRS | 112.25M | 237,564,041 | 52.8% | 10-Q (US, TRI-class, fresh IPO) |
| ~~MNDY~~ | ~~42.27M~~ | ~~~53.09M~~ | ~~~25.6%~~ | 🔴 RETRACTED 2026-08-10 — false positive, see below |
Founder-controlled US tech is the largest population of this failure, not a footnote to it. Any company where the founders hold super-voting Class B — which is most of the 2015–2021 software cohort — is exposed.
🔴 RETRACTION — the MNDY entry was a FALSE POSITIVE (2026-08-10)
The 2026-08-07 revision added MNDY as a fifth case on the strength of the "third reading" rule.
A full /analyze MNDY against the primary filings showed the rule misfired, and the note was
wrong on both of its preconditions:
- monday.com is single-class. One vote per ordinary share (FY2025 20-F, Note 13). The one non-economic "founder share" held by a Co-CEO carries veto rights only — a governance instrument, not a share class. The pitfall's precondition was absent.
- Yahoo's 42,274,119 was correct and current, matching the Q2 FY26 6-K cover page exactly.
The gap was a buyback, not a vendor error, and it reconciles to the share:
51,160,822 (Dec-31-2025) − 9,602,294 repurchased + 715,591 issued = 42,274,119 (Jun-30-2026)
monday.com retired 10,486,207 shares for $870.0M — 18.8% of itself in six months.
⚠️ The correction to the METHOD — the third reading needs a fourth step
The failure was comparing a period figure to a point-in-time figure. Diluted
weighted-average is an average across a fiscal year; sharesOutstanding is a snapshot. On any
company retiring stock quickly, the two must diverge, and the divergence is a real economic
event rather than a data fault.
Under the 2026-08-07 rule as written, every aggressive repurchaser screens as a vendor failure. That is the opposite of useful: it would have flagged a 19% buyback — one of the most important capital-allocation facts about the company — as a number to discard.
The corrected detection sequence:
marketCap ÷ pricevssharesOutstanding— catches the two-fields-disagree case (NU, TEAM).- Cross-check against diluted weighted-average — catches the both-fields-wrong case.
- 🆕 Before calling step 2 a vendor failure, reconcile the gap against the financing section's share-repurchase line and the equity statement. A falling share count with a matching buyback outflow and a falling APIC balance is a real retirement, not a bad field.
- Only then confirm the true total from the 20-F/10-K cover page or equity note.
Direction is the cheap tell: the genuine vendor failure understates shares (missing an unlisted class), so the vendor count is below truth. A buyback makes the vendor count below the stale weighted-average but equal to truth. Step 3 separates them in one lookup.
Score: this note is 4-for-5, not 5-for-5. NU, TEAM, WDAY and ASAN remain valid and were re-checked; only MNDY is withdrawn.
⚠️ A FRESH IPO DISABLES THE CROSS-CHECKS THEMSELVES (CBRS, 2026-08-27)
The worst case found so far, and it breaks the detection method rather than just the field.
Cerebras IPO'd 2026-05-14 with three classes. Yahoo reported SharesOut 112,247,109 — Class
A only — against a filed total of 237,564,041 (A 112,247,109 + B 111,601,424 + N 13,715,508).
The error is 52.8%, the largest in this note, and marketCap $43.5B used the correct total,
so step 1 catches it.
But steps 2 and 4 both fail, for reasons specific to a recent listing:
- Step 2 is unusable. Yahoo's annual income statements reported
Diluted Average Shares 207,533,000andBasic Average Shares 180,819,000— identical across FY2022, FY2023, FY2024 and FY2025. A weighted-average series that does not move across four years is a carry-forward artifact, not data. There is no third reading to take. - The whole historical balance sheet is pre-IPO. Yahoo showed FY2025 stockholders' equity of
−$578.7M, because convertible preferred sat in mezzanine outside equity until it converted
at listing. The vendor simultaneously reported
BVPS 40.27andP/B 4.54from the post-IPO balance sheet. The payload mixed two capital structures, so any reconciliation across statement and profile fields compares different companies. - Step 4 needs the right cover page. The 10-Q balance sheet date (6/30/26) gave 228,203,927; the 10-Q cover page (8/05/26) gave 237,564,041. The 9.4M gap was OpenAI exercising customer warrants for Class N shares in between. Take the cover page, and note its as-of date — on a company issuing warrant shares continuously, a six-week-old count is already wrong.
Rule extension
For any company less than ~4 quarters post-IPO, treat the entire vendor payload as unreconcilable and go to the filings for every balance-sheet and per-share input — not just the share count. The failure is not one bad field; it is a payload that splices pre-IPO statements onto post-IPO profile data with no marker at the seam.
Rule
On any dual-class or foreign issuer, establish the fully diluted share count from the primary
filing before computing a single per-share number, and state which figure you used. Do not
take it from a vendor field, and do not assume marketCap and sharesOutstanding came from
the same source.
What would falsify this
Yahoo populating sharesOutstanding with the consolidated total across share classes. Re-test
the reconciliation on any dual-class name before trusting the field again — this is a vendor
behaviour, not a permanent law.
Related
[[principle-primary-source-beats-vendor]] · [[pitfall-vendor-revenue-is-net-construct-for-banks]] · [[pitfall-yahoo-mixes-cad-usd-on-cross-listed-issuers]] — the same family of vendor failures concentrated on non-US listings.
History
- 2026-07-31 — found in the NU analysis. Caught only because market cap and share count failed to reconcile; nothing else in the payload signalled a problem.
- 2026-08-07 — fired again on TEAM (37.1%), and the FPI framing was corrected. Running the
check across the software peer set in the same analysis caught WDAY (22.9%) and ASAN
(41.4%) — both US 10-K filers — so foreign domicile is not the risk factor; dual-class
structure is, and founder-controlled US tech is the largest exposed population. Also added
the MNDY variant, where both Yahoo fields agree and the reconciliation test passes while
the count is still ~25.6% low — establishing that diluted weighted-average from the income
statement is a required third reading, not a confirmation step. Confidence held at
high; the note is claimed 5-for-5 on names tested. -
2026-08-10 — the MNDY case is RETRACTED as a false positive, and the method is corrected.
/analyze MNDYagainst primary filings established that (a) monday.com is single-class, so the pitfall's precondition never held, and (b) Yahoo's 42,274,119 was correct and current — the gap against the 53.09M diluted weighted-average was a $870M buyback that retired 18.8% of the company in six months, not a vendor fault. The 2026-08-07 "third reading" rule compared a period average to a point-in-time snapshot and therefore flags every aggressive repurchaser as a data error. Added step 3 — reconcile the gap against the buyback line and the equity statement before declaring a vendor failure — plus the direction tell that separates the two causes. Note is 4-for-5. Confidence held athighfor the four genuine cases; the detection method was the thing that was wrong, and it is the more valuable correction. SeeOutput/Stocks/Technology/MNDY/analyze-2026-08-10.md. -
2026-08-19 — fired again on LEN during
/analyze; seeOutput/Stocks/Consumer/LEN/analyze-2026-08-19.md. -
2026-08-27 — fired on CBRS at 52.8%, the largest error recorded, and the scope widened from "dual-class" to "any multi-class or recently-listed issuer." Cerebras is tri-class (A/B/N), three months post-IPO. Step 1 caught it, but steps 2 and 4 both failed: the diluted and basic weighted-average share series were identical constants across four fiscal years (a carry-forward artifact, so there is no third reading), and the historical balance sheet was pre-IPO — showing −$578.7M equity from mezzanine convertible preferred while the profile simultaneously reported post-IPO
BVPS 40.27. The payload spliced two capital structures with no marker at the seam. Also learned that the 10-Q cover page count (2026-08-05) and balance sheet count (2026-06-30) differed by 9.4M shares because a customer exercised warrants in between — on a continuous issuer, take the cover page and record its as-of date. Added the rule extension: inside ~4 quarters of an IPO, go to the filings for every balance-sheet and per-share input, not just the share count. Note is 5-for-6. SeeOutput/Stocks/Semiconductors/CBRS/analyze-2026-08-27.md.