How the X-Ray Score works
Every number on StocksXray comes from data and code, never typed by hand. This page explains how.
Data
- Financial statements: SEC EDGAR XBRL filings (10-K and 10-Q). Quarters are derived from year-to-date figures; the latest filing wins when a period is restated.
- Prices: end-of-day closes from EODHD, updated after each US close.
- Risk-free rate: the US 10-year Treasury yield.
- Betas, multiples and equity risk premium: Aswath Damodaran's public datasets (NYU Stern), refreshed each January.
The X-Ray Score (0–100)
Five lenses are scored from 0 to 100 and combined: valuation 25%, growth 20%, profitability 25%, financial health 20% and dividends 10%. Every metric is turned into a percentile rank within the company's sector, after clipping extreme values, so a bank is compared with banks and a software company with software companies. Non-dividend payers skip the dividends lens and the other weights are re-scaled. Confidence (High, Medium, Low) reflects how many metrics were available and how many years of filings exist.
Fair value
We blend three independent models with equal weight. Peer multiples: the sector median EV/EBIT, P/E and price-to-free-cash-flow applied to the company. Fundamentals-adjusted multiple: a regression across the index of what companies with similar growth, return on capital and margin trade at (Damodaran-style relative valuation). Discounted cash flow: a 10-year two-stage free-cash-flow model in which excess returns fade toward the cost of capital, scaled so the median S&P 500 stock is fairly priced (an implied-cost-of-capital approach: at textbook discount rates a DCF sits far below traded prices for almost every large company, so its level says little but its ranking between companies is informative). Earnings-power value (Greenwald), which assumes no growth, is shown as a floor and is not part of the blend. Cyclical companies are valued on through-the-cycle earnings, not on a peak or a trough. Banks and insurers use an excess-return model and a price-to-book versus return-on-equity comparison instead. Any model more than 3× or less than one third of the median is excluded as unrealistic for that company.
Why equal weights, and how accurate is it? Research on combining forecasts (Bates and Granger; Timmermann) finds that a simple average of diverse models is hard to beat. We tested this on the S&P 500 from 2018 to 2024, comparing each model's value on a date with the price one, two and three years later. The relative models came closest (a typical error of about 40%, and about 30% of stocks within ±25%), while uncalibrated intrinsic models were about 70% too low. No model reliably predicted next-year returns in that period, and the test uses today's index members, which flatters every method. Because a typical error is around 40%, the labels use wide bands (20% to 40%) and a fair value should be read as a range, not a point.
The label is one rule: Undervalued if the price is below fair value × (1 − m), Overvalued if above fair value × (1 + m), otherwise Fair, where the margin m is 20%, 30% or 40% for Low, Medium or High model uncertainty. Companies with an extreme gap between price and model are shown as "Data under review", and loss-making companies and REITs are "Not rated" for now.
Checklist and red flags
The fundamentals checklist grades each check Good, Average or Bad by its sector percentile. Checks are grouped, and each group has a capped weight so that similar metrics cannot dominate. Red flags (Beneish M-score, heavy dilution, negative equity, dividends above free cash flow) are shown as warnings and are not part of the score.
Limits
Models rest on assumptions and public data that can be incomplete or unusual. Scores describe the past and present of a business; they do not predict prices. Please read the disclaimer.
Last updated 18 October 2026.