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
| Factor | What it reads | Weight |
|---|---|---|
| Profitability | Margins, return on equity or assets, and how much profit arrives as cash | 0.24 |
| Value | What you pay for the earnings and cash flow, against the growth and dividend you get | 0.22 |
| Growth | Revenue and earnings this year, and revenue and earnings over five years | 0.22 |
| Momentum | How the price has behaved lately | 0.18 |
| Stability | How violently it moves, what it owes, how easily it covers its interest, and what it pays you | 0.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:
| Ratio | 0.4 | 0.6 | 0.75 | 1.0 | 1.25 | 1.5 | 2 | 3 | 5 |
|---|---|---|---|---|---|---|---|---|---|
| Score | 90 | 76 | 62 | 55 | 48 | 42 | 30 | 16 | 6 |
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:
- Most companies. The P/E, weighted 55%, and price to free cash flow, 45%, both against the same fair multiple. A loss, or free cash flow at or below zero, counts as expensive on that measure rather than being skipped.
- Banks, insurers and brokers. The P/E, 40%, and price to book against return on equity, 60%. A bank earning 15% on its book is worth about 1.5 times book at a 10% cost of capital, so its fair price-to-book is its return on equity divided by ten. The data has no industry, so the balance sheet decides: a financial company counts as one of these when it holds more than 3.2 times its equity in assets and earns between 0 and 25% on that equity.
- Other financial companies. The P/E alone. A payment network, exchange, ratings agency or fund manager earns from its franchise, not its balance sheet, and its book is thin, shrunk by buybacks or mostly goodwill.
- Real Estate. The P/E, 30%, and price to operating cash flow, 70%. Operating cash flow is close to the funds from operations REIT investors use, and depreciation makes a REIT's P/E look worse than its business is. The dividend is left out of a REIT's fair multiple, since it is paid from that same cash.
- Utilities. The P/E alone. A utility borrows to build, so negative free cash flow is normal and says nothing about its price.
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
- Negative equity. Companies that have bought back more stock than they have equity, often with borrowed money, report returns on equity of several hundred percent. That is arithmetic, not excellence. When equity is negative or a sliver of assets, return on equity, price-to-book and debt-to-equity are left out wherever they appear (the score, the pros and cons, the sector ranks and the figures on the card), return on assets stands in, and the company is flagged.
- Losses. A company losing money has no P/E. Earlier versions skipped the figure, which left the value factor to be judged on sales alone and made losses look cheap. A loss now counts as expensive on earnings. “Losing money” means over the last twelve months; the last annual filing decides only when there is no recent figure. When the provider's P/E says the company made money and its margin says it did not, the P/E is not counted in its favour.
- Debt. The data provider's debt-to-equity figure is occasionally near zero for companies with billions of long-term debt in their own filings. Leverage is now read from the filings as the years of operating cash flow it would take to repay the debt.
- Financials. A bank, insurer or broker borrows by design, so for every company in the Financials sector debt and cash flow are not scored. The sector label cannot tell a bank from a payment network or an exchange, so those are treated the same way. A bank's one-year revenue in the provider's data can swing 60–180% with interest rates; when that is wildly out of line with the five-year trend, only the five-year figure is used, and the one-year figure is left out of the sector ranks too.
- Interest earned. Interest cover is operating profit divided by the interest paid, net of interest earned. Beside a profit, a negative figure means the company earns more interest than it pays, or the provider's figures are out of step, and would otherwise read as the worst cover there is, so it is left out. Only with a loss does a negative figure count, as the worst cover.
- Commodity peaks. Energy and Materials companies earn what oil, gas and metal prices let them, so a peak year makes them look cheap, profitable and fast-growing all at once. When the latest year was profitable, their earnings and net margin are read as half the latest year and half the average of the years on file, up to five, and the P/E that results is kept between half and three times the reported one. Their one-year change in earnings per share is never counted as growth, nor named in the case for or against. The card says when its earnings are read this way.
- Dividends that contradict themselves. A dividend yield should be about the payout ratio divided by the P/E. When the provider's yield is more than twice that figure plus a point, or under half of it less a point, nothing says which number is wrong, so the dividend is counted nowhere: not in the fair multiple, not in stability and not in the case for and against. The card says so.
- Share classes. Alphabet, Fox and News Corp each trade under two tickers with the same filings. Each company is counted once in its sector, is never its own closest peer, and gets one score: both tickers carry the score of the class listed first.
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.
| Style | Value | Growth | Profitability | Momentum | Stability |
|---|---|---|---|---|---|
| Balancedthe standard score | 22 | 22 | 24 | 18 | 14 |
| Quality at a fair priceafter Warren Buffett | 25 | 10 | 40 | – | 25 |
| Deep value, out of favourafter Michael Burry | 50 | – | 15 | 15* | 20 |
| Growth at a reasonable priceafter Peter Lynch | 35 | 40 | 10 | – | 15 |
| Defensiveafter Benjamin Graham | 40 | 10 | 10 | – | 40 |
| Growth and momentumafter William O’Neil | – | 40 | 20 | 40 | – |
* 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.
- Sectors are broad. The sector half of each factor compares within eleven sectors, and a sector is a wide net: a railroad and an airline are both Industrials. Comparisons inside a sector are fairer than across the market, not perfect.
- It reads the last filing, not the business. A pending acquisition, a patent cliff, a regulatory inquiry, a founder leaving, a product nobody wants yet: none of that is in the numbers until it lands in a financial statement, by which point the price has usually moved.
- Accounting is a choice. Two honest companies can report the same economics differently. Write-downs, one-off gains, capitalised costs and unusual fiscal years all distort ratios the score treats as comparable.
- Missing data is only partly penalised. When capital spending is missing from the filings, free cash flow cannot be worked out, so operating cash flow stands in for the cash test against a stricter bar, rather than the test being skipped. When any other figure is absent it is dropped rather than guessed, and a factor resting on one or two figures is pulled toward the middle, but a company with thin disclosure can still score on partial evidence. Banks and insurers are the usual case.
- Momentum is the past tense. It records what the price has already done. It carries no information about what happens next, and in a downturn it is actively misleading.
- Nothing here has been backtested. The weights and thresholds are reasoned, not fitted. No claim is made, or should be inferred, that a high score has ever preceded a good return. From October 2026 the track record follows each week's top and bottom fifth forward, so that question will get an honest answer over time.
- Parsing fails sometimes. Every company's filings are checked each night and new ones are read automatically as they appear. When a figure looks impossible, it probably is. Each card links to the filing it came from, and that filing is the authority, not this page.
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:
| Part | What it reads | Weight | No fee read |
|---|---|---|---|
| What it owns | Its holdings, each at the score on that company's own card | 0.40 | 0.60 |
| What it costs | The expense ratio, taken from the fund every year whatever it does | 0.35 | – |
| How spread out | How many companies really carry it | 0.25 | 0.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.
| Fee | 0.02 | 0.05 | 0.1 | 0.2 | 0.35 | 0.5 | 0.75 | 1.0 | 1.5 |
|---|---|---|---|---|---|---|---|---|---|
| Score | 96 | 90 | 80 | 66 | 50 | 38 | 24 | 14 | 6 |
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.
- Its holdings are months old. The reading sees the last public filing, two to five months back. An index fund changes slowly; an actively managed one may have changed completely.
- How closely it follows its index. The gap between a fund's return and its index's, its tracking difference, is the best single measure of what holding a fund really costs, and it is not read: it needs the index's own returns, which belong to the index's owner. Two funds with the same fee can differ here.
- Taxes. Capital-gain payouts, how its dividends are taxed, and what selling it later costs you depend on how the fund is run and on your own circumstances. None of it is read.
- What it costs you to trade. The gap between the buying and selling price, a market price above or below the value of what the fund holds, and any commission come on top of the fee. They are small for the largest funds and can matter for small ones.
- Securities lending. Many funds lend out the shares they hold and keep part of the income, which can offset some of the fee, at a small risk if a borrower fails. It is not read.
- What its index does next. An index fund follows rules someone else sets. The index can change its rules or its members, and a fund can change its index, its fee or its name (SPLG became SPYM in October 2025). The reading sees the holdings in its last filing and nothing after.
- Anything outside the S&P 500. We judge only S&P 500 companies. Anything else a fund owns counts as average, neither good nor bad, and the card says how much of it there is.
- A fund is less risky than the average of its parts. Owning 500 companies moves less than the typical one of them, and how spread out it is captures that only roughly.
- Most funds are not covered. Bond, international, small-company, commodity, crypto, leveraged, inverse and options-income funds are left out, rather than read on the sliver of them we could see.
- Past returns are not part of it. The fund's price, its returns and the monthly returns it files are shown beside the reading, not counted in it, and nothing here has been backtested.
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