How scores work
Six scoring models, explained in plain language. Every model turns the stocks that pass your filters into a score from 0 to 100.
The basics, for every model
Filters come first. Stocks that fail your filters (sector, size, price, trading volume, or any metric with Filter turned on) are set aside before scoring. A filter without a value yet has no effect.
Every scored stock needs complete data. If a stock is missing a figure the model uses, it is left out rather than guessed, and the page says how many were left out and why.
Most scores are relative. All models except the F-Score compare stocks with each other, so the same stock can score differently in a different screen. At least 10 stocks are needed to score fairly, and fewer than 30 shows a warning.
Everything updates instantly. Scores are recalculated in your browser whenever you change the model, a filter, or a weight.
From loaded to ranked
What the four counts above your results mean
Above the results, four counts show how many stocks are left after each step, from left to right. Each step can only keep or remove stocks, so the numbers never go up.
Loaded
Every stock in the current data: the largest US-listed companies by market cap (about 2,000), refreshed daily. Only common stocks are included, never ETFs, funds, bonds, preferred shares or warrants.
Left out:- Before this count, a stock whose latest price is more than 10 days older than the rest is left out as likely delisted or halted.
In universe
Loaded stocks that pass the Which stocks filters: sector, minimum market cap, minimum price and minimum traded per day. With none of these set, this equals the loaded count.
Removed here by:- Being in a different sector, or below a minimum you set.
- Having no figure for something you set a minimum on, such as a stock with no market cap when a minimum market cap is set.
Passed filters
Stocks in the universe that also meet every metric with Filter turned on, such as P/E below 20. A filter switched on but without a value yet has no effect.
Removed here by:- Failing any active metric filter.
- Having no figure for a filtered metric: a company with no P/E (for example, one losing money) cannot pass “P/E below 20”.
Ranked
Stocks the chosen scoring model can actually score. Each one gets a 0–100 score and a rank, and these are the stocks shown in the results.
Removed here by:- Missing data for a scored metric, rather than guessing it. Banks have no gross margin, for example, and recent listings lack the price history for trend metrics.
- Not being a company the model covers: the Magic Formula leaves out financial and utility companies, the F-Score leaves out financial companies and those without two years of statements, and the Income model only scores dividend payers.
- Too few stocks: at least 10 must remain to rank fairly, or nothing is ranked.
The line under the counts says how many stocks passed the filters but were not ranked, and why, including how many are recent listings still building price history.
In the comparison view, ranks count only the stocks both models rank, so they can differ from each model's own list.
Scoring models
Weighted ranking
Rank each metric 0–100, then blend with your weights
The default model. For every metric you turn on, the stocks are lined up from best to worst and given a score from 0 (worst) to 100 (best) based on their position, a percentile rank. For lower-is-better metrics such as P/E, the order is reversed. Equal values share the same score.
The overall score is the weighted average of the metric scores. Set each metric's weight from 1 to 10 with the − and + buttons: a metric with weight 3 counts three times as much as one with weight 1. Next to the buttons, the screen shows each metric's share of the score, its weight divided by the total of all the weights you have chosen, so you can see at a glance how much it matters.
- Best for
- Building your own recipe. The style presets (Balanced, Value, Quality, Growth, Momentum) all use this model, and Custom is your own mix: it lights up whenever your metrics and weights match none of the styles, and tapping it brings your mix back after trying a style.
- Target metrics
- RSI and payout ratio score 100 inside a healthy range (RSI 50–70; payout 25–65%) and lose points the further they stray, instead of being ranked.
- Good to know
- Position is all that counts: a stock that is far cheaper than the rest scores about the same as one that is only slightly cheaper.
Z-score composite
Like weighted ranking, but rewards how far ahead a stock is
Uses the same metrics and weights you choose, but measures how far each stock is from the average, in standard deviations (a z-score), instead of just its position. A stock twice as far ahead earns twice the credit.
Each metric's z-score is capped at ±3 so one extreme value cannot dominate, flipped for lower-is-better metrics, and combined with your weights. The combined result is then shown on the familiar 0–100 scale using the normal distribution: 50 is average, about 84 is one standard deviation better than average, and about 98 is two.
- Best for
- Rewarding genuine standouts, such as a company with far higher returns on capital than its peers.
- Good to know
- Scores bunch near 50 when stocks are similar, and a single strong metric can lift a stock more than under weighted ranking.
Balanced (no weak link)
Favours stocks that are solid in every area you score
Scores each metric 0–100 like weighted ranking, then groups them into areas (valuation, profitability, growth, financial health, dividends, price trend) and averages within each area. The areas are combined with a weighted geometric mean rather than a plain average.
The effect: a weak area drags the score down much more. A stock scoring 90 on value and 30 on quality averages 60, but scores about 52 here. A stock scoring 60 on both still scores 60.
- Best for
- Avoiding lopsided picks, such as a very cheap stock with poor quality.
- Good to know
- It only differs from weighted ranking when your metrics span more than one area. The "+ pts" in a stock's breakdown show each metric's share of its score.
Magic Formula
Joel Greenblatt's good companies at good prices
Joel Greenblatt's formula from The Little Book That Beats the Market. It looks for good businesses at bargain prices using just two measures:
- Earnings yield: operating income ÷ enterprise value. How much the business earns for its full price, including debt.
- Return on capital: how much profit the business makes on the money invested in it.
Stocks are ranked on each measure and the two ranks are added, which is the same as averaging the two percentile scores. The best combined rank scores highest.
- Best for
- A simple, rules-based value strategy. Greenblatt suggests holding 20–30 top-ranked stocks for about a year.
- Left out
- Financial companies and utilities, as in the original formula.
- Good to know
- Return on capital here is FMP's after-tax return on invested capital, a close cousin of Greenblatt's pre-tax version. Your metric Score switches are not used, but filters still apply.
Piotroski F-Score
Nine pass/fail tests of financial strength
Professor Joseph Piotroski's nine yes-or-no tests comparing a company's last two fiscal years. Each test passed scores a point, and the score out of 100 is the share of tests passed (7 of 9 is 78). Unlike the other models, it is absolute: a stock's score does not depend on the other stocks.
- Profitable: net income was positive last year.
- Cash-generative: operating cash flow was positive.
- Return on assets improved: net income ÷ total assets rose from the year before.
- Cash beats earnings: operating cash flow exceeded net income (high-quality earnings).
- Less leverage: long-term debt ÷ total assets did not rise.
- Better liquidity: current ratio (current assets ÷ current liabilities) rose.
- No dilution: diluted share count did not grow.
- Gross margin improved: gross profit ÷ revenue rose.
- Asset turnover improved: revenue ÷ total assets rose.
- Best for
- Checking financial strength and improving fundamentals. Piotroski designed it to separate winners from losers among cheap stocks, so try it with a valuation filter such as P/E below 15.
- Left out
- Financial companies, whose balance sheets these tests do not fit, and companies without two years of statements.
- Good to know
- Many stocks share the same score; ties are listed alphabetically. The sector switch does not apply.
Income (dividends)
Generous, growing and well-covered dividends
Ranks dividend-paying stocks on four measures, each scored 0–100 and then weighted:
- Dividend yield (weight 3): yearly dividends as a share of the price.
- Dividend growth (weight 2): yearly growth in dividends per share over three years.
- Payout ratio (weight 2): share of profit paid out. Scores 100 between 25% and 65%, and 1.5 points less for every percentage point outside that range, so both stingy and unsustainable payouts lose points.
- Dividend cover by free cash flow (weight 2): how many times spare cash covers the dividend.
- Best for
- Investors who want income that is generous today and likely to keep growing.
- Left out
- Companies that pay no dividend.
- Good to know
- Banks' cash flows swing widely, so their dividend cover can look poor even when the dividend is safe.
Options and checks
Compare within each sector
Rank banks against banks and software against software
Normally every stock is ranked against all the others. Valuation and profitability differ a lot between industries, though: utilities nearly always look cheaper than software companies, and banks have no gross margin at all. Turning on Compare within each sector ranks each stock only against stocks in its own sector, so the top scores go to the best companies in each sector.
- Works with
- Weighted ranking, Z-score composite, Balanced, Magic Formula and Income. Not the F-Score, whose tests are pass/fail.
- Small sectors
- A sector with fewer than 5 scored stocks is ranked against the whole list instead, because ranking within a tiny group is unreliable.
Comparing two models
See where two ways of scoring agree and disagree
Choose Compare with another model under the model picker. Both models score the same filtered stocks, and the results switch to a side-by-side view. Ranks in this view count only the stocks that both models score, so they can differ from each model's own list.
- Agreement
- How similarly the two models order the shared stocks (a rank correlation). 100% means identical order, 0% means unrelated, and negative means they tend to rank stocks the opposite way.
- Top 20 overlap
- How many stocks appear in both models' top 20.
- Scatter chart
- Each dot is a stock, with the first model's score across and the second's up. Dots near the dashed diagonal get similar scores from both; the top-right corner is where both models like a stock.
- Groups
- Both like it: top fifth under both. Model A prefers: top fifth under the first model but bottom half under the second (and the reverse). Biggest disagreements: the largest rank changes. Each row shows the rank change; ▲ means the second model ranks it higher.
Risk checks
Warning signs shown on stocks, whichever model you use
Two classic accounting models flag possible trouble. A stock with a flag shows a warning triangle next to its ticker, and the stock's detail panel explains it. Both are also available as metrics you can score or filter on.
- Altman Z-Score estimates bankruptcy risk from working capital, retained earnings, operating income, sales and market value relative to assets and debts. Above 2.99 is the safe zone, 1.81–2.99 is a grey zone, and below 1.81 is the distress zone, which triggers a flag.
- Beneish M-Score looks for patterns common in manipulated accounts, such as receivables growing faster than sales or profits outpacing cash flow. A score above -1.78 triggers an earnings-quality flag. It is a reason to look closer, not proof of wrongdoing.
- Left out
- Financial companies, which these models were not built for. The Altman Z-Score also leaves out utilities and real-estate companies, whose heavy borrowing is normal for regulated, asset-backed businesses.
Where the data comes from
Financial Modeling Prep supplies trailing twelve-month ratios and key metrics, annual income, cash flow and balance-sheet statements, and end-of-day prices. Sectors use FMP's classification.
EBITDA and earnings yield use operating income over the last four quarters, so one-off investment gains or write-downs do not distort them. Companies that report semi-annually or in another currency use FMP's figures. Growth figures are capped at ±1000%, because growth from a near-zero base produces meaningless multiples; capped values show as “1000%+”. Ratios that rely on negative earnings, EBITDA or equity are left blank rather than ranked, and banks and insurers are left out of ratios built on EBITDA, debt or gross profit.
Only stocks are included: bonds and notes that trade on stock exchanges are screened out, and each company appears once. Stocks whose latest price is more than 10 days behind the rest are excluded as likely delisted or halted. Reported financial data can be amended or restated. Scores are for research, not investment advice.
Metric definitions
Valuation
P/E (TTM)
Lower is betterWhat you pay for each dollar of profit
Share price divided by positive trailing twelve-month earnings per share.
Forward PEG
Lower is betterPrice vs. profit, adjusted for expected growth
Forward P/E divided by positive expected annual EPS growth in percentage points.
EV / EBITDA (TTM)
Lower is betterWhole-company price vs. operating cash earnings
Enterprise value (market capitalization plus debt minus cash) divided by positive trailing twelve-month EBITDA.
Price / free cash flow (TTM)
Lower is betterWhat you pay for each dollar of spare cash
Market capitalization divided by positive trailing twelve-month free cash flow.
Price / sales (TTM)
Lower is betterWhat you pay for each dollar of sales
Market capitalization divided by positive trailing twelve-month revenue.
Earnings yield (TTM)
Higher is betterOperating profit for each dollar of the whole company
Trailing twelve-month operating income divided by enterprise value. The value half of the Magic Formula; not calculated for banks and insurers.
Profitability
Return on equity (TTM)
Higher is betterProfit made on shareholders' money
Trailing net income divided by average shareholders' equity. Not calculated when equity is negative.
Return on invested capital (TTM)
Higher is betterProfit made on all money invested in the business
After-tax operating income divided by invested capital (total debt plus shareholders' equity).
Gross margin (TTM)
Higher is betterShare of sales left after making the product
Trailing gross profit divided by revenue.
Operating margin (TTM)
Higher is betterShare of sales left after running the business
Trailing operating income divided by revenue.
Free cash flow margin (TTM)
Higher is betterShare of sales that becomes spare cash
Trailing free cash flow divided by revenue.
Growth
Revenue growth (annual)
Higher is betterHow fast sales grew last year
Latest reported full-year revenue compared with the preceding full year.
Diluted EPS growth (annual)
Higher is betterHow fast profit per share grew last year
Latest reported full-year diluted EPS growth when the prior-year base is positive.
Operating cash flow growth (annual)
Higher is betterHow fast cash from operations grew last year
Latest reported full-year operating cash flow growth when the prior-year base is positive.
Financial health
Net debt / EBITDA
Lower is betterYears of earnings needed to pay off debt
Total debt less cash and cash equivalents, divided by positive trailing EBITDA. Negative values represent net cash.
Interest coverage
Higher is betterHow easily profits cover interest payments
Trailing operating income divided by positive interest expense.
Piotroski F-Score
Higher is betterHow many of nine financial-strength tests are passed
Nine pass/fail tests on profitability, leverage, liquidity and efficiency, comparing the last two fiscal years. Not calculated for financial companies.
Altman Z-Score
Higher is betterBankruptcy risk; above 3 is safe, below 1.8 is distressed
1.2×working capital + 1.4×retained earnings + 3.3×operating income + 1.0×sales, each divided by total assets, plus 0.6×market value ÷ total liabilities. Not calculated for financial, utility or real-estate companies, whose heavy debt is normal for their business.
Beneish M-Score
Lower is betterEarnings-quality check; above −1.78 is a warning sign
Eight-variable model of receivables, margins, asset quality, sales growth, depreciation, overheads, leverage and accruals. Not calculated for financial companies.
Dividends
Dividend yield (TTM)
Higher is betterYearly dividends as a share of the price
Dividends paid per share over the last twelve months divided by the share price. Zero for companies that pay no dividend.
Payout ratio (TTM)
Target rangeShare of profit paid out; 25–65% is sustainable
Dividends divided by net income over the last twelve months. Scores 100 inside 25–65% and loses 1.5 points per percentage point outside it.
Dividend growth (3-year)
Higher is betterHow fast the dividend per share has grown each year
Compound annual growth of dividends paid per diluted share over the last three fiscal years.
Dividend cover by free cash flow
Higher is betterHow many times spare cash covers the dividend
Latest fiscal-year free cash flow divided by dividends paid. Below 1× means the dividend is not fully funded by free cash flow.
Price trend
Price vs. 200-day SMA
Higher is betterHow far the price sits above its long-term trend
End-of-day close divided by the 200-trading-day simple moving average, minus one.
50-day vs. 200-day SMA
Higher is betterWhether the recent trend beats the long-term one
50-day simple moving average divided by the 200-day average, minus one.
12-month momentum (skip 1 month)
Higher is betterLast year's return, ignoring the most recent month
Return from 12 months ago to 1 month ago (252 to 21 trading days). Skipping the latest month avoids its short-term reversal effect; the standard academic momentum signal.
Six-month relative strength
Higher is betterSix-month return compared with the S&P 500
Six-month stock return minus the benchmark return over matching trading dates.
RSI (14 day)
Target rangeRecent buying momentum; 50–70 is healthy
Wilder 14-day RSI. The default scoring target is 50–70.
60-day annualized volatility
Lower is betterHow much the price has swung lately
Standard deviation of the last 60 daily log returns multiplied by the square root of 252.