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.
Capital efficiency + margin strength, sector-relative.
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.
| Return on Invested Capital (ROIC) | 30% |
| Return on Equity (ROE) | 15% |
| Gross Margin | 15% |
| Operating Margin | 15% |
| Net (Profit) Margin | 10% |
| Current Ratio | 5% |
| Debt/Equity (inverse — lower leverage scores higher) | 10% |
| Total | 100% |
Cheapness vs sector peers across five classic multiples.
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.
| Price / Earnings (trailing) | 30% |
| EV / EBITDA | 25% |
| Price / Book | 15% |
| Price / Sales | 15% |
| PEG Ratio | 15% |
| Total | 100% |
Total-risk profile — higher score means MORE 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.
| Realized-volatility proxy (|1-year return|, sector-relative rank) | 40% |
| Debt / Equity | 25% |
| 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% |
| Total | 100% |
Durable competitive advantage — the hardest thing to fake.
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.
| ROIC (5-year average proxy) | 35% |
| Gross margin strength | 20% |
| Operating margin | 15% |
| Revenue per employee (sector-relative rank) | 10% |
| Size within sub-industry (market-cap rank, dampened above median) | 10% |
| Brand / intangibles proxy (FCF margin) | 10% |
| Total | 100% |
Where this ticker sits in the business cycle — lower = earlier, potentially more attractive.
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.
| 1-year return sector rank | 70% |
| Distance above 52-week low | 30% |
| Total | 100% |