What does this report establish?
This report is the citable record of Quant Score v1.0: the exact component weights, normalization, recommendation bands, universe, data sources, and version policy behind every /quant-score/[ticker] page. Its purpose is reproducibility an independent reader with the same bars and the documented weights should reproduce any ticker's score within rounding and auditability: every design choice that could flatter scores is disclosed in one place.
The framework aggregates five contributions from a single 60-to-120-day daily-bar window scored by TechnicalEngine: trend (−25…+25 from MA5/MA10/MA20 alignment plus MA5-bias discipline), volume (−14…+12 across four regimes), MACD (−12…+12 across cross and histogram states), RSI (−10…+10 across overbought/oversold/strong-buy), and volatility (−2…+5 from Bollinger squeeze and ATR14 regime). Baseline 50, clamped to 5–98.
Recommendation bands are fixed cut points, not fitted: STRONG_BUY ≥80, BUY ≥68, HOLD ≥52, WAIT ≥40, SELL ≥25, otherwise STRONG_SELL. Fixed bands are a feature fitted bands would be one more hidden trial.
What is the universe and how is it maintained?
The v1.0 universe is 100 large-cap US tickers (AAPL through ROP in src/lib/quant/tickers.ts), a stable S&P subset chosen for liquidity and data coverage. Stability is deliberate: a fixed universe makes scores comparable across time and denies any temptation to rotate constituents ex post.
Each ticker page fetches a rolling 120-day daily window (Finnhub candle, Alpaca bars fallback) and revalidates every 24 hours (ISR 86400). Sector comes from Finnhub profile2 where resolvable and is displayed, not scored v1.0 has no cross-sectional risk adjustment, disclosed as a limitation below.
Indexability is gated by isQuantScoreIndexable: ≥20 bars and a non-empty unique interpretation (≥80 chars), otherwise noindex until enriched. Thin programmatic shells are never indexed the §4C guardrail is code, not policy prose.
What are the honest limitations?
Single-window, single-asset, no beta or industry adjustment: two tickers with identical scores can carry very different systematic risk. No transaction-cost, capacity, or slippage modelling: scores describe signal state, not tradable expectancy. Indicators lag regime change by construction the framework inherits every limit of trend/MACD/RSI systems.
Adapter dependence: scores exist only where Finnhub/Alpaca return ≥5 bars (≥20 for indexing). Coverage gaps surface as explicit pending states with the error shown, never as stale scores presented as fresh.
Version discipline: any weight, band, or universe change ships as v1.1+ with an updated report and a changelog entry. Scores are always displayed with their methodologyVersion and calculatedAt timestamp so no number floats free of its specification.
How should others cite and challenge this work?
Cite as: TheQuantHackers (2026). Quant Score Framework Report 2026-Q3, v1.0. thequanthackers.com/methodology/quant-score-framework-2026. Dataset: 100-ticker universe with per-ticker component tables at /quant-score/[ticker].
Challenges welcome via the contact page: weight justification, band calibration, universe bias, adapter coverage. Substantive corrections update the report with a new last-reviewed date per the editorial policy on /company/about.