How the screen works
Methodology
Stage 1: the quality screen across the whole market. SEC XBRL frames return one concept for one period for every filer in a single request. About 650 requests rebuild 14 years of annual Revenue, EPS, equity, operating cash flow, capex, operating income, tax and long-term debt for every listed company in about 90 seconds. Per-share history is restated for stock splits. The Big Five tests are:
- Sales, EPS, BVPS and operating cash flow growth of at least 10%/yr over 10, 5 and 1 years
- ROIC of at least 10%, averaged over 10, 5 and 1 years. ROIC = NOPAT ÷ (equity + long-term debt).
A company moves to stage 2 if it passes at least 60% of the tests it has data for, has a 10y or 5y ROIC of at least 10%, is profitable, has filed recently and has revenue of at least $50M.
Quality tiers. A means at least 80% of tests passed, every ROIC window at or above 10%, and long-term debt that free cash flow could repay in 3 years or less. B means at least 67% of tests passed with ROIC at or above 10%. C covers the remaining stage-2 companies.
Stage 2: valuation. This stage uses companyfacts with TTM figures (FY + YTD − prior YTD), diluted share counts (with a Yahoo fallback for multi-class filers), 10 years of monthly prices and EDGAR filings.
- Windage growth g = min(median EPS growth, max(median BVPS growth, median sales growth), 15%), using the 10y and 5y windows. Rule #1 normally takes the lower of equity growth and analysts' estimates. Using max(BVPS, sales) stops large buybacks, which shrink book value, from disqualifying great compounders.
- Sticker Price = TTM EPS × (1+g)^10 × future P/E ÷ 1.15^10. Future P/E is the lower of 2 × g (as a percentage) and the 10-year median P/E, capped at 50. The median keeps one-off years, such as a near-zero-EPS year, from inflating it.
- Buy (MOS) price = 50% of Sticker.
- Payback Time price is the price at which 8 years of FCF, growing at g, adds up to the purchase price.
- Ten Cap price = 10 × TTM owner earnings per share. Owner earnings are approximated as OCF − total capex, which treats all capex as maintenance and is conservative.
Events mean the temporary bad news Rule #1 investors wait for: a drawdown from the 52-week high, open-market Form 4 purchases ("P" codes, last 120 days), SC 13D filings (180 days), and 8-K items such as restructuring, impairment, officer departures, restatements and cyber incidents (60 days). The next report date is estimated from the last 10-Q or 10-K.
All stocks table. Every listing is priced with Yahoo's batch quote endpoint (1-year weekly and 10-year monthly closes). The monthly closes are saved to lists/latest/prices_monthly.csv and drive each stock page's price history chart, which has 1Y, 5Y and 10Y views, a log-scale toggle, hover/keyboard readouts and buy-price and Sticker reference lines. It is valued from the last fiscal year of SEC XBRL frames, with the share count from the latest 10-Q cover page, so stock splits after the 10-K are corrected. Non-US filers are flagged because their per-share figures may be per ordinary share rather than per ADS. Names that pass the quality screen use the detailed TTM, currency-adjusted numbers instead. Industry is the SEC's SIC description and sector maps SIC codes onto 11 GICS-style sectors, plus "Funds & BDCs" for closed-end funds and BDCs, which have no SIC code. Codes are kept in lists/reference/sic.csv, and each run fetches new listings plus the 300 oldest entries.
Rank score = 2 × Big Five pass rate + 2 × discount to Sticker + a tier bonus + 0.25 × event score.
Foreign filers. 20-F filers that report under US GAAP in another currency (CNY, HKD, ...) are detected from their XBRL units. Their figures are converted to USD at spot (TTM) and at fiscal-year-end rates (history), restated per ADS using the ADS ratio implied by share counts, and use Yahoo trailing EPS because they file no XBRL 10-Qs. Big Five growth is measured in the reporting currency, so FX swings do not distort it.
Known limitations. Banks and insurers do not fit the Big Five well: operating cash flow and debt mean something different for them, and ROIC is better replaced with ROE. IFRS filers (TSM, NVO and others) are not covered yet. Forward/analyst estimates are not part of the automated screen. The deep-dive config accepts them.