Alan Scores Methodology

Five transparent 0-100 scores that measure what actually drives long-term equity returns: capital efficiency, valuation, risk, durable advantage, and where a stock sits in its cycle. Every weight is published. Every formula is here. Nothing is smoothed or fabricated.

Alan Quality ScoreAlan Value ScoreAlan Risk ScoreAlan Moat ScoreAlan Cycle Score

Alan Quality Score

Capital efficiency + margin strength, sector-relative.

Direction: higher is betterRange: 0 (lowest quality) – 100 (highest quality)

The Alan Quality Score measures how efficiently a business turns invested capital into profit. We weight return-on-capital metrics most heavily because, over long horizons, a company's ROIC trajectory is the single best predictor of shareholder returns. Each raw component is ranked within its GICS sector so a 50% gross margin means different things in software versus grocery retail. Loss-making companies (negative ROIC, negative equity) are floored to 0 on the affected component — we do not smooth over losses with averages.

Component Weights

Return on Invested Capital (ROIC)30%
Return on Equity (ROE)15%
Gross Margin15%
Operating Margin15%
Net (Profit) Margin10%
Current Ratio5%
Debt/Equity (inverse — lower leverage scores higher)10%
Total100%

Data Sources

  • SEC EDGAR 10-K / 10-Q company facts (financial statements)
  • Trailing twelve months, refreshed nightly from our SEC ingestor
  • Sector classification via GICS (from SEC filings)

Alan Value Score

Cheapness vs sector peers across five classic multiples.

Direction: higher is betterRange: 0 (most expensive) – 100 (cheapest)

