{"slug":"what-is-vix1d","qid":"rule_of_16_check","label":"Implied daily move (IV / 16) against realized daily movement, SPY by month","post_title":"What Is VIX1D? The 1-Day Volatility Index","post_url":"/blog/what-is-vix1d#q-rule_of_16_check","columns":["month","month_label","implied_daily_move_pct","realized_stdev_pct","realized_avg_move_pct"],"rows":[{"month":"2025-07-01","month_label":"Jul 2025","implied_daily_move_pct":0.93,"realized_stdev_pct":0.41,"realized_avg_move_pct":0.33},{"month":"2025-08-01","month_label":"Aug 2025","implied_daily_move_pct":0.86,"realized_stdev_pct":0.75,"realized_avg_move_pct":0.57},{"month":"2025-09-01","month_label":"Sep 2025","implied_daily_move_pct":0.83,"realized_stdev_pct":0.45,"realized_avg_move_pct":0.41},{"month":"2025-10-01","month_label":"Oct 2025","implied_daily_move_pct":0.98,"realized_stdev_pct":0.86,"realized_avg_move_pct":0.61},{"month":"2025-11-01","month_label":"Nov 2025","implied_daily_move_pct":1.05,"realized_stdev_pct":0.97,"realized_avg_move_pct":0.78},{"month":"2025-12-01","month_label":"Dec 2025","implied_daily_move_pct":0.84,"realized_stdev_pct":0.53,"realized_avg_move_pct":0.42},{"month":"2026-01-01","month_label":"Jan 2026","implied_daily_move_pct":0.88,"realized_stdev_pct":0.65,"realized_avg_move_pct":0.44},{"month":"2026-02-01","month_label":"Feb 2026","implied_daily_move_pct":1.03,"realized_stdev_pct":0.84,"realized_avg_move_pct":0.67},{"month":"2026-03-01","month_label":"Mar 2026","implied_daily_move_pct":1.31,"realized_stdev_pct":1.15,"realized_avg_move_pct":0.91},{"month":"2026-04-01","month_label":"Apr 2026","implied_daily_move_pct":1.08,"realized_stdev_pct":0.74,"realized_avg_move_pct":0.65},{"month":"2026-05-01","month_label":"May 2026","implied_daily_move_pct":0.96,"realized_stdev_pct":0.61,"realized_avg_move_pct":0.54},{"month":"2026-06-01","month_label":"Jun 2026","implied_daily_move_pct":0.98,"realized_stdev_pct":1.11,"realized_avg_move_pct":0.85},{"month":"2026-07-01","month_label":"Jul 2026","implied_daily_move_pct":0.92,"realized_stdev_pct":0.76,"realized_avg_move_pct":0.59},{"month":"2026-08-01","month_label":"Aug 2026","implied_daily_move_pct":0.84,"realized_stdev_pct":0.74,"realized_avg_move_pct":0.56}],"shape":"series","sql":"WITH iv AS\n(\n    SELECT\n        toStartOfMonth(date)          AS month,\n        avg(implied_volatility) * 100 AS iv_pct\n    FROM global_markets.options_greeks\n    WHERE underlying_symbol = 'SPY'\n      AND date >= toStartOfMonth(today() - 400)\n      AND iv_converged = 1\n      AND volume > 0\n      AND days_to_expiry BETWEEN 20 AND 45\n      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05\n    GROUP BY month\n),\ndaily AS\n(\n    SELECT\n        date,\n        close_f / prev_close - 1 AS ret\n    FROM\n    (\n        SELECT\n            date,\n            close_f,\n            lagInFrame(close_f) OVER (ORDER BY date ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close\n        FROM\n        (\n            SELECT date, avg(toFloat64(close)) AS close_f\n            FROM global_markets.stocks_daily_aggs\n            WHERE ticker = 'SPY'\n              AND date >= toStartOfMonth(today() - 400) - 10\n            GROUP BY date\n        )\n    )\n    WHERE prev_close > 0\n),\nrealized AS\n(\n    SELECT\n        toStartOfMonth(date)  AS month,\n        stddevSamp(ret) * 100 AS stdev_pct,\n        avg(abs(ret)) * 100   AS avg_abs_pct\n    FROM daily\n    GROUP BY month\n    HAVING count() >= 15\n)\nSELECT\n    toString(i.month)                AS month,\n    formatDateTime(i.month, '%b %Y') AS month_label,\n    round(i.iv_pct / 16, 2)          AS implied_daily_move_pct,\n    round(r.stdev_pct, 2)            AS realized_stdev_pct,\n    round(r.avg_abs_pct, 2)          AS realized_avg_move_pct\nFROM iv AS i\nINNER JOIN realized AS r ON i.month = r.month\nORDER BY i.month","computed_at":"2026-08-22T04:35:03.415692+00:00","elapsed":0.757964819}