Volatility-Scaled Return Targets
Dividing a forward return by the asset's own recent volatility before using it as a training label, so a model learns which moves were genuinely surprising rather than just which assets happen to be the most volatile.
Prerequisites: Choosing the Prediction Target: Return, Rank or Direction
A model trained across both a sleepy utility stock and a wild small-cap biotech, using raw forward returns as its target, faces an awkward problem: the biotech's routine, unremarkable 5% daily swings dwarf the utility's genuinely notable 1% move, so a squared-error loss will fixate almost entirely on getting the biotech's giant, mostly-random swings a little less wrong, while barely bothering to learn anything about the quieter, more predictable utility stock. Volatility-scaled targets fix this by expressing each return relative to that asset's own typical size of move, so the loss function treats a surprising move as surprising regardless of which asset it happened to occur in.
How the scaling works
A volatility-scaled target divides the forward return by a measure of that asset's recent volatility, typically an estimate like a trailing realized or exponentially weighted standard deviation of returns:
where is the forward return being labeled, and is the volatility estimate computed using only data available up to time . In plain English: instead of asking the model to predict "how big was the return," you ask it to predict "how many typical-sized moves was this return, relative to how much this specific asset normally moves", a question whose scale is comparable across a sleepy utility and a wild biotech, even though their raw return sizes are nowhere close.
Worked example: two stocks, one shared model
Suppose the utility stock has a trailing daily volatility of 0.5% and today's forward return is ; the biotech has a trailing daily volatility of 6% and today's forward return is . The raw returns make the biotech's move look nine times larger. But the volatility-scaled targets are for the utility and for the biotech, on a relative basis, the utility's move was actually the more surprising one (two standard deviations versus 1.5), which is exactly the comparison a shared cross-sectional model needs to make sensible use of both stocks' data. Training on raw returns, a squared-error loss would have devoted almost all its attention to the biotech's much larger absolute number and effectively ignored the utility's genuinely more unusual move.
Why this matters for cross-sectional models
Pooling many assets into one model (rather than training a separate model per asset) is one of the main ways machine learning adds value in alpha research, more data, shared structure. But pooling only works if the target is on a comparable footing across assets; otherwise the highest-volatility names dominate the loss and the model effectively becomes a specialist in whichever handful of names move the most, at the expense of everything else. Volatility scaling is the standard fix, playing the same role for return targets that per-series scaling plays for general forecasting targets.
Try widening the standard deviation above and picture the same absolute move landing at very different points on a wide versus narrow distribution, volatility scaling recenters every asset's return onto a common, standardized version of that same picture.
What this means in practice
Volatility-scaled targets are near-universal in cross-sectional equity and futures alpha models, since the alternative, pooling raw returns across assets of very different typical volatility, reliably produces models that are secretly just volatility-chasers. The main design choice is the lookback and weighting used to estimate , which must use only past information to avoid leaking the very volatility that's partly determined by the return being predicted.
Volatility-scaled return targets divide each forward return by that asset's own recent volatility before training, so a model pooling data across assets learns which moves were genuinely surprising rather than simply learning to chase whichever assets happen to be the most volatile.
A common leakage mistake is estimating using a window that includes the very return being labeled (or a symmetric, centered window), which lets information about the outcome quietly leak into the scaling factor. The volatility estimate must be computed strictly from data available before the forecast point.
Discussion
💡 Discussion rules
- Ask and answer about this concept. Off-topic gets removed.
- No homework dumps. Show what you tried first.
- Corrections are welcome. Cite a source when you claim an error.
Loading discussion…
Related concepts
- Per-Series Target Scaling
- Residualised Return Targets After a Risk Model
- Rank Targets and Cross-Sectional Normalisation
- Matching Forward-Return Horizon to Signal Decay
- Binary vs Continuous Labels for Alpha Models
- Deriving Regime Labels for Model Switching
- Label Overlap and Effective Sample Size
- Beating the Linear Baseline: When ML Actually Helps
Practice in interviews
Further reading
- Gu, Kelly & Xiu, Empirical Asset Pricing via Machine Learning
- de Prado, Advances in Financial Machine Learning, ch. 3