The Alan Value Score flips the classic "lower is better" multiples into a 0-100 "cheapness" ranking. We use sector-relative percentile ranking — a P/E of 15 earns a very different value score in consumer staples (where it's cheap) than in tech (where it's average). Non-positive multiples (loss-making P/E, negative book value P/B) score 0 because the ratio is undefined or meaningless. Cohort-aware recipes: a single one-size-fits-all multiple blend silently mis-scores REITs (where P/FFO is the right multiple), commercial banks (no meaningful EV/EBITDA — banks don't report EBITDA), and pre-revenue tech/biotech (where P/E and PEG zero-floor because EPS is negative, draining 45% of weight before scoring begins). The Value Score now classifies each ticker by cohort and applies a cohort-specific recipe: * Default (multi-sector, profitable): P/E 30%, EV/EBITDA 25%, P/B 15%, P/S 15%, PEG 15% * REIT: P/FFO-proxy 35%, CapRate-proxy 25%, Dividend Yield 20%, P/S 20% * Bank: P/TBV-proxy 40%, P/E 30%, Dividend Yield 20%, P/S 10% * Pre-revenue: EV/Sales 45%, P/S 30%, FCF-runway 25% The weights below describe the default recipe. The cohort chip on the breakdown page tells you which recipe actually produced the score for the ticker you're viewing.

Component Weights

Price / Earnings (trailing)30%
EV / EBITDA25%
Price / Book15%
Price / Sales15%
PEG Ratio15%
Total100%

Data Sources

  • Live market data from our quotes cache (refreshed intraday)
  • TTM earnings, sales, EBITDA from SEC EDGAR financial facts
  • Forward estimates (for PEG) from analyst consensus feed

Alan Risk Score

Total-risk profile — higher score means MORE risk.

Direction: lower is betterRange: 0 (low risk) – 100 (high risk)

The Alan Risk Score is the only Alan Score where higher means worse. We blend a realized-volatility proxy (the sector-relative rank of |1-year return| — big absolute moves in either direction signal high realized vol) with balance-sheet risk (leverage, liquidity, Altman-Z) and market risk (beta distance from 1.0, ranked sector-relative so 3× leveraged ETFs and meme stocks don't saturate into the same bucket). Negative Altman-Z or negative equity flag the affected component at maximum risk. Methodology note — Wave 2 audit: we previously carried a "Max drawdown inverse (% from 52-week low)" component at 20% weight. That was a quality signal, not a risk signal — a recently-rallied stock scored as LOW risk and a recently-plunged stock as HIGH risk, which inverts real mean-reversion risk. We removed it and redistributed its weight (+10 to the realized-vol proxy, +5 to debt/equity, +5 to beta distance). We also replaced the hard-capped "|β-1|·50 (saturated at 2)" beta formula with a sector-relative percentile rank of |β-1| so extreme-beta names keep ranking higher as they get more extreme.

Component Weights

Realized-volatility proxy (|1-year return|, sector-relative rank)40%
Debt / Equity25%
Current Ratio inverse (low liquidity = high risk)10%
Beta distance from 1.0 (|β-1|, sector-relative rank)15%
Altman-Z inverse (low Z = high bankruptcy risk)10%
Total100%

Data Sources

  • Price history from our quotes cache (daily bars)
  • Altman-Z computed from SEC EDGAR balance-sheet facts
  • Beta computed against SPY over trailing 5-year window

Alan Moat Score

Durable competitive advantage — the hardest thing to fake.

Direction: higher is betterRange: 0 (no discernible moat) – 100 (fortress moat)

The Alan Moat Score tries to quantify something that's notoriously hard to measure: whether a company has a durable competitive advantage that will let it earn above-average returns on capital for years. We lean heavily on sustained ROIC (as the arithmetic fingerprint of a moat), gross-margin strength (pricing power), operating leverage, revenue per employee (productivity moat), scale within the sub-industry, and a cash-flow-margin proxy for brand / intangibles. A true moat should leave tracks across all six — scoring highly on just one or two is suspicious. Methodology notes — Wave 2 audit: • Revenue per employee is ranked sector-relative (a percentile inside the company's GICS sector), not on a hard-coded absolute log scale. The previous absolute scale ($1M per employee → 100, $100k → 0) made it structurally impossible for retailers, restaurants and other labor-heavy business models to score above ~30 regardless of their competitive position. • The size component is ranked against the company's sub-industry (Prisma `industry` field) rather than its sector, and is dampened: everything above the sub-industry median is compressed to 100. This blunts the mega-cap size bonus that used to pile on top of ROIC (35%) + FCF-margin (10%) — all three positively correlate for the largest names, which was compressing scores at the top of the universe.

Component Weights

ROIC (5-year average proxy)35%
Gross margin strength20%
Operating margin15%
Revenue per employee (sector-relative rank)10%
Size within sub-industry (market-cap rank, dampened above median)10%
Brand / intangibles proxy (FCF margin)10%
Total100%

Data Sources

  • SEC EDGAR 10-K company facts (5 years of financials)
  • Employee counts from 10-K cover-page disclosures
  • Market cap from our quotes cache

Alan Cycle Score

Where this ticker sits in the business cycle — lower = earlier, potentially more attractive.

Direction: lower is betterRange: 0 (early cycle, attractive) – 50 (mid cycle) – 100 (late cycle, extended)

The Alan Cycle Score is a positional indicator, and for display purposes lower is better: 0 means the ticker looks like an early-cycle recovery candidate (out of favor, off its lows) which is typically the most attractive entry window; 50 means it's running in the fat middle of its cycle; 100 means it's extended and late-cycle, where mean-reversion risk rises. We use the ticker's 1-year return rank within its sector plus distance from the 52-week low. A high Alan Cycle Score is NOT an automatic sell signal — many late-cycle names continue to grind higher — but it's an input to position-sizing and a warning not to buy at any price.

Component Weights

1-year return sector rank70%
Distance above 52-week low30%
Total100%

Data Sources

  • Daily close prices from our quotes cache
  • Sector classification via GICS

Known Limitations

  • Sector-relative ranking means a high Quality Score in a low-quality sector is still just a high-quality name within a weak group.
  • Value scores penalize loss-making tickers (P/E is meaningless when earnings are negative). That's by design.
  • Risk and Cycle scores use a 1-year-return-magnitude proxy for volatility until per-ticker daily volatility is wired into the ScreenerStock cache.
  • Moat Score uses current ROIC as a proxy for the 5-year average until historical ROIC series are ingested.
  • Scores are recomputed daily after the screener refresh. Intraday price movements do not update the score until the next run.
Alan Scores are not investment advice. They are quantitative signals intended to be used alongside your own fundamental and technical analysis. Browse the Top 20 Alan Quality, Top 20 Alan Value, and Top 20 Alan Moat leaderboards.