Framler score (composite)
Engine conceptsFramler score is a 0–100 composite number summarising how attractive a stock looks across 13 academic factor families — quality, value, momentum, post-earnings drift, accruals, insider flow, and others. 50 means neutral; above 60 is the buy bucket; below 40 is the sell bucket. The number is relative to the live universe, not absolute.
Each of the 13 factor families (quality, value, momentum, etc.) scores the stock 0-100. We z-score them across the universe, weight each by its prior reliability, and combine into one composite. 50 = neutral / average. 65+ = strong-buy region (top decile). Below 35 = strong-sell region. The number does not say "this stock will go up by X%" — it says "this stock currently looks more attractive than this percent of comparable names".
Where:Hero number on every /stocks/[ticker] page. Coloured circle in SignalFeed. Right column on /compare.
Verdict (BUY/MIXED/SELL)
Engine conceptsA verdict is the plain-English bucket Framler assigns to each stock based on its Framler score: BUY when the score is 60 or above, MIXED for scores between 40 and 60, and SELL when the score drops to 40 or below. Three buckets are used deliberately to avoid false precision.
BUY = score ≥ 60 (factor stack agrees stock is attractive). MIXED = 40-60 (factors disagree, no clear edge). SELL = ≤ 40. We deliberately use 3 buckets, not 5 or 10 — finer granularity gives false precision when forward returns aren't calibrated yet.
Where:Pill next to ticker on every page. Filter tabs on /dashboard.
Forward return (expected)
Engine conceptsA forward return is the model's best estimate of how much a stock will return over the next 1, 7, 30, or 90 days, expressed as a mean plus a 90% confidence band. The engine composes the estimate from a market-drift baseline and the per-ticker alpha implied by the composite score, then adjusts for the current regime, any matching academic pattern, and tail-dependence shrinkage. Wider bands signal lower confidence, not lower expected return.
Computed by the engine v10 Forward-Return Engine. The mean projection combines a market-drift baseline (small, slowly drifting) with the alpha implied by the score, then is shaped by the current market regime and any matching confluence pattern. We show 4 horizons (1d, 7d, 30d, 90d) with mean, 90% CI, and P(positive return). Prior-mode until 2026-05-16 — read it as "engine's theoretical projection from published factor literature", not "guaranteed outcome". The exact composition formula and its calibrated coefficients are proprietary.
Where:Forward Return Projection panel on /stocks/[ticker], below the score breakdown.
Market regime (BOCPD)
Engine conceptsA market regime is a probabilistic label for the current mood of the overall market: risk-on (broad bullish flow), risk-off (broad bearish flow), or transition (uncertain). Framler uses Bayesian Online Changepoint Detection on SPY log-returns to maintain a live posterior over the three regimes, updated daily.
Adams-MacKay 2007 Bayesian Online Changepoint Detection — we maintain a posterior distribution over which regime the market is currently in, updated daily on SPY log-returns. Each factor has different efficacy in each regime (e.g. momentum works great in risk-on, gets crushed in risk-off). The regime modulates how we weight factors and how we amplify the alpha contribution.
Where:Regime pill (RISK-ON / TRANSITION / RISK-OFF) on every ticker page. Regime stripe at top of /dashboard layout.Source:Adams-MacKay 2007, Bayesian Online Changepoint Detection
Conformal prediction interval
Engine conceptsA conformal prediction interval is a confidence band with a finite-sample, distribution-free coverage guarantee. If the engine reports a 90% conformal interval of [56, 82], then 90% of similar future predictions will contain the realised value — assuming exchangeability. Wider intervals reflect higher per-ticker uncertainty, not lower expected return.
Vovk-Gammerman-Shafer 2005 conformal prediction provides finite-sample, distribution-free coverage guarantees: if the model says [56, 82] is a 90% interval, then 90% of similar future predictions WILL contain the realised value. We use Mondrian conformal (different intervals per regime + verdict bin). Wider interval = more uncertainty about this name.
Where:[lower – upper] band shown next to the score, and as the CI bar in the Forward Return Panel.Source:Vovk-Gammerman-Shafer 2005 / Romano-Patterson-Candès 2019
Tail-dependence (copula)
Engine conceptsHow often a pattern's factors actually move together in extreme conditions, not just on average.
Schmidt-Stadtmüller 2006: an empirical estimator for whether two factors co-move in their tails (extreme upper or lower decile). λ ≥ 0.25 means the factors historically co-move when the market is stressed — structural pattern, not coincidence. λ < 0.10 means they're independent in tails — the apparent setup is probably random alignment. We use this to dampen pattern confidence when tail-alignment is weak.
Where:Tail badge on confluence pattern banners (e.g. "✓ tail 0.32" green, "◇ tail 0.05" grey).Source:Schmidt-Stadtmüller 2006, Non-parametric tail-dependence estimator
Kalman DLM (dynamic factor weights)
Engine conceptsA way to update factor weights smoothly over time as their informational content drifts, rather than re-fitting from scratch.
Kalman 1960 / West-Harrison 1997 dynamic linear model: each factor's coefficient on forward returns is treated as a slowly-evolving random walk. We update the posterior on each new observation. This avoids the choice between "use the prior forever" (rigid) and "re-fit on a rolling window" (jumpy). Activates as forward returns accumulate post-2026-05-16.
Where:Status page layer "Kalman DLM exposures". Behind the scenes in factor weighting.Source:Kalman 1960 / West-Harrison 1997
Shapley attribution
Engine conceptsA fair way to split the credit/blame for the score among the 13 factors — each factor gets exactly its marginal contribution.
Shapley 1953 game-theoretic value: across all permutations of factor inclusion, what's factor X's average marginal contribution to the final composite? This gives a cleaner attribution than simple "factor i has weight w_i × score" because it accounts for factor interactions. The Score Composition waterfall on every ticker page shows Shapley contributions.
Where:Score Composition waterfall on /stocks/[ticker]. The +X.X numbers are Shapley contributions.Source:Shapley 1953, Value of an n-person game
Confluence pattern
Engine conceptsA named setup the engine recognises when multiple factors align — like "Quality Compounder" or "Short Squeeze".
When a specific combination of factor scores fires, we label it with one of 19 academic-style patterns (Quality Compounder, Value Trap, Short Squeeze Setup, Earnings Quality Crack, etc.). Each pattern has a published source effect size. The pattern overrides part of the raw composite — that's the +δ shown on the banner. Tail-dependence determines whether the override is full-weight (structural co-movement) or half-weight (coincidence).
Where:Confluence banner above the score on /stocks/[ticker]. Full library at /patterns.
Z-score
Engine conceptsA z-score is a number that tells you how many standard deviations a value sits away from the mean of its distribution. A z-score of +2 means the value is in the top 2.5% of the distribution; −2 means the bottom 2.5%. Framler z-scores every factor across the live universe so a 70 means top-quintile relative to today's peers.
Formally z = (x − μ) / σ. Z-scoring is the standard normalisation that lets us compare value (whose raw scale runs from 0 to infinity) against momentum (which runs negative to positive). After z-scoring, every factor lives on the same axis and can be combined into a composite without one factor dominating purely because its raw scale is larger.
Where:Implicit in every factor card. The 0-100 score on /stocks/[ticker] is a rank-converted z-score.
Factor model
Engine conceptsA factor model is a framework that decomposes a stock's return into exposures to a small number of systematic drivers (factors) plus an idiosyncratic component. The CAPM has one factor (market beta); Fama-French has three (market, size, value); modern multi-factor models like APEX cover quality, momentum, accruals, sentiment, and others.
Mathematically: r_i = α_i + Σ β_ij · F_j + ε_i, where r_i is stock i's return, F_j is factor j's return, β_ij is stock i's exposure to factor j, and ε_i is idiosyncratic noise. Factor models let us rank stocks cross-sectionally, decompose performance into compensated and uncompensated risk, and identify whether observed alpha is genuinely uncorrelated or just an unmeasured factor exposure.
Where:The entire Framler scoring engine. /methodology page describes the multi-factor stack.Source:Fama-French 1993; Carhart 1997; Asness-Frazzini-Pedersen 2014