fix(sec): A3 slice-2a review — shares fallback, robust context, hardening
1. Multi-class shares: prefer the single dei:EntityCommonStockSharesOutstanding cover-page fact; else fall back to us-gaap:CommonStockSharesOutstanding at period end (Alphabet has no dei fact). Never sum class facts (companyfacts is non-dimensional) and never use weighted-average/diluted; conflicting values -> null, counted as an "ambiguous shares outstanding" note in validation. Plan's "sum class-specific" wording corrected. Verified live: Alphabet shares now populate (12.1B), Apple still uses its dei cover date. 2. Fiscal context is the majority (fy, fp) among facts ending at reportDate, with ties rejected — no longer the arbitrary first fact. 3. Hardening: catalog selectors require taxonomy == "us-gaap"; indexing drops malformed facts (missing accession/end, non-finite value) so a custom concept or bad date can't be selected. Tests: +8 (dei precedence, us-gaap fallback, conflict->null, no weighted-average, tie-context skip, foreign-taxonomy/malformed ignored, ambiguous-shares note). 14 passed, 1 skipped. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -253,12 +253,14 @@ that scoring already reads, refreshed daily by step (c) after activation.
|
||||
| Earnings surprise history | last 4+ from `earnings_events` | query |
|
||||
|
||||
**Market cap is an estimate** (issuer-wide shares outstanding × one ticker's price —
|
||||
approximate for multi-class issuers). For a multi-class issuer, derive the
|
||||
issuer-wide share count **either** from the consolidated cover-page figure **or**
|
||||
by summing the class-specific `dei:EntityCommonStockSharesOutstanding` facts
|
||||
(GOOG + GOOGL) — **never both**, or the count double-counts. Label it "est." in the
|
||||
UI and round aggressively rather than withholding it; false precision is the failure
|
||||
mode, not the approximation.
|
||||
approximate for multi-class issuers). Share count comes from a single consolidated
|
||||
value, not a class sum: prefer the one `dei:EntityCommonStockSharesOutstanding`
|
||||
cover-page fact; if absent (e.g. Alphabet) fall back to
|
||||
`us-gaap:CommonStockSharesOutstanding` at period end. companyfacts is
|
||||
non-dimensional, so class-specific facts can't be summed reliably — never do that,
|
||||
and never substitute weighted-average/diluted shares; if conflicting values remain,
|
||||
store null. Label it "est." in the UI and round aggressively rather than withholding
|
||||
it; false precision is the failure mode, not the approximation.
|
||||
|
||||
**Units follow existing app conventions:** percentages are percentage points
|
||||
(21.0 = 21%), P/E and net-debt/EBITDA are multiples, market cap and net debt are
|
||||
|
||||
Reference in New Issue
Block a user