HKEX 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. About a minute.
python main_hk.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 Hong Kong 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. Hong Kong 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 Hong Kong is this. The ROE floor removes the worst of it, but a name just above the line is still worth checking by hand.
Hong Kong's structurally cheap lines are taken out first, each by HKEX's own label: the renminbi counter of a dual-counter stock (Tencent trades as 00700 in HKD and 80700 in RMB - one company, one line kept); Chapter 21 investment companies, which trade at a standing discount to NAV; REITs; and secondary listings (-S names such as Trip.com and Manulife, plus depositary receipts), whose price is set in New York or Toronto. Landlords and developers go too: Hong Kong's landlords revalue their buildings through earnings and trade at a standing discount to an appraised book, and China's developers are priced on their credit. A second share class of one company (Swire Pacific's B shares) 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 - HKEX publishes no whole-market classification file.
Holding companies are tagged, not dropped. Swire Pacific, First Pacific and Hang Lung Group trade at a standing discount to their stakes. 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.
An h tag marks an H-share - the Hong Kong tranche of a company incorporated on the mainland. Most also trade A-shares in Shanghai or Shenzhen, usually at a premium; the multiples here are the Hong Kong price's. wvr marks weighted voting rights: the founders' shares carry the vote.
Closely held (close) means insiders and strategic holders - a family, a parent - own a majority between them, by Yahoo's count. It says the free float is the minority, not who controls, and for an H-share it counts only the H tranche, so a state holding of A-shares does not show.
Most of the market reports in another currency. Tencent, ICBC and PetroChina file in renminbi, HSBC and AIA in US dollars, and all quote in Hong Kong dollars. Yahoo divides a Hong Kong dollar enterprise value by a reporting-currency EBITDA, so EV/EBITDA is repaired on every one of them; EPS and book value are tested per company and repaired or refused. The row is tagged fx - hover it for what was done.
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.