StockOrNot
Open the deck

How the score is built ยท Updated October 2026

A number, and everything it doesn't know

Every company in the deck carries a score out of 100. Here is exactly how it is calculated, what data feeds it, and the list of things it cannot see. The last part is longer than you might expect.

The score is a weighted blend of five factors, each read from figures the company filed with the SEC or from its current market price. It is arithmetic, not judgement. Nothing about it is predictive, and no part of it has been tuned against how these stocks subsequently performed. It is a screen: a way of asking whether the reported numbers look cheap, whether they are growing, and whether much of the revenue survives to the bottom line.

A company scoring 76 is not a better investment than one scoring 41. It is a company whose filings score higher against these particular thresholds, which is a much narrower claim.

Exchange-traded funds are read differently, on a fixed scale of their own, and are never given a company's score. That is set out further down, under How a fund is read.

The five factors

Weights, which sum to 1.00
FactorWhat it readsWeight
ProfitabilityMargins, return on equity or assets, and how much profit arrives as cash0.24
ValueWhat you pay for the earnings and cash flow, against the growth and dividend you get0.22
GrowthRevenue and earnings this year, and revenue and earnings over five years0.22
MomentumHow the price has behaved lately0.18
StabilityHow violently it moves, what it owes, how easily it covers its interest, and what it pays you0.14

Where a company has not reported the figures a factor needs, that factor is dropped and the remaining weights are rescaled. A factor resting on only one or two figures is pulled part of the way back toward the middle, after the sector half described below is blended in, so thin evidence cannot produce an extreme reading.

How a factor becomes a number

Each input is mapped onto a 0–100 curve through fixed anchor points, with straight-line interpolation between them. The anchors were chosen to sit near long-run market norms, not fitted to any historical return. Growth reads this year's revenue and earnings per share and the five-year revenue and earnings trends, with five-year revenue counted twice because a single year is noisy; for Energy and Materials this year's change in earnings per share is left out, as explained under Numbers that lie. Stability reads beta, the width of the 52-week range, dividend yield, the debt and interest cover. Profitability and momentum work the same way. Value works differently, because a price only means something next to what it buys.

Value: the price against the growth

Thirty times earnings is a lot for a business growing 3% a year and little for one growing 30%. Earlier versions scored the P/E on one fixed scale, which marked down every fast grower and flattered every slow one. Now each multiple is set against a fair multiple for the company's own growth and dividend:

fair multiple = 8 + 1.5 × (growth + dividend yield)

That is a tempered form of Benjamin Graham's old rule of thumb, 8.5 + 2 × growth, which runs hot at the growth rates of today's largest companies. Growth means the lasting kind: the five-year revenue and earnings trends, with this year's revenue counted a third, floored at zero and capped at 25% a year, because almost nothing compounds faster than that for long. Without five-year figures, this year's revenue stands in, and with no growth figure at all 6% is assumed. The dividend counts up to 8%, since a higher yield usually means the market expects a cut, and growth and dividend together count up to 25, so a company already at the growth cap gets nothing more for its dividend. A company growing 10% a year with a 2% dividend gets a fair P/E of 26; one growing 3% with no dividend, 12.5.

Where five years of revenue says little about what lasts, the cap is lower: 10% for Financials, which grow about as fast as their capital; 8% for Utilities, whose growth follows the regulated rate base; 8% for Real Estate, whose faster growth comes from issuing shares to buy property; and 8% for Materials and 6% for Energy, whose five-year figures start from the 2020 trough. Energy and Materials companies also have their P/E read on mid-cycle earnings, as explained under Numbers that lie.

The actual multiple divided by the fair one is what gets scored:

Actual multiple ÷ fair multiple, mapped
Ratio0.40.60.751.01.251.5235
Score90766255484230166

On the card, under 0.75 reads cheap, up to 1.25 about fair, up to 1.5 a bit pricey, and above that expensive. Each business is priced through the measures that fit it:

When the two measures disagree, one cheap and the other dear, or the P/E alone is a bit pricey or expensive while the two together would read fair or cheap, the card says Mixed and names which is which rather than averaging the disagreement away. Forward P/E and EV/EBITDA are shown for reference but not scored: a forward P/E rests on analysts' forecasts, and the score reads only what has been reported.

Against its own sector

Fixed thresholds treat a supermarket's 3% margin and a software company's 30% as the same kind of number. So every factor except momentum is read twice: once against the fixed curves above, and once as a rank among the other companies in the same sector. The two are averaged. The fixed half keeps a whole sector from looking cheap just because all of it is; the sector half stops a grocer being marked down for a grocer's margins. Momentum stays absolute, because a sector falling together is not a reason to prefer the one falling slowest.

Numbers that lie, and what is done about them

From five factors to one score

