Label Quality: The Most Underappreciated Problem in Quant Finance
In supervised learning, garbage in garbage out. Label quality—how accurately your target variable reflects what you're actually trying to predict—is the most underappreciated problem in quant finance.
Every supervised learning model in finance is trained to predict something. The “something” is the label (also called the target or dependent variable). For quant finance, the label is typically: “what will the return be over the next N days?”
Label quality determines the ceiling of your model’s performance. No ML architecture, no feature engineering, no hyperparameter tuning can compensate for a bad label. And in quant finance, label quality is systematically underestimated as a problem.
Why Label Quality Is Hard in Finance
Return labels are noisy. Tomorrow’s return is the sum of many components: alpha signal, noise, microstructure effects, liquidity effects, exogenous shocks. The fraction that’s genuinely predictable from today’s features is small. Most of the label is noise.
Alpha is transient. True alpha—the predictable component of returns—decays as more traders exploit it. A label that was predictable in 2015 may not be predictable in 2024. The label itself is moving target.
Market structure changes. When you define “next-day return” as close-to-close, you’re assuming market microstructure is stable. It isn’t. Decimalization, high-frequency trading, and market structure changes alter the label’s properties over time.
The Problem with Return Labels
Consider the standard label: r_{t+1}^{(i)} = (price_{t+1}^{(i)} / price_t^{(i)}) - 1
This label has several problems:
1. It’s dominated by noise. For a typical stock, daily return variance is ~1% (σ ≈ 1%). A factor with IC = 0.05 explains only ~0.25% of variance (IC² = 0.0025). The label is 97.5% noise.
2. It mixes alpha with microstructure. Close-to-close return includes:
- Genuine alpha signal (what you want to predict)
- Bid-ask bounce (noise from market microstructure)
- Liquidity effects (especially for small caps)
- Intraday momentum/reversal patterns
3. It ignores trading costs. A “prediction” of 0.1% daily return is worthless if your trading costs are 0.15%. Your label should be net return after costs.
Better Labels
Net Return Label
Subtract estimated transaction costs from gross return:
Where TC is estimated round-trip transaction cost for the position.
Alpha Label (Return Decomposition)
Decompose returns into alpha and noise components:
Train on α (if you can estimate it) rather than r. Practitioners often use factor models to estimate α.
Barra-Style Fundamental Return
Use fundamental unexpected return (analyst earnings surprises minus market expectations) as label, which has better signal-to-noise than raw returns.
Alternative Labels
| Label | Use Case |
|---|---|
| Residual return (alpha) | When you have a good risk model |
| Sharpe-contributed return | When you want risk-adjusted labels |
| Net return after costs | When TC is the binding constraint |
| Analyst forecast error | For event-driven strategies |
| Macro-factor surprise | For macro strategies |
How to Test Label Quality
Label stability test. Compute autocorrelation of labels at different lags. For a good label, autocorrelation should reflect the persistence of the signal. Pure noise has zero autocorrelation at all lags except 0.
import pandas as pd
import numpy as np
def test_label_stability(returns, lags=[1, 5, 10, 20]):
"""
Test label stability via autocorrelation.
"""
results = {}
for lag in lags:
acf = returns.autocorr(lag=lag)
results[f'lag_{lag}'] = acf
# Random label: all ACFs ≈ 0
# Signal-containing label: ACF at relevant lags > 0
return pd.Series(results)
Signal-to-noise ratio. Estimate the fraction of label variance that’s predictable:
where α̂ is your model’s predicted alpha component.
Common Pitfalls
Training on noisy labels. If your label is 97% noise, your model will fit noise. Use a denoised label (alpha residual) or a better label definition.
Data snooping with labels. Choosing a label definition that makes your backtest look good is data snooping. The label should be defined before you see the backtest results.
Survivorship bias in labels. Using only currently-traded stocks’ historical returns ignores delisted stocks, which biases your label upward (delisted stocks tend to have large negative returns before delisting).
References
- López de Prado, Advances in Financial Machine Learning, Ch. 3. Wiley, 2018. ISBN: 978-1-119-48208-6.
- Ang, Asset Management, Ch. 5. Oxford University Press, 2014. ISBN: 978-0-19-995932-3.
- Marcos, Advances in Wealth Management, Ch. 7. Wiley, 2022. ISBN: 978-1-119-82601-7.