Conviction Score Composite 0–100 investment signal across four weighted dimensions

The conviction score is the primary decision signal. It blends earnings quality, thematic positioning, valuation attractiveness, and catalyst credibility into a single number with a buy/hold/sell label.

Dimension Weights

DimensionDefault WeightFocus
Fundamental25%Earnings quality, estimate direction, financial health
Thematic25%AI resilience, theme momentum, peer standing
Valuation25%Relative P/E, leverage ratios, PE momentum
Catalyst25%Thesis conviction, analyst momentum, consistency

1. Fundamental (0–100)

Measures earnings quality, estimate direction, and overall financial health. Simple average of available components.

ComponentFormulaScale
Beat Rate EPS beats in last 4 quarters / 4 * 100 0 = never beat, 100 = always beat
Surprise Quality 50 + avg_surprise * 5 +10% avg surprise = 100, 0% = 50, -10% = 0
Sentiment (avg_sentiment + 1) * 50 Score -1..+1 mapped to 0..100
Estimate Trajectory 50 + revision_pct * 10 +5% NTM revision = 100, -5% = 0
Guidance Most recent guidance direction Raised = 80, Maintained = 50, Lowered = 20
Financial Strength Composite signal (see Financial Strength) 0–100 from snapshot + trends

2. Thematic (0–100)

Measures structural positioning: AI exposure, theme health, and competitive standing.

ComponentSourceDetails
AI Resilience AI Resilience composite 5-dimension LLM-scored, weighted composite (0–100)
Theme Health theme_momentum table 50 + accel_ratio - decay_ratio
Measures % of themes accelerating vs decaying
Peer Standing peer_rankings table Percentile composite across earnings quality, AI exposure, valuation, momentum

3. Valuation (0–100)

Lower valuations = higher scores. Uses TTM (trailing twelve month) aggregates for flow-based metrics and sector-aware leverage thresholds.

ComponentFormulaThresholds
PE Percentile % of peer group with higher forward P/E Cheapest in group = 100
PEG Ratio (3 - PEG) / 2 * 100 PEG 1 = 100, PEG 3 = 0
Price Strength price / 52w_high * 100 Near highs = high momentum
Net Debt / TTM OCF (cap - ratio) / cap * 100 Utilities/Energy/Industrials: cap=15x
Others: cap=10x
EV / TTM FCF (cap - ratio) / (cap - 15) * 100 Utilities/Energy/Industrials: cap=80x
Others: cap=60x
PE Momentum Velocity + acceleration from PE snapshots Compressing PE = high score, expanding = low. See Signals
Sector-Aware Leverage

Capital-intensive sectors (Utilities, Energy, Industrials) get wider thresholds for ND/OCF and EV/FCF because structural leverage is normal in those businesses. A utility at 9x ND/OCF isn't distressed—it's a regulated asset base financed at utility-grade rates.

4. Catalyst (0–100)

Measures forward-looking conviction quality, analyst sentiment, and thesis coherence.

Thesis Conviction (calibrated)

The raw LLM conviction score (0–10) is stretched and penalty-adjusted:

Step 1 — Piecewise scaling (stretch compressed 5–8 range)
≥8: 75 + (raw - 8) * 12.5 → 75–100
6–8: 40 + (raw - 6) * 17.5 → 40–75
4–6: 15 + (raw - 4) * 12.5 → 15–40
<4: raw * 3.75 → 0–15
Step 2 — Cross-signal penalties
Price below bear case target: -15 pts
Bearish analyst momentum + medium severity: -8 pts
High severity flags: -10 pts
Step 3 — AI Resilience modifier (continuous)
Modifier = 1.5 - (AI score / 100) * 0.9
Penalty = penalty * modifier
AI score 0 → 1.5x penalty, AI 60 → 1.0x, AI 100 → 0.6x

Other Catalyst Components

ComponentFormulaDetails
Rating Momentum 50 + net_upgrades * 5 +10 net upgrades = 100, -10 = 0
Thesis Consistency 100 minus penalties Deducts for: estimate vs conviction mismatch, price vs scenarios, peer rank divergence, thesis age. See Signals

Composite & Modifiers

Base composite = weighted average of available dimensions
(dimensions with no data are excluded, remaining weights renormalized)

AI Resilience "Proof Burden" Modifier

Applies only to software-adjacent companies where either revenue_catalyst or pricing_resilience < 70:

TierTriggerEffect
Existential Both AI dims < 50 Up to 20pt penalty; hard cap at 55 unless growth evidence is strong
Prove It Either AI dim 50–69 Up to 12pt penalty scaled by vulnerability and growth proof deficit

Label Thresholds

LabelScore Range
Strong Buy≥80
Buy≥65
Hold≥50
Underweight≥35
Sell<35