PillarWeightSourceStatus
Financial health30%SEC EDGAR / FMPlive · 6,404 scored Net & operating margin, leverage percentiles (sector pools); Altman-Z + Piotroski join as the details ingest fills them. Banks: Altman/margins excluded by rule, ROE/ROA substituted.
Disclosure quality20%SEC EDGARlive · 4,684 scored Filing timeliness (median lag from period-end to filing) and disclosure depth (years of filed history), from the filings feed. Cycle-position recency is deliberately not scored; genuine staleness is caught by the freshness gate.
Governance20%DEF 14A / Pay-vs-Performanceto build Board independence, pay ratio, say-on-pay.
Environmental15%EPA ECHO / TRI / GHGRPto build Facility violations & penalties via the FRS parent join — a transparent proxy, not a black-box rating.
Growth & momentum10%SEC EDGARlive · 4,391 scored 3-yr revenue CAGR, YoY, growth stability — computed from filed history.
Scale & stability5%FMPlive · 9,851 scored Market cap, headcount, listing tenure percentiles.
Rules: metrics are sector-percentile-ranked (pool ≥ 30, else all-companies); a pillar needs ≥2 resolved metrics; the composite requires Financial Health plus ≥45 weight coverage and is labeled provisional until Disclosure Quality ships. Stale filers (>455 days without an annual filing) lose FH/GM from the composite — the staleness itself will score in Disclosure Quality. Weight changes require a new version with a changelog.
Live composite distribution
Composite counts by decile. Small pools skew percentiles — coverage grows nightly with the ingest.
Changelog · v0.1
v0.1: FH+GM+SS live (45 wt); DQ/GV/EN pending. Gate set to 45 (not 50) so v0.1 composites render as provisional until DQ ships — see docs/EA_SCORE.md. DQ pillar activated 2026-07-06 (filing timeliness + disclosure depth) — composite coverage now up to 65 weight for full filers; GV/EN still pending.
The validation promise
Once filing history accumulates, we will backtest pillars against observable outcomes — delistings, restatements, going-concern flags — and publish the result either way. A score you can't audit is marketing; this one links every sub-score to the filing behind it.