Forensic scores
Z-Score financial analysis: 172 agree
Z-Score financial analysis alongside Piotroski and Beneish: of 3,162 US listings carrying all three on 2026-09-07, 1,915 are flagged by one and 172 by all.
By Javier SanzPublished Updated : The price-staleness sentence is removed, because it was false. It said every price here was more than seven days old and that the market data had last been refreshed on 2026-08-26; the refresh ran on 2026-09-11 and the sentence went on saying otherwise, as a computed fact typed into prose will. The scope caveat it sat in is unchanged, and the build date on the counts is unchanged at 2026-09-07.
Founder of ValueScreener. Built Ninety Nine, a securities services provider, and sold it to a tier-one global bank; ran operations and internationalization at Alpaca, the brokerage API.
Who writes thisEditorial processLinkedIn (opens in a new tab)X (opens in a new tab)
On 2026-09-07, 3,162 US listings carried a Piotroski F-Score, an Altman Z-Score and a Beneish M-Score at the same time. Applying each model's own threshold, 1,915 of the 3,162 are flagged by at least one of the three and 172 are flagged by all three.
The individual flags first:
| Flag | Threshold | Listings | Share of 3,162 |
|---|---|---|---|
| Piotroski weak | F-Score at or below 3 | 870 | 27.5% |
| Altman distress | Z at or below 1.81 | 1,460 | 46.2% |
| Beneish flagged | M at or above -1.78 | 644 | 20.4% |
Counting how many models fire on each listing:
| Flagged by | Listings |
|---|---|
| Nothing | 1,247 |
| Exactly one of the three | 1,028 |
| Exactly two | 715 |
| All three | 172 |
| Total | 3,162 |
Counted with POST /api/screener/search on 2026-09-07. The public endpoint reports at most fifty matching rows, so a query that comes back under fifty is reporting a true count. The pool was split by sector and then by market capitalisation until every part came back under fifty, and the parts were added. Every
count is over listings holding all three scores. The four classes in the second
table are derived from eight separately counted sets and add back to 3,162,
which is a check on the arithmetic rather than an assumption of it.
The three models are measuring three different things
That is the correct reading of the table and it is worth stating plainly, because the usual framing of these scores as a "forensic dashboard" implies they corroborate each other.
More listings are flagged by exactly one model, 1,028, than by two or three combined, 887. If the three were pointing at the same underlying condition, the opposite would be true.
They are not independent either. Multiply the three flag rates together and apply them to 3,162 and you would expect about 82 listings flagged by all three if the models were unrelated. The observed number is 172, roughly twice that. So there is real positive association and it is nothing like agreement.
Which pairs overlap, and why the answer makes sense
| Pair | Overlap | Share of the smaller flag |
|---|---|---|
| Piotroski weak and Altman distress | 602 | 69.2% of the 870 |
| Altman distress and Beneish flagged | 367 | 57.0% of the 644 |
| Piotroski weak and Beneish flagged | 262 | 40.7% of the 644 |
Piotroski and Altman overlap most, and the mechanism is visible in the formulas. Piotroski's first four signals are positive return on assets, positive operating cash flow, rising return on assets, and operating cash flow above net income. Altman's heaviest-weighted term is EBIT over assets. Both models are asking, with most of their weight, whether the company is profitable relative to its asset base. A company that is not fails both, and that is arithmetic rather than corroboration.
Beneish overlaps least with Piotroski. That is what you would want, because Beneish is the only one of the three asking whether the reported numbers are what they appear to be rather than whether they are good. Its largest coefficient is on total accruals to total assets, and its second largest is on sales growth, so its worst-scoring profile is a fast-growing company whose profit has not turned into cash. Piotroski's worst-scoring profile is a shrinking, unprofitable one. Those are close to opposite companies.
What the overlap does not license
The tempting next step is a composite: flagged by two of three, or by all three, as a stronger signal than any one alone. There are two reasons this page does not build one.
The base rates make the arithmetic worse than it looks. Altman's flag fires on 46.2 percent of this population. A screen that requires two of three will, in practice, require Altman plus one other most of the time, so the composite inherits most of Altman's specificity problem. A distress label carried by nearly half a population is not a filter, and combining it with a second filter does not repair it.
None of the three models was validated as an ensemble. Each was published with its own sample, its own period and its own accounting regime, and each reports its own error profile for its own threshold. A combination of the three has no published error profile at all, because nobody estimated one. A composite built by stacking thresholds looks more rigorous than any single score and carries less evidence than any of them.
The honest use of the table above is as a reading order, not as a verdict. A company flagged by all three has three separate reasons to be read before a company flagged by none, and that is the whole of what the count supports.
The population this is computed over
On 2026-09-07, 3,162 listings held all three scores. The pool held 5,257 that day, and each score separately was stored for more listings than the intersection: 5,083 held a Piotroski, 4,277 a Beneish and 3,441 an Altman. The intersection is smaller than any of them, and the binding constraint is Altman, which needs five terms including a market capitalisation and a revenue line.
The 3,162 also include listings whose scores the product would refuse to display on their own company pages. All three models excluded financial firms, and the product withholds them for banks, insurers, brokers and property trusts, but a screener filter matches the stored column before that gate runs. So this cross-tabulation contains companies that none of the three models applies to, and a cleaner version would exclude them. The reason it is published this way is that the exclusion is by filed industry class rather than by sector, and the public screener cannot filter on industry class.
What this leaves out
Every count is of listings in the pool as it stood on 2026-09-07, not deduplicated companies, and includes listings for which the product declines to display one or more of the three scores.
The three thresholds are the models' own published cutoffs: Piotroski's weak band is the scores below 4, Altman's distress zone is below 1.81, and Beneish's flag is above -1.78. Two of the three are applied here inclusively, at or below 1.81 and at or above -1.78, which shifts each count by whatever number of listings sits exactly on the boundary.
A flag is not a finding about any company. In particular a Beneish flag is not evidence of manipulation, of fraud or of any wrongdoing, and no company is named on this page.
The independence comparison is arithmetic on three observed rates, not a statistical test. It says what the all-three count would be if the flags were unrelated, nothing more.
The Altman Z-Score contains a market capitalisation term, so it moves with the price the 2026-09-07 build used, and the counts above move with it. The other two are computed from filings alone.