Piotroski F-Score, Altman Z, Beneish M: SEC XBRL, No API Key
Pricing
from $4.00 / 1,000 company scoreds
Piotroski F-Score, Altman Z, Beneish M: SEC XBRL, No API Key
Enter tickers or CIKs and get one row per company with Piotroski F, Altman Z'/Z'' (book equity), and Beneish M, computed from official SEC XBRL with the exact tags used and a data-completeness %. No key needed. You only pay when a score is computed. Not investment advice.
Pricing
from $4.00 / 1,000 company scoreds
Rating
0.0
(0)
Developer
Joel Sumner
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Security
Limited permissionsShare
Piotroski F-Score, Altman Z'/Z'' & Beneish M-Score by Ticker — SEC EDGAR XBRL, No API Key
Stock fundamentals screener for financial-distress and earnings-manipulation risk, computed straight from official SEC EDGAR XBRL filings. The Altman score is the book-equity Z'/Z'' variant (no market prices) — see the caveat below.
Give it a list of tickers or CIKs. You get one row per company with Piotroski F-score (0–9, all 9 flags), Altman Z'/Z'' book-equity score (altman_z_book, Z' for manufacturers, Z'' otherwise; model in altman_model) and its zone — this is NOT classic market-value Z; do not apply the 1.81/2.99 cutoffs, Beneish M-score with a manipulation flag, plus data-completeness %, missing_fields, the XBRL tags_used for each input, the fiscal period ends, and a plain-English explain line.
Source: SEC's official data.sec.gov/api/xbrl/companyfacts and submissions (for SIC). No API key. Deterministic formulas, no LLM.
Raw SEC facts vs computed scores
| SEC EDGAR financials Actors | This Actor | |
|---|---|---|
| Output | raw XBRL facts / filings | Piotroski F (9 flags), Altman Z'/Z'' + zone, Beneish M + flag |
| Fiscal-year alignment, tag variance, restatements | you handle it | handled; tags_used shows every tag |
| Missing data | silent | data_completeness_pct, missing_fields, partial F, beneish_confidence |
| API key | varies | none |
Why
Other SEC actors return raw facts. To get F, Z or M from them you still have to align fiscal years, deal with tag variance (Revenues vs RevenueFromContractWithCustomer…, ProfitLoss vs NetIncomeLoss) and handle restatements. This actor does that and tells you exactly which tag it used and what was missing.
Formulas
- Piotroski F uses the two most recent annual filings (10-K, 10-K/A, 20-F, 40-F, with ~365-day durations, latest restatement wins). The tests are ROA>0, CFO>0, ΔROA>0, CFO/A>ROA, Δleverage≤0 (long-term debt / assets; if LTD is not tagged in either year — after trying LongTermDebtNoncurrent, LongTermDebt, LongTermDebtAndCapitalLeaseObligations, then DebtInstrumentCarryingAmount — the test is null, never treated as zero debt), Δcurrent ratio>0, no share dilution (basic weighted shares ≤ +0.5%), Δgross margin>0 and Δasset turnover>0. ROA uses beginning-of-year assets. If any test can't be computed,
piotroski_fis null andpartial_scoreplustests_availableare reported. - Altman: we don't use price data, so the market-value Z isn't available. SIC 2000–3999 uses Z' = 0.717X1+0.847X2+3.107X3+0.420X4+0.998X5, with zones safe >2.9 and distress <1.23. Everything else uses Z'' = 6.56X1+3.26X2+6.72X3+1.05X4, with zones safe >2.6 and distress <1.1. X4 = book equity / total liabilities. Banks and insurers (SIC 6000–6799) are flagged
not_meaningful_for_financials. - Beneish M (8-variable) = −4.84+0.92DSRI+0.528GMI+0.404AQI+0.892SGI+0.115DEPI−0.172SGAI+4.679TATA−0.327LVGI. A score above −1.78 gets the flag
likely_manipulator_zone. If DEPI or SGAI is missing, it is set to a neutral 1, listed inimputed_neutral, noted inexplain(e.g. "SGAI imputed") andbeneish_confidenceisreduced(elsefull). TATA = (net income − CFO) / total assets — the common cash-flow variant, not Beneish's original balance-sheet accruals. LVGI is null (M null) when long-term debt is untagged. If any other variable is missing, M is null. - Fallbacks: gross profit = revenue − cost of revenue; liabilities = assets − equity; EBIT = pretax income + interest expense. Each fallback is shown in
tags_used.
Example input
{"companies":["AAPL","F","0000789019"],"userAgentEmail":"you@example.com"}
Output sample (MSFT, live smoke, trimmed)
{"ticker":"MSFT","cik":"0000789019","piotroski_f":6,"altman_model":"Z''","altman_z_book":4.593,"altman_zone":"safe","beneish_m":-2.6647,"beneish_confidence":"reduced","beneish":{"imputed_neutral":["SGAI"]},"data_completeness_pct":94,"missing_fields":["sga"],"explain":"... SGAI imputed ..."}
All input options
companies (array of tickers or CIKs), userAgentEmail (required by SEC fair-access policy). Requests are capped at 8/s.
Output (key fields)
piotroski_f(null unless all 9 tests computable),piotroski.partial_score,piotroski.tests_available,piotroski.componentsaltman_model(Z'orZ''),altman_z_book(book-equity Z'/Z''),altman_z(deprecated alias ofaltman_z_book, same book-equity value — not market Z),altman_zonebeneish_m,beneish_flag,beneish_confidence(full/reducedwhen DEPI/SGAI imputed),beneish.imputed_neutral,beneish.tata_definitiondata_completeness_pct,missing_fields,tags_used,explain
Pricing (pay per event)
$0.00005 per actor start + $0.004 per company with at least one computed score — i.e. charged when any one of F/Z/M is computed. Example: Ford returns a partial F (8 of 9 tests, LTD untagged) plus Z' 0.69 and null M → charged once, $0.004. Unknown tickers, companies without XBRL, and rows with no score are free.
Limits
- Data comes only from XBRL as filed. Companies that use unusual custom tags can come back partial.
- A newly re-registered holding company (e.g. XOM's ticker now maps to a 2026 holding-company CIK) may have no annual history yet. Pass the predecessor CIK instead.
- Captive finance arms (F, GM, CAT): the SIC is non-financial but consolidated finance receivables/debt distort Z'/Z'' and leverage; treat those scores as weak.
- Energy and financial filers often omit GrossProfit, so GMI/gross-margin tests (and M) can be null.
- Not investment advice. Not affiliated with the SEC.
Disclaimer
Scores are mechanical calculations from SEC XBRL filings for research and screening. Not investment advice; not affiliated with the SEC. Altman here is book-equity Z'/Z'', not market-value Z.
More Actors by willed_nursery
- Healthcare credentialing pair: NPI Roster Validator ↔ OIG LEIE Screener
- KYB/lead: Domain Contact Enricher
- IP docket: USPTO Trademark Deadlines
- Financial risk: SEC Health Score