Skip to content

KB/signal

SPY next-20d return

Last verified

Auto-generated. This article is rebuilt from app/signals/config/signal_definitions.json by scripts/build_signals_kb.py. Edit the registry entry and re-run the script β€” do not edit this file directly.

SPY next-20d return

What it is

SPY next-20d return β€” registry key spy_next_20d_rtn.

Realized forward return for the 20-trading-day horizon β€” the IC-structure study (2026-06) found predictive edge concentrates at 10-20 trading days. Persisted as a research substrate; no bands, no scoring contribution.

Data-pyramid tier

T0 β€” Raw input. This metric sits at the raw input layer of the platform’s six-tier data pyramid (T0 raw inputs β†’ T5 actionable read). The tier reflects how far the value is from a raw measurement β€” not how strongly it is validated. Abstraction and validation are separate axes: a higher tier is not a claim of stronger evidence.

Horizon & validation

No validated skill horizon is on file for this metric β€” read it as context / a data carrier, not a validated edge. Stamps are added only when a gated research verdict lands.

Source

Source module: capture
Data source: computed

Derived metric β€” produced inside the platform (app/signals/capture.py or equivalent) rather than fetched as a raw upstream value. See the How it's computed section below for the formula.

How it’s computed

(close[T+20] βˆ’ close[T]) / close[T] β€” forward 20-trading-day SPY return. Backfilled by capture._backfill_forward_returns via the same OFFSET-walk used for 1/3/5d.

Where it surfaces

Health-score / alignment role

Data carrier β€” no implication, no health-score contribution.

Persisted for downstream consumers (sparklines, base-rate matcher, calibration substrate) but does not classify into BULLISH / NEUTRAL / BEARISH and does not contribute to the 0-100 health score.

Release cadence

Backfilled onto row T when row T+20’s spy_close lands.

See also