FlashAlpha volatility risk premium evidence, v1.2 (2026-11-10) Aggregate evidence and calculation code are public without sign-in. Raw archived market-data inputs are excluded; full reproduction requires those exact files. targets: {"forward_realized_volatility": "Annualized realized volatility of the next 21 sessions, in percent volatility", "forward_volatility_premium": "Current 30-day ATM IV minus that forward realized volatility, in vol points"} models: {"iv_only": "intercept + beta_IV * IV", "rv_only": "intercept + beta_RV * trailing RV20", "iv_plus_rv": "intercept + beta_IV * IV + beta_RV * trailing RV20", "iv_minus_rv": "intercept + beta * (IV - trailing RV20): equal and opposite input coefficients", "historical_mean": "Expanding average of the same fully observed training outcomes"} estimation: Separate per-symbol expanding OLS with an intercept; at least 252 eligible training outcomes; no clipping, hyperparameter tuning or extra signals timing: After-close inputs only. Train only on origins at least 21 sessions earlier and whose complete forward windows ended strictly before the forecast date. Sessions retain their original calendar positions even across excluded observations. uncertainty: Pointwise 95% normal-approximation Newey-West/Bartlett intervals with 25 and 63 session lags on paired squared-error differences. Positive means lower observed MSE than IV-only. Conditional on the fitted forecast path; not formal nested-model superiority tests, simultaneous intervals, or independent confirmation. nonoverlap: Greedy first eligible forecast origin, then the first origin at or after its previous outcome window ends; one predetermined phase, descriptive MSE only signal_ranking: Canonical version-1.1 policy: compare the current finite trailing spread with available finite readings in the preceding 252-session window, requiring at least 189 prior readings (75%). Missing prior readings are omitted from the rank, but calendar positions are retained. Scoring additionally requires a complete clean forward outcome. The earlier all-252-readings policy is retained separately in signal_complete_window as a declared coverage sensitivity. signal_uncertainty: Centered difference-of-conditional-means influence scores with session-grid HAC25 (10/50-lag checks), 2000 moving-block bootstrap replications of 42 original sessions, and all 21 fixed phases of disjoint forward windows. No skipped dates are compressed into adjacent sessions. variance_forecasts: The published v1.1 incremental variance comparison is retained: expanding OLS in squared-volatility units on common eligible dates, IV-only, historical daily variance, both, and both with historical intraday variance; every training label must mature before its forecast date. MSE uses unmodified forecasts; QLIKE clips each forecast at 5% of the median matured TRAINING variance at that origin. Clark-West one-sided adjusted-loss tests use session-grid HAC25; Holm is applied separately to the 11 daily-input and 11 intraday-input tests. These are distinct from the new volatility-unit models and their descriptive intervals. calendar_annualization: horizon.cal30 retains the published v1.1 calendar-time measure: sum of future daily variances over 30 calendar days, multiplied by 365/30 before taking the square root. validation.sensitivity.calendar30 instead holds the 252-day mean-daily-variance annualization fixed to isolate window membership. Their different numbers are different annualization conventions, not duplicate estimates of an identical measure. pooled_inference: Pooled mean/frequency bootstrap resamples 42-session blocks of the entire symbol matrix together, preserving cross-symbol shocks and the observed missingness pattern. Equal-symbol means, leave-one-symbol-out values, within-symbol deciles and episode exclusions are descriptive checks. Daily-mean HAC t statistics refer to equal-date means, not the observation-weighted pooled mean. sensitivity: All four measurement specifications use the same complete origins and conservative training endpoints: the later of the 21-session and 30-calendar-day endpoints. Only the stated realized-vol measure/window changes. calendar30: Observed sessions strictly after the origin and on or before origin + 30 calendar days; 252-day annualization retained. Exclude horizons ending beyond the supplied data. This checks the 21-session approximation; it is not a traded variance-swap replication. input_limits: Checks validate supplied file structure, calculations, quality exclusions and session alignment. They do not independently verify vendor prices, market-close conventions, historical data vintages or redistribution rights. Yahoo split adjustment is retrospective; return-based measures are scale invariant, but vendor revision history is not reconstructed. source_comparison: The archive's 16:00 midpoint returns and Yahoo daily closing-price returns are compared in the input audit, in decimal log-return units, not assumed identical. Observed differences are retained and are not automatically labeled errors; matched-estimator/source specifications address this measurement choice. interpretation: Exploratory measurement/forecast validation on the existing sample, in volatility units. No option trades, transaction costs, strategy returns, or model-free implied variance are tested. sources: ["https://www.federalreserve.gov/pubs/feds/2011/201145/index.html", "https://doi.org/10.2307/1913610", "https://www.kansascityfed.org/documents/5368/pdf-RWP05-05.pdf"] SAMPLE RECONCILIATION { "main_descriptive_symbol_days": 23104, "signal_symbol_days": 21274, "forecast_symbol_days": 20126, "sensitivity_common_symbol_days": 21635, "signal_prior_sessions": 252, "signal_minimum_prior_readings": 189, "signal_rank_window": "Current reading plus the preceding 252-session window; current reading and at least 189 prior readings required", "corrections": [ "Version 1.0 compared the current reading with 251 prior sessions and required a complete window. Published version 1.1 adopted a 252-prior-session window with at least 189 available prior readings. Version 1.2 preserves that canonical policy and records the stricter complete-window variant separately.", "Version 1.2 uses centered conditional-mean signal influence scores, original-session HAC/bootstrap/offset grids and training-only QLIKE floors. The matched daily estimator now uses centered sample variance on both sides; published v1.1 used uncentered forward squared returns." ], "note": "Symbol-days are overlapping observations, not independent trials. Forecast samples exclude initial training history; signal samples require a current reading and at least 189 available readings in the preceding 252 sessions. Four symbols begin in 2018, not 2017." } REVIEW: Automated calculation, temporal-alignment, input-structure and publication checks; no named external review or independently sourced replication claimed. INTERESTS: FlashAlpha sells analytics and historical-data services. RIGHTS: Public access does not grant redistribution rights to the underlying vendor data. No open-data license for those inputs is asserted. REPRODUCING: Preserve the scripts/vrp-article and scripts/yang-zhang-article layout in the ZIP. Place the exact benchmark and Yahoo CSVs in scripts/yang-zhang-article/data/benchmark and data/yahoo. Verify input hashes against results.json validation.input_audit, then run python scripts/vrp-article/study.py. Network-fetched replacement bars are not guaranteed to reproduce this archived extraction. Run python scripts/vrp-article/test_study.py for synthetic calculation and timing checks without raw inputs. Calculator tests are separate interface checks; they do not validate vendor data. TIMING FIGURE: Only worked-example summary values are public here; the full raw price path is excluded. Other figure CSVs contain derived aggregate plot values. Mean-uncertainty.csv contains per-symbol intervals, not a pooled IID confidence interval.