Bias Correction
Why the headline return on a results page can disagree with the simple average of the visible matches.
The short version
We track every forward-test prediction we publish and compare it against the actual return. Over the last 90 days, our model has been consistently ~2 percentage points too optimistic at the 5-day horizon. We subtract that drift from the headline number so the displayed estimate matches what predictions of this model have actually delivered, not what they thought they would deliver.
How it’s computed
For every forward-test entry in the last 90 days that has a real outcome, we take predicted − actual. The mean of that error per horizon (1d / 5d / 10d) becomes the bias term we subtract from new predictions.
- Minimum 100 samples required before correction is applied for a horizon.
- Rolling 90-day window so the correction adapts to recent regime, not ancient history.
- Refreshed every 6 hours.
- Applied uniformly: the same correction is subtracted from every horizon’s match returns.
Why it’s not a selection effect
We checked: bias is essentially uniform across all interest-score quartiles of our forward tests (~+1.9 to +2.3 pp at the 5-day horizon). So the optimism is not a quirk of which tickers the model chooses to surface — it’s a structural calibration issue that applies to every kind of pick.
Decomposed: about 0.2 pp comes from the broader market drifting slightly down over the last 90 days; the remaining ~1.9 pp is structural model overoptimism on the picks themselves vs. their realized forward returns.
What you see on a results page
Where the bias-corrected number disagrees with the simple equal-weight average of the visible matches by more than 0.5 pp, we now show both side by side, e.g.:
5D RETURN −0.7% · +1.4% raw 30 of 10 went up
The big number reflects the model’s expected return after adjusting for the recent prediction drift. The “raw” number is the simple average of the 10 visible match returns. The “X of N went up” line is a raw count, so it stays consistent with what you can verify by looking at the matches.
Should you trust it?
Empirically the corrected number is closer to what the model’s picks have actually delivered. Without correction, displayed estimates would be persistently 2 pp too bullish at the 5-day horizon. So the correction is doing useful work.
That said, it’s a regime-aware adjustment. If the market rallies for 90 days, the correction would shrink (or flip sign). The number you see is therefore the model’s expected return given current regime, not a regime-invariant historical statistic. For the regime-invariant view, use the “raw” number.
Past performance disclaimer
Bias correction makes our estimates more honest about recent performance. It does not make them predictions. Past patterns do not guarantee future results, and the corrected number is still a statistical estimate that can be wrong — sometimes badly so. Chart Library is for educational use; nothing here is financial advice.