Regime-conditioned factor premia computed from the d82 decision ledger via quintile spread (Q5−Q1 realized return). Values replace the hardcoded annualized premia in factor-attribution.js and update the regime-conditional-weights attribution surface at runtime.
factor-returns-empirical-2026-06-05-v1|t| > 2.0 and
n ≥ 30; insignificant entries fall back to the annualized legacy prior
scaled to annual / 252 × horizonDays. Factor-attribution.js should call
getPremium(premiaTable, currentRegime, factorId, horizonDays, LEGACY_FALLBACK[factorId])
instead of reading the hardcoded FACTOR_RETURNS constant.
The premia table is rebuilt nightly by the d82-update cron and written to
data/factor-premia-table.json.