Quant Memo
Core

Designing a Cross-Sectional Feature Set

A cross-sectional model ranks stocks against each other at each point in time, which changes how features should be built and compared — raw values matter less than where a stock sits relative to its peers on that day.

Prerequisites: Choosing the Target: Raw, Excess or Residual Returns

A cross-sectional model doesn't ask "will this stock go up?" — it asks "will this stock go up more than the others?" That distinction sounds subtle, but it changes almost every feature-design decision, because a feature's raw level is usually far less informative than where that level sits relative to the rest of the universe on the same day.

Cross-sectional features should almost always be expressed relative to their peer group at each point in time — a rank, a z-score against the sector, or a percentile — rather than as raw levels, because a cross-sectional model's job is to compare stocks to each other, not to learn an absolute threshold that drifts as the market regime changes.

Why raw levels mislead a cross-sectional model

A price-to-earnings ratio of 15 means something different in a low-rate environment than a high-rate one, and it means something different in the technology sector than in utilities. A model fed raw P/E values has to separately learn all of that context before the number becomes useful, and it will often fail to generalize across regimes it hasn't seen. A model fed each stock's P/E rank within its sector, on that day has already had that context built in — the number 0.85 (85th percentile) means roughly the same thing regardless of what the overall level of rates or sector multiples happens to be that year.

Distribution · normal
-2.000.002.00μvalue →
Within ±1σ 68.3%mean μ 0.00std σ 1.00

Standardizing a feature to a cross-sectional z-score each day is exactly what turns a raw, regime-dependent number into something shaped like this distribution — centered at zero, comparable across time, and directly usable by a model that assumes stationary inputs.

Worked example

A researcher builds a feature from analyst earnings-revision counts, comparing two versions.

  1. Raw feature. "Number of upward revisions in the last 30 days," used directly. In a strong earnings season this number is high for almost every stock in the universe, so the feature mostly reflects the overall macro backdrop rather than which specific stocks are being revised up more than peers.
  2. Cross-sectional feature. The same count, converted to a percentile rank within the stock's sector on each date. Now a stock ranking in the 90th percentile means something consistent whether the whole market is having a strong or weak earnings season — it says "revised up more than 90% of sector peers today," which is the comparison a cross-sectional model actually needs.
  3. Result. Backtesting the model with the ranked feature instead of the raw count improves out-of-sample IC noticeably, because the model no longer has to spend capacity learning to detect and adjust for the shifting overall level of revisions each quarter.

What this means in practice

Careful feature-set design for cross-sectional models typically standardizes within relevant peer groups (sector, size bucket, sometimes country), applies the transformation consistently at each historical date rather than using look-ahead information from the full sample, and checks that features remain reasonably stable in their cross-sectional distribution across different market regimes — a feature whose spread balloons or collapses in certain years is telling the model something different depending on when it's applied.

Standardizing a feature using statistics computed over the entire historical sample (rather than only using information available as of each date) leaks future information into the feature and inflates backtested performance — always compute cross-sectional statistics (mean, percentile, z-score) using only that day's cross-section, not the full-sample distribution.

Related concepts

Practice in interviews

Further reading

  • Grinold & Kahn, Active Portfolio Management (ch. on the information ratio)
  • Tulchinsky et al., Finding Alphas
ShareTwitterLinkedIn