# Methodology

**Source.** Holdings schedules filed with the SEC by four index funds: Vanguard 500 Index Fund, iShares Core S&P 500 ETF, SPDR S&P 500 ETF Trust, and (for securities no S&P 500 fund held, such as after index exit) Vanguard Total Stock Market Index Fund. Forms N-Q, N-CSR(S), N-30D and N-PORT. Every document is receipted with a SHA-256. No exchange, vendor or paid price data is used.

**Price.** A fund's filed market value divided by its filed share count gives a price per share at the fund's valuation date. For each security and quarter-end the price is the median of the S&P 500 funds' implied prices. Each schedule had to pass a completeness gate (position count in range; extracted values sum to the filing's own total) before use. Securities were attached to Persistfolio security ids by name rules using the Cohort's own names in force on each date.

**Returns.** price_change_raw is the ratio of consecutive prices. price_return_adjusted applies a share factor for splits, reverse splits and stock dividends, and, for spin-offs and distributions, the value of the distributed security priced from the same fund schedules. Each interval passes a plausibility gate; large moves are confirmed against fund holdings or adjudicated from filings. A distributed security that could not be priced leaves the adjusted return blank.

**Corporate actions.** Identified from SEC filings and XBRL, adjudicated by reading the filings, each with quotes and document hashes. A mandatory completeness test refuses any quarter that crosses an unresolved or unsupported action.

**Evidence quotes** are verbatim SEC text, except that any CUSIP number printed in a quote is replaced by [redacted].

**Cash exits.** Completion filings stating an all-cash consideration; cash per share and effective date quoted.

**What is intentionally outside.** Cash dividends and total returns (not certified), recovered or estimated valuations, benchmark-specific overlays, non-cash exits, 2026.

**Reproducibility.** Built by `scripts/commercial/prices/build.py` from frozen, hash-verified internal editions; byte-deterministic.
