Methodology
How the numbers are made
One rule holds up everything else in ValueScreener: a figure does not appear on screen unless we can show you where it came from. What follows is that rule at work. The numbers we refuse to print, where the data comes from, the weights and thresholds the engine actually uses, and the places this is weakest.
Every figure opens
Click any indicator and the provenance drawer opens behind it: the formula, every input with its value, the statement it came from, the fiscal year, the period, the filing date, the reported currency, and when the data was last refreshed. Two levels of that, and the drawer says which one you are reading:
- Full. 25 core indicators, recomputed from the stored statements while you watch, with the same arithmetic the pipeline used: the forensic trio, returns on capital, margins, the classic valuation ratios, leverage and liquidity, one-year growth.
- Sourced. Everything else names the table it was read from and when. If it rests on something other than a statement, a borrowed rate or our own price archive, it says so and dates what it used.
When we refuse to show a number
A wrong number is worse than no number, so some are refused outright:
- Negative shareholders' equity makes return on equity, price to book, and debt to equity meaningless. They show "n/m" (not meaningful), never a figure.
- Missing statements produce "n/a", never 0. A zero is a real measured value that would be percentile-ranked; writing zeros into gaps would silently poison the scores.
- A company with no interest expense has no interest coverage ratio; it shows "n/a" rather than infinity or a placeholder.
- Some US-listed companies report in another currency. An indicator that would mix USD market data with statements in that currency needs a reliable exchange rate, and without one we do not recompute it. The drawer says "recompute unavailable without FX rate" rather than quietly showing a mis-converted figure.
- A figure with no meaning for the kind of company that filed it is refused, and the gate is the class of filer rather than its sector. No enterprise multiple is printed for a bank: borrowings and cash are what a bank sells rather than how it funds itself, so the multiple measures nothing. No price to earnings is printed for a property trust: the depreciation charged against those earnings is on buildings that mostly appreciate. Each one renders "not meaningful" and carries the sentence explaining why, and every surface shows that same sentence.
- Not meaningful and not available are two different answers and we never collapse them. A bank's operating margin is perfectly well defined and we do not hold the line it needs: that is "n/a", and looking harder would help. A bank's current ratio cannot exist, because an unclassified balance sheet has no current split: that is "n/m", and looking harder would not. There is a third way to lose that difference and it does not look like a blank at all: an exact 0 arriving where a line was simply absent passes every check, so the published distributions discard an exact zero rather than rank it.
Refused, ranked inside the class, or annotated
A ratio can be wrong for a company in three ways and each needs a different answer. The formula can be undefined, and then there is no number and printing one would be a lie: it is refused, as above. The formula can be sound while its scale is set by the business model, and then a percentile against the whole market is a category error: the figure is shown and ranked against its own company class instead. Or both can be sound while the reading is not obvious, and then the number carries a sentence next to it.
It is decided per figure and never per company, which is why a bank keeps an ordinary price to earnings while losing its current ratio, and why an insurer keeps the debt to equity a bank loses: an insurer's issued debt is ordinary debt, and a bank's deposits are its raw material rather than borrowing.
Mismatch badges
At full level the drawer checks the stored value against the one it just computed. More than 2% apart, or more than 0.5 points apart for the three score models, and the number carries a mismatch badge. Usually the cause is basis drift, the stored figure being trailing-twelve-month while the recomputation reads the latest annual statements, and the drawer says when that is what happened. A mismatch with no such explanation is a defect in our data, and you are meant to see it.
Where the data comes from
The fundamentals are the accounts companies file: annual and quarterly reports lodged with the regulator. Where we hold the identifier of the document a figure was read from, the source trail opens the filing itself. The markets covered are the markets listed at /markets.
Coverage runs in three tiers, counted live: a few thousand companies verified, more carrying market metrics only, the rest merely listed. Verified means the filed accounts are on disk and everything on this page applies to that company. Metrics only means there are indicator values with no filed statement behind them. Listed only means the ticker is searchable and nothing more. Every company page says which of the three it is, at the top, before you read a figure.
What we store
For a verified company: income statements, balance sheets and cash flow statements for every fiscal year the filings contain, ten years of them on screen; our own daily price archive, five years deep; trailing-twelve-month ratio snapshots; a profile with the sector, the exchange and the listing currency; and a market quote. Every statement row keeps its fiscal year, period, filing date and reported currency, which is what the drawer cites later. A series is as long as the filings make it. We do not pad it, interpolate it or extend it.
What we compute, and what we borrow
| Figure | Built from |
|---|---|
| Beta | Two years of weekly returns against SPY, in our own price archive |
| Returns, volatility, drawdown, 52-week range | The same archive. Each window is in the source trail |
| 10-year Treasury, CPI | Borrowed, and dated: the trail carries the day each was read |
| Exchange rates | Borrowed, and dated. Without one the figure is refused, never converted at a guess |
Which basis a figure is on
The same ratio can be built two ways: from the last four quarters of flow against the most recent quarter-end position, or from one fiscal year of flow against that year's own closing position. They are not the same measurement and the name does not distinguish them, so we do. Where a published trailing-twelve-month figure exists the pipeline prefers it, and where none exists it recomputes from the newest filed year. Which of the two produced any particular value is on that figure's source trail, and the screener reports a basis for every field it filters on: as of a filing, as of the market, or from a vendor.
The two clocks are the reason it matters. Anything built on a quote changes when the market changes and the business has done nothing; anything built on the accounts changes when a document is lodged. That is why a company page carries the price date and the compute date as two separate facts, and never as one.
Retired figures
Three figures left on 11 September 2026: the data vendor's discounted cash flow value, the margin of safety measured against it, and Forward P/E on analyst consensus. None of them could be replayed from a filing, which is the whole test. A saved screen or a guardrail written on one still runs, and tells you which line it dropped.
The nightly pass
Every night, in this order (UTC):
| Time | Job |
|---|---|
| 21:30 | Quotes and market capitalisations, after the US close in both seasons |
| 21:50 | Splits confirmed, per symbol, against our own closes |
| 22:00 | The day's bar into our own price archive |
| 22:05 | 10-year Treasury and CPI |
| 22:15 | Declared dividends |
| 22:20 | Company profiles, on a 90-day rotation |
| 22:30 | New filings read, statements ingested |
| 22:40 | Current-report events for companies under thesis |
| 22:50 | Trailing-twelve-month inputs topped up |
| 23:00 | Every derived figure recomputed |
| 23:30 | Every guardrail re-tested against the result |
| 23:45 | Every saved screen re-run |
| 23:50 | Peer distributions rebuilt |
Weekly: the market calendar and the listed universe on Sunday, split and dividend histories on Saturday and Sunday.
A company page carries two dates, never one. When the price was taken, and when the figures were computed. A recompute is not a fresh quote and collapsing the two into one date would let a stale price hide behind a recent calculation. A price more than a week old says so on the page.
What happens when a fetch fails
Each kind of data is fetched and validated on its own. A failed or malformed response is thrown away and what was already stored stays exactly as it was: an error never overwrites a good statement. If an input an indicator needs is missing, the indicator is stored empty. Never zero, never an estimate.
The composite score
A company is scored on up to over 100 indicators. Each one becomes a percentile from 0 to 100 against the rest of the scored universe, so the number always means the same thing: where this company stands against everyone else we cover. The direction is built in, a lower P/E ranking higher and a higher return on capital ranking higher, and every indicator's population is winsorized at the 1st and 99th percentiles so one extreme company cannot bend the scale for the rest.
A pillar is the plain average of the indicator percentiles available in it. A missing indicator is left out of that average rather than counted as zero, so nobody is punished for a statement their market does not ask for, and a pillar with no indicator we could rank is left out of the composite the same way. The composite is the weighted average of the pillars that scored, on the weights the engine holds. They sum to 100%, and the backend refuses to start if they do not:
| Pillar | Weight | What it asks |
|---|---|---|
| Value | 35% | What you pay against what the business earns, owns, and generates: price ratios, enterprise multiples, yields, and intrinsic-value gaps. |
| Quality | 30% | Returns on capital, margin structure, cash conversion, and the consistency of all of these over time. |
| Health | 15% | Balance-sheet integrity: leverage, liquidity, coverage, and the three forensic scores below. |
| Growth | 12% | Revenue, earnings, cash-flow, book-value, and dividend growth over one, three, and five years. |
| Risk | 8% | Volatility, drawdown, debt service, capital intensity, cost structure, and payout sustainability. |
The composite opens into the five pillars, and each pillar into the indicators behind it, so you can argue with the rank rather than take it.
When no score is published
For a bank, an insurer, a broker or a mortgage REIT the forensic trio was never defined, invested capital is not a meaningful base and neither is enterprise value. Five of the inputs are gone, so no score is published for those companies and a sentence stands in its place. The temptation the rule resists is renormalising: computing the score over the inputs that survived and rescaling it to look like the same score. That would be a different statistic under the same name, plotted on the same axis as everybody else's, and it is worse than a blank, because a blank tells the reader something is missing.
The composite applies the same rule to its pillars. A pillar with no indicator we could rank is left out and the others are averaged on their own weights, which is still the same measurement while the pillars that scored carry most of the weight. Below 80% of it, no composite is published and the company has no rank: averaged over what survived, a company read on its risk pillar alone would carry that one percentile as its whole score.
The same discipline applies to the cohorts a percentile is taken over. Fewer than 30 comparable companies with the figure on file and the percentile is refused rather than computed, because a percentile over a handful of companies is noise wearing a number.
The business quality score
A second score, built the opposite way round. The composite above is a percentile of percentiles: it moves when other companies move, and no filed statement stands behind the rank itself. This one is 6 named tests against fixed lines read off the accounts, the shape Piotroski used in 2000. Same accounts, same score, whatever the rest of the market is doing that week.
Clear a line, earn that test's weight. The weights sum to 100, asserted at import, and the entire model is in the table below. Nothing about it is held back. The model is not the product; the answer it computes for a company is.
| Test | Reads | Line | Weight | Whose number |
|---|---|---|---|---|
| Returns on capital | Return on capital employed, pre-tax | at least 12% | 25 | Ours |
| Margin stability | Gross margin stability | at most 3.0 points | 15 | Ours |
| Cash conversion | Free cash flow conversion | at least 0.8x | 20 | Ours |
| Balance-sheet strength | Debt to equity | at most 1.0x | 15 | Ours |
| Earnings quality | Cash backing of earnings | at least 1.0x | 15 | Ours |
| Reinvestment need | Capital spending share of cash flow | at most 50% | 10 | Ours |
Every line is ours, which is what the last column says on all 6 rows. Nobody published a business-quality score, so there is no author to borrow the numbers from. What the named investors published are the ideas the tests follow. Here is where each line comes from and what choosing it costs.
- Returns on capital: Does the business earn more on the capital it employs than that capital costs?
- After Damodaran's annual global cost-of-capital dataset, which puts the mature-market figure near 8 percent.Twelve leaves four points over that estimate, because the estimate is an estimate. It is the strictest of the six lines and carries the largest weight, and under a fifth of the companies we hold the figure for clear it.
- Margin stability: Has the gross margin stayed in one place across the filed years?
- After Buffett's durable competitive advantage, argued in the 1991 and 1992 letters to shareholders as pricing power that holds through a cycle.The figure is the standard deviation of the annual gross margin over the years on file, in percentage points, so three means the margin stayed inside a three-point band around its own average. A filer that reports no gross profit line has no such figure and this test is not run on it, which is why a bank, an insurer and Visa are all refused the score rather than given one.
- Cash conversion: Does the reported profit arrive as cash?
- After Buffett's 1986 letter and its appendix on owner earnings, which separates the profit a company reports from the cash it produces.Free cash flow over net income, both from the latest filed year. Eight tenths is the same line the metric registry already publishes as the edge of 'most profit arrives as cash'. The test is not run in a year of losses, because a loss divided by a loss is a positive ratio and would read as a pass.
- Balance-sheet strength: Is the company financed so that a bad year is survivable?
- After Graham's defensive-investor test in chapter 14 of The Intelligent Investor, that long-term debt should not exceed net current assets.Total debt at or below book equity. It stands in for his test rather than restating it: net current assets are not defined for a filer with an unclassified balance sheet, and debt to equity is. An exact zero is a real reading here and earns the weight, because a company can genuinely carry no debt.
- Earnings quality: Is the profit backed by the cash the business actually collected?
- After Sloan (1996), The Accounting Review, on the accrual component of earnings and what it predicts about the year after.Operating cash flow at or above net income, so the year's profit was collected rather than accrued. Sloan ranked companies into deciles and published no line; one is the natural one, because it is the point where the two are equal. Not run in a year of losses, for the same reason as cash conversion.
- Reinvestment need: How much of the cash it earns has to go straight back into the assets?
- After Buffett's 2007 letter to shareholders, on the business that grows without demanding capital to do it.Capital expenditure at or below half of operating cash flow. It is the loosest of the six and carries the smallest weight for exactly that reason: four fifths of the companies we hold it for clear it, and it separates a utility from a software company and little else. A negative reading means operating cash flow was negative, and the test is refused rather than passed.
What happens when a test cannot be run
It scores nothing, not zero, and there is no total. We do not publish a partial score. A test we cannot measure is not a test the company failed, and scoring the two the same way is a claim about a business made on evidence we do not have. The tests that did not run are named on the company's page with the reason for each.
There are two reasons and they mean different things. Either the test is undefined for that kind of filer, as with a bank, which reports no gross profit and has no invested capital, so margin stability and return on capital do not exist for it rather than being withheld; five of these six tests do not run on a bank. Or we simply do not hold the figure yet, and the next filing may fix that.
A ratio to net income is refused in a loss year too. A loss divided by a loss comes out positive, so a company burning cash would clear a cash-conversion test it is failing in every sense that matters.
It measures an accounting record. It is not a grade, a rating or a recommendation, and nothing here sorts companies by it: no ranking, no screener column, no list of high scorers.
Finding companies
30 disciplines, 14 of them drawn from published work and 16 of them ours. Every test is printed before you run it, and where the number in it is ours rather than the author's it is marked OURS. Add any stored indicator as a filter. Results carry the forensic trio with them.
The forensic trio
Three published models, run on every company with enough filing history behind it. The formulas and coefficients are the ones in the papers. A few inputs are ours standing in for the paper's, operating income for EBIT in the Z-Score being the one worth knowing about.
Piotroski F-Score (Piotroski, 2000)
From "Value Investing: The Use of Historical Financial Statement Information to Separate Winners from Losers", Journal of Accounting Research. Nine binary accounting tests, one point each, separating a business that is improving from one that is deteriorating. All nine, as we compute them:
- Positive return on assets
- Positive operating cash flow
- Return on assets increasing year over year
- Operating cash flow exceeds net income (the accruals test)
- Leverage decreasing (long-term debt to total assets)
- Current ratio increasing
- No new shares issued (diluted weighted-average share count did not grow)
- Gross margin increasing
- Asset turnover increasing
We read 7 to 9 as strong, 4 to 6 as middling, 0 to 3 as weak. Where the prior year is missing, the year-over-year tests score zero and the drawer says that is what happened.
Altman Z-Score (Altman, 1968)
From "Financial Ratios, Discriminant Analysis and the Prediction of Corporate Bankruptcy", Journal of Finance. A weighted blend of five ratios, all scaled by assets or liabilities, built to estimate distress risk:
Z = 1.2 (WC/TA) + 1.4 (RE/TA) + 3.3 (EBIT/TA) + 0.6 (MktCap/TL) + 1.0 (Rev/TA)
| Zone | Threshold | Reading |
|---|---|---|
| Safe | Z > 2.99 | Distress unlikely on this model |
| Grey | 1.81 to 2.99 | Inconclusive; look at the balance sheet directly |
| Distress | Z < 1.81 | Elevated risk of financial distress |
Altman estimated the model on industrial firms. We do not run it on banks and insurers, whose balance sheets it was never built for. They show "not applicable" rather than a score that would mislead you.
Beneish M-Score (Beneish, 1999)
From "The Detection of Earnings Manipulation", Financial Analysts Journal. Eight indices that tend to move when earnings are being manipulated, combined as M = -4.84 plus the weighted indices below. It requires two consecutive fiscal years of statements. A score above -1.78 flags a possible manipulator; below it, manipulation is unlikely on this model.
| Index | Weight | What it watches |
|---|---|---|
| DSRI | +0.920 | Days sales in receivables index: receivables growing faster than sales |
| GMI | +0.528 | Gross margin index: margin deterioration versus the prior year |
| AQI | +0.404 | Asset quality index: growth in soft, non-current, non-PP&E assets |
| SGI | +0.892 | Sales growth index: high growth as pressure to manipulate |
| DEPI | +0.115 | Depreciation index: a slowing depreciation rate |
| SGAI | -0.172 | SG&A index: overhead growing against sales |
| TATA | +4.679 | Total accruals to total assets: earnings not backed by cash |
| LVGI | -0.327 | Leverage index: rising debt against the prior year |
None of the three proves anything. They tell you what to read first.
Valuation: the DCF workbench
A two-stage discounted cash flow model, kept simple on purpose, with every assumption in it yours to edit. Stage one grows the starting free cash flow at one rate over the horizon you choose and discounts each year back to today. Stage two is a terminal value from the Gordon growth formula. Subtract net debt, divide by diluted shares, and that is the per-share figure. Around it sits a sensitivity grid across a range of growth and discount rates, because the honest output of a DCF is a region and not a point.
The simplifications, explicitly
- One constant growth rate for the whole explicit stage; there is no fade path from high growth to terminal growth.
- One discount rate for every year and both stages. You enter it directly; the workbench does not compute a WACC for you.
- The terminal value is a Gordon growth perpetuity, so the discount rate must exceed the terminal growth rate; a large share of the result usually sits in this single term, and the workbench shows you that share.
- The starting free cash flow defaults to the latest annual cash flow statement; it is a single base year, not a normalized or cycle-adjusted figure. You can and should edit it.
- The equity bridge subtracts net debt from the most recent balance sheet, with no seasonal or intra-year adjustment.
- The share count is the current diluted count, held fixed; future dilution and buybacks are not modeled.
- No mid-year discounting convention, no scenario weighting, no sector-specific adjustments.
Versions
Save a set of assumptions as a named version and it keeps the complete inputs, the per-share value they produced and the time you saved them. The panel shows which assumptions differ from the ones on screen now. Six months later you can see what you thought and what you changed.
No fair value of ours
Every valuation on this site is one you run on your own assumptions: the workbench above and the earnings power value page beside it. We publish no fair value or price target of our own for any company. One of ours stood beside the price from 1 to 3 October 2026 and was withdrawn.
A value here is arithmetic on your assumptions, which is why the grid matters more than the single number in the middle of it. It is not a prediction and it is not advice.
Monitoring: how assumptions are watched
A thesis writes its assumptions down as conditions that can be tested: an indicator, a direction and a threshold, phrased as what has to stay true for the thesis to hold. Return on invested capital stays at or above 20%, for instance. At 23:30 UTC, after the night's refresh and recomputation, every active condition is tested again against the newest values.
- Margin of safety is yours. Your value minus tonight's close, over your value. Your value is the thesis target price, or your latest saved discounted cash flow, and the rail says which of the two it used.
- Fire once. One email the day a condition breaks. While it stays broken, silence. You already know.
- Quiet recovery. When the value comes back inside your threshold, a note goes to your inbox, no email, and the rail re-arms for the next breach.
- Data gaps never fire. No value for an indicator on a given day means the check is skipped and the state is left alone. A missing number is something wrong with our pipeline, not evidence about your thesis, and it is not allowed to wake you up.
Which rules can be replayed over the filed years
A guardrail can be tested against the years a company has already filed, so you can see whether it would ever have fired before a single night has passed. That is only honest when the value for an old fiscal year is built with the same formula as the value shown for the latest one. If the old value has to be assembled from whichever line items happen to be tagged that year, the series being tested is not the series being shown: it carries the same name and it is a different statistic, and a threshold against it produces something that looks like evidence and is not.
So the test is offered on plain ratios whose two inputs appear on the face of almost any annual report, and refused everywhere else with the reason. Two kinds are refused. Anything that needs a quote cannot be rebuilt from an annual report, which carries no share price, and our own price archive is five years deep against ten years of accounts. And a composite, a score or an aggregate whose definition is a choice cannot be rebuilt one year at a time under one formula. The tool also reports how many fiscal years it evaluated and over what range, so a ten-year claim about a company with four years on file cannot be made by accident.
Limitations
Where this is weakest, written out at the same length as the rest.
- Currency conversion. A US listing can report in another currency, and some do. Statements are stored in the currency they were filed in, market data in USD, and we do not keep a full exchange rate history. A recomputation that would mix the two is refused rather than approximated.
- Not every listing is verified. A source trail, a recomputation and an overnight check all need the filed accounts on disk. The counts are printed live on the FAQ, and every company page states which group it is in before you read a single figure.
- Coverage varies within the market. Recent listings and small caps have thinner filing history, so some percentile ranks are computed against fewer peers than others.
- TTM against fiscal-year bases. A headline metric can be trailing-twelve-month while the recomputation behind it reads the latest annual statements. The two differ for good reasons, and that is what the mismatch badge and its drift note are reconciling.
- Upstream errors. Standardisation slips, mis-tagged line items and later restatements all happen before any of this reaches us. The drawer is the fastest way to check a number you doubt, and the link below is how you tell us.
- Refresh cadence. A filing is picked up the night after it is published. A price carries the date of the close it came from, which can be days old. When a refresh fails, both dates on the page age where you can see them.
- A ceiling on one night's ingest. The nightly poll ingests at most 400 companies, and a heavier filing day is carried over to the following night. Companies under a thesis are taken first, so a rule you wrote is not held up behind a company nobody is watching, but the ceiling is real and on the busiest days of the filing calendar it costs the rest a day.
Found something wrong? Report a data issue. We would rather show you a gap than paper over it.
Disclaimer
Nothing on this platform is a recommendation to buy or sell any security. Scores, valuations, and models are educational aids derived from third-party data that can contain errors or delays; verify figures against primary filings before relying on them. Investing involves risk, including loss of principal.