Scoring Methodology

All daily and quarterly scores in the financial data platform dashboard use cross-sectional z-scores to standardize and rank constituents within each index. This note documents the exact methodology for z-score calculation, composite scoring, ranking, and cap-weighting.

Z-Score Calculation

All daily and quarterly scores use cross-sectional z-scores within a grouping (index or sector):

Where μ and σ are computed across all constituents in the same group on the same date. Sector-level grouping is used when sufficient peers exist (≥ 3); otherwise falls back to index-level.

Cross-Sectional, Not Time-Series

These z-scores compare a stock to its peers on the same day, not to its own historical values. A momentum z-score of +2.0 means the stock’s momentum is 2 standard deviations above the index average today, regardless of whether that’s high or low historically.

Composite Scores

Simple average of component z-scores:

Some components are sign-inverted before averaging (e.g., P/E: lower is better, so −z is used).

Sign inversion examples

  • Relative Value Score: Forward P/E, Price/Book, EV/EBITDA are inverted (−z) because lower valuations are better
  • Sentiment Score: Recommendation is inverted (−z) because lower numeric rating = more bullish
  • Quality Score: Leverage (debt/equity) is inverted (−z) because lower debt is better

Ranking

Dense rank within each index, descending by score:

  • Rank 1 = highest score (best)
  • Ties receive the same rank
  • No gaps in ranking sequence

Example: If three stocks have composite scores of 1.5, 1.2, 1.2, 0.8, they are ranked 1, 2, 2, 3 (dense rank — no gap at rank 3).

SQL implementation (executed in the gold-transforms layer):

DENSE_RANK() OVER (
    PARTITION BY index_key, trade_date
    ORDER BY composite_score DESC
) AS rank_in_index

Index Weights (Cap-Weighting)

Cap-weighted using daily market capitalization:

Used for P/E, P/B, dividend yield, and other index-level aggregates.

Cap-Weighting vs Equal-Weighting

Index-level metrics (P/E, volatility) are cap-weighted to reflect the index’s actual composition. Individual stock scores (momentum, value, sentiment) are computed on an equal-weighted basis — each stock’s z-score has equal influence regardless of market cap. The data-quality-framework defines the quality gates that validate score outputs before they reach consumers.

Sector-Level vs Index-Level Grouping

GroupingWhen UsedWhy
Index-levelDefault for daily signalsCompares stock to all peers in the index
Sector-levelQuality/moat score when ≥ 3 sector peersCompares within similar business models (more meaningful)
Fallback to indexWhen sector has < 3 constituentsInsufficient peers for meaningful sector z-score