NYSE + Nasdaq relative valuation
Names trading below their industry-peer median that still earn a return. Cheapness alone is arithmetic; the ROE floor is what separates a mispricing from a company priced correctly for not earning its cost of capital.
Refresh
Re-runs the screen against live data. A few minutes if today is cached, about 45 from cold.
python main_us.py
This copy is a snapshot. Double-click
dashboard.cmd for a working button.
Cheap vs its own history compares today's P/E, P/B and EV/EBITDA with the median of the company's last four filed years - four, not Korea's five, because that is all Yahoo holds for US companies. It catches what the other two miss: a company that always traded at a premium and has just de-rated. Loss years drop out of the benchmark rather than dragging it, and fewer than three usable years means no benchmark at all.
Today's multiples in that column are not the ones in the P/E and P/B columns. Each past year is that year-end market value over that year's filed accounts, so today is measured the same way: today's market value over the latest filed year, on Yahoo's normalized earnings. The P/E column uses the last twelve months instead; comparing across the two would report the gap between two definitions as a discount. One caution: when earnings are rising, the latest filing lags the price and a stock reads expensive against its history until the next filing catches up.
Three screens, deliberately independent. Cheap vs peers asks whether a name trades below its industry median. Cheap outright ignores the neighbours and asks whether it is cheap on fixed levels. Cheap vs its own history asks whether it is cheap against itself. The US needs all three: a peer group where everything is expensive still produces "cheap" names, one where everything is cheap hides them, and neither notices a premium company that has quietly de-rated. None gates another; the Screen column lists every one a row cleared.
Financials qualify on a weaker bar. Enterprise value is meaningless for a bank, so EV/EBITDA is suppressed for them — which means a strict both-metrics rule would exclude every bank, insurer, broker and holdco no matter how far below book it traded. Those names clear the absolute screen on P/B and ROE alone and are marked pbr+roe.
Low P/B with low ROE is not a discount. It is a company not earning its cost of capital, priced accordingly. Much of what trades below book in the US is this. The ROE floor removes the worst of it, but a name just above the line is still worth checking by hand.
The structurally cheap lines are taken out first, each by an exchange's or the SEC's own label. Nasdaq's screener lists every exchange line, not every company, so preferreds, depositary shares of a preferred, baby bonds, warrants, rights and SPAC units go by their security name; ETFs by Nasdaq Trader's flag; ADRs, whose price is set at home; and every closed-end fund and business development company on the SEC's registers, which trade around NAV and which Yahoo files under "Asset Management" beside BlackRock. REITs and SPACs go too, and Nasdaq lines whose filings are delinquent or in bankruptcy. A second share class of one company (GOOG beside GOOGL, by the SEC's CIK) and a parent that consolidates a listed subsidiary would count one set of earnings twice, so they are dropped. Peer groups are Yahoo's industries, falling back to its sectors.
Holding companies are tagged, not dropped. Loews, Icahn Enterprises and Brookfield trade at a discount to what they hold. A holdco tag says what the company holds; hover it. A listed parent tag marks a company whose parent is also listed and consolidates it.
A 2 classes tag marks a company with more than one listed class; only the most traded is shown, and its multiples are the whole company's.
Closely held (close) means insiders and strategic holders - a founder, a family, a parent - own a majority between them, by Yahoo's count. It says the free float is the minority, not who controls.
Companies whose accounts are not in dollars are left out by
default. Nearly all have a home market elsewhere: ADRs the exchange
names "Common Stock" (TSMC, Toyota, HDFC Bank, Novo Nordisk) and Canada's
interlisted banks, pipelines and miners - their home-market screens are
the place for them. The cost is a handful of foreign companies listed
only here, such as Spotify. A run with --include-foreign
keeps them all; Yahoo divides a dollar enterprise value by a
reporting-currency EBITDA, so EV/EBITDA is then repaired, EPS and book
value are tested per company, and the row is tagged
fx.
A ttm vs fy tag means read the P/E twice. The P/E and ROE columns are Yahoo's trailing twelve months. A tagged name was profitable on that basis but lost money in its last filed year.
Cash flow and buybacks count. P/FCF - market value over the last filed free cash flow - is a fourth peer metric beside the other three, and the relative test still asks for 20% below peers on at least two of the metrics a company has. The outright screen's payout test is the shareholder yield: dividends plus buybacks less shares issued, over market value, so a company returning cash by buying back stock is not failed for a low dividend, and one buying back only what it issues to employees gets no credit. Where no cash-flow statement was filed the dividend yield stands in.
A one-off tag means the P/E was restated. When net profit runs well above operating profit after tax - a tax credit, an investment gain, an asset sale - and the company's earlier years do not show the same gap, the row is scored on operating profit after tax instead. Its P/E and ROE in the table are already on that basis; hover the tag for the size of the gap. A company whose profit always sits above its operating line (an equity-method holding) is left alone.
Peer medians are winsorized and exclude the stock itself. A metric with fewer than peers is left unscored rather than benchmarked against noise. Research tool, not investment advice.