The five results are multiplied by their weights and summed. Averaging five readings pulls every company toward the middle: across the S&P 500 the blend runs from about 20 to 85, and half of all companies sit roughly between 45 and 62. A score that never leaves the fifties says very little, so the number on the card is where the blend places the company in the index: the share of the other S&P 500 companies it beats, from 1 to 99. A score of 90 means ahead of 90% of the index on these five factors, the same idea as a percentile.

Each label covers a fifth of the index: 80 and above screens strongly, 60 to 79 screens well, 40 to 59 mixed, 20 to 39 screens poorly, and under 20 screens badly. Beside it the card gives the company's rank in its own sector, such as “#2 of 73 in Tech”, so a utility can be read against utilities as well as against everything else.

A rank is relative: if the whole market grows dearer, the best of it still scores 99. The five factor readings in the full record are not ranked this way, so they still show whether a company is strong in absolute terms.

Scoring styles

The score above is the Balanced style. In the app you can pick another way of weighting the same five factors, each after an investor who has written about how they choose stocks. Nothing else changes: the factor readings, the figures and the case for and against stay the same, and the score is still a place among the S&P 500, ranked under that style.

Each style's weights, in percent
StyleValueGrowthProfitabilityMomentumStability
Balancedthe standard score2222241814
Quality at a fair priceafter Warren Buffett251040–25
Deep value, out of favourafter Michael Burry50–1515*20
Growth at a reasonable priceafter Peter Lynch354010–15
Defensiveafter Benjamin Graham401010–40
Growth and momentumafter William O’Neil–402040–

* Deep value reads momentum the other way round: a price that has fallen counts in its favour. Each style is our reading of what that investor has published, not how they invest today, and none of them is affiliated with StockOrNot or has endorsed it. The track record and the company pages use Balanced. For a fund, a style changes only what it owns, as How a fund is read explains.

Where the numbers come from

Prices, ratios, the 52-week range and upcoming earnings dates come from Finnhub. Everything on the balance sheet and cash flow statement is pulled straight from the company's own XBRL filings at SEC EDGAR, along with the business description and risk factors quoted from its latest 10-K.

The whole set rebuilds each weekday evening after the American close, so prices are that session's close rather than live. Every card shows how old its data is. The cards themselves are static files. Headlines in the full record are fetched when you open it, through this site's own server, and on the website placing orders goes through it to your brokerage; the iPhone app places no orders. Your cart lives in your browser or the app; if you sign in, it is also stored with your account, notes included, so it can follow you between devices and the nightly job can email you before anything in it reports.

What it cannot know

This is the part worth reading twice. A screen of this kind is blind in specific, knowable ways, and it is more useful to name them than to imply they don't exist.

How a fund is read

Where funds are shown, a Stocks | ETFs switch at the top of the deck opens about fifty exchange-traded funds: US stock funds that mostly own the same S&P 500 companies. They are the funds that track the index, funds that pick or weight its companies another way (the largest, growth, value, equal weight, dividends, low volatility), the eleven sector funds, and broader US funds, from large-company and Nasdaq-100 funds to funds of the whole US market. A fund is not a company, and it never gets a company's score. It gets a fund reading out of 100, a blend of three parts, each on a fixed scale:

Weights, which sum to 1.00
PartWhat it readsWeightNo fee read
What it ownsIts holdings, each at the score on that company's own card0.400.60
What it costsThe expense ratio, taken from the fund every year whatever it does0.35–
How spread outHow many companies really carry it0.250.40

Until a fund's expense ratio has been read from its SEC filings, the other two parts carry the reading between them, 0.60 and 0.40, and the card says the cost has not been read.

What it owns takes each holding at the score on that company's own card, weights it as the fund holds it, and averages over the part of its stock holdings we can score. The part we cannot score counts as 50, the middle, so a fund cannot read well on the slice it happens to show us: if we can score 80% of a fund's stock holdings and they average 90, it reads 0.8 × 90 + 0.2 × 50 = 82. Share classes count once, so Alphabet's two tickers are one company here as everywhere else, and its holdings list names the company, not one of its classes.

What it costs is the expense ratio on one curve. Of everything that can be known about a fund in advance, the fee has the strongest evidence behind it: studies of fund returns keep finding that, among funds of the same kind, the cheaper ones do better more often. And an index fund owns much the same companies as its rivals, so what it charges is most of what sets it apart. A published fee is not thin evidence, so unlike a company factor it is never pulled toward the middle.

Expense ratio, % a year, mapped
Fee0.020.050.10.20.350.50.751.01.5
Score96908066503824146

The 0.03% the largest S&P 500 funds charge reads 94; 0.35%, about where plain index funds end, reads 50. On the card the fee is also given in money: 0.03% is $3 a year on every $10,000.

How spread out is the average of two curves. The first is the effective number of holdings: one over the sum of the squared weights, which is the number of equal holdings that would be as concentrated. The S&P 500 held by market value behaves like about 40 equal companies, because its largest few are so large. Behaving like 3 reads 6, 6 reads 18, 10 reads 30, 20 reads 46, 40 reads 60, 80 reads 72, 150 reads 82, 300 reads 90 and 500 reads 94. The second is the weight of the largest ten holdings: 10% of the fund reads 90, 20% reads 80, 30% reads 68, 40% reads 58, 50% reads 48, 60% reads 38, 75% reads 24 and 90% reads 12. Both run in straight lines between those points, as the company curves do.

What it owns is our company score counted a second time. A fund full of the companies our screen likes this year reads well for that reason alone. The holdings add no judgement of their own: what it owns is only ever the companies' own scores, weighted, with the part we cannot score at 50. In October 2026 a fund holding the S&P 500 by market value reads about 69 on what it owns in the Balanced style, because the largest companies screen well this year; the same companies held in equal amounts read 50 under every style, since each company's score is its place in that same index. The reading is not a second opinion on the companies, only a way of adding up the first one.

Under another scoring style, what it owns is read with each holding at its score in that style. Cost and spread stay as they are: none of these investors set out a rule for choosing between funds, so there is no fund weighting “after” any of them.

Which funds get a number

A fund gets a number only when we can read it in full: at least 80% of its stock holdings are companies we score, and no more than 10% of the fund is in cash, money-market funds, futures or anything else that is not a company's shares. 80% is the line the SEC's names rule draws: a fund named after what it invests in must keep at least 80% of its assets there. A fund that misses either line is partly read when we can still match at least 30% of its stock holdings, and not read below that. It still has its card, showing the parts that can be read and why there is no number: where the number would be, it says Partly read or Holdings only and the figure that kept it from one, such as how much of it we could match. It is never given a number made from a fraction of it.

Nor is a fund read by holdings that are more than 200 days old. Holdings are public about 60 days after each quarter, so even the oldest should be about five months old; older than that, a filing has been missed, and the card says Out of date until a newer one is read. A fund whose holdings have not been read at all has no card, and until at least two funds can be shown, the Stocks | ETFs switch does not appear.

A fund reading is not a place. Set among the 500 companies it would compare things that are not alike; set among the funds we chose to cover, it would move whenever one was added, and the four funds that track the S&P 500 itself would crowd the top. So it stays on its fixed scale and does not move when funds come and go. The words beside it use the company score's cut-offs, 80 and above screens strongly down to under 20 screens badly, but for a fund they mark points on that fixed scale, not fifths of anything. Its rank among the funds read in full appears only as a caption, and only once its fee has been read: a reading without its fee is the 0.60 and 0.40 blend, a different sum, so it is not ranked against the others. Compare sets a fund only against another fund, and marks the stronger reading only when both fees have been read.

Where a fund's numbers come from

Holdings come from the fund's own report to the SEC, Form N-PORT. Funds file one every month, but only the last month of each quarter is made public, about 60 days after the quarter ends, so the holdings a fund is read by are two to five months old, and its record gives their date. Each holding is matched to one of our companies by its legal entity identifier, by the ticker the filing gives, or failing both by its name, when that points to exactly one of our companies. Each weight is the holding's share of the fund's stock holdings on that date; prices have moved since.

A fund's record sets its sectors beside the S&P 500's own. Outside the S&P 500 is the share of its stock holdings we could not match to a company we score: mostly foreign companies in a Nasdaq-100 fund and smaller ones in a total-market fund, and now and then an index company the filing names in a way we could not match, which the record lists by name. In what it owns, all of it counts as 50.

The expense ratio is read from the fund's annual or half-yearly shareholder report to the SEC (Form N-CSR), or copied by hand from its prospectus there, and the record links to the filing it came from. A shareholder report gives what the fund actually charged over that period, so a fee cut shows from the next report. Prices, the day's move, the 52-week range and the fund's own returns come from Finnhub, as for companies, and the chart is drawn from our own record of each night's close, which starts the night a fund is added. Funds are rebuilt with the companies each weekday evening, after the company data has been checked.

What a fund reading cannot know

A fund has blind spots of its own, on top of everything the company score cannot see.

What this is not

This is not investment advice, and it is not a recommendation to buy or sell anything. It is a reading of public filings, presented so you can disagree with it.

The pros and cons on each card are plain thresholds, and each one names the figure that triggered it, so you can decide the rule is wrong and still keep the fact underneath. The thresholds for a worry are set as close to the thresholds for a strength as the figures allow, figures in the bottom sixth of the sector count against, and any factor the score marks down is always explained on the “against” side. Every company also gets its weakest point named, even when nothing crosses a line. A short list of cons is not a clean bill of health: the risks that matter most are often in the 10-K rather than in the numbers.

That is the intended use: the score gets you to a shortlist, and then you read the 10-K.

Back to the deck