Scoring Engine How conviction, AI resilience, and financial health scores are computed

Platform Overview →

The pipeline uses a multi-layered scoring framework to evaluate investment opportunities. Every score is deterministic (reproducible from the same inputs), except AI Resilience which uses LLM-generated assessments calibrated against reference anchors.

How to read this guide

Each module page shows the components, formulas, thresholds, and data sources. Scores are 0–100 unless noted otherwise. All thresholds and weights are configurable via the score_config table.

Core Modules

Conviction Score
The primary investment signal. Four weighted dimensions: Fundamental, Thematic, Valuation, Catalyst. 0–100 composite with label thresholds.
AI Resilience
Five-dimension LLM-scored framework assessing how a company is positioned for AI disruption. Revenue Catalyst, Moat, OpLev, Pricing, Obsolescence.
Financial Strength
Balance sheet snapshot + three YoY trend signals. Sector-aware industry adjustments. 8 component ratios from quarterly financial data.
Signals & Trends
Estimate revisions, PE momentum, theme momentum, rating momentum, peer rankings, thesis consistency. TTL-based unified signal store.

Architecture Overview

conviction_scores (composite output)
  |
  +-- Fundamental (25%)
  |     beat_rate, surprise_quality, sentiment,
  |     estimate_trajectory, guidance, financial_strength
  |
  +-- Thematic (25%)
  |     ai_resilience, theme_health, peer_standing
  |
  +-- Valuation (25%)
  |     pe_percentile, peg, price_strength,
  |     net_debt_ocf (TTM, sector-aware),
  |     ev_fcf (TTM, sector-aware), pe_momentum
  |
  +-- Catalyst (25%)
        thesis_conviction (calibrated + penalty),
        rating_momentum, thesis_consistency

Data Flow

Raw data flows through three layers before reaching conviction scores:

Layer Source Output
Ingestion FMP, yfinance, SEC XBRL, Reddit, news APIs earnings_events, financial_health, companies, news_articles, analyst_ratings
Signals Ingested tables + LLM analysis ticker_signals, ai_scores, theme_momentum, peer_rankings, estimate_revisions
Scoring Signals + company data conviction_scores, investment_theses, earnings_previews

Configuration

All weights, thresholds, and labels are tunable at runtime via the score_config table without code changes:

Config Type Key Settings
conviction Dimension weights (default 25% each), label thresholds (Strong Buy ≥80, Buy ≥65, Hold ≥50), macro modifier toggle
ai_resilience Dimension weights (RevCat 25%, Moat 25%, OpLev 15%, Pricing 20%, Obsol 15%), label thresholds
financial_strength Industry adjustment factors (Energy 1.15, Utilities 1.15, Industrials 1.10)