{"slug":"what-breaks-an-options-backtest","qid":"contract_trace","label":"One SPY put traced through its final weeks, June 2024 expiry","post_title":"What Breaks an Options Backtest","post_url":"/blog/what-breaks-an-options-backtest#q-contract_trace","columns":["session_date","as_of","mark","vega_per_point","iv_pct"],"rows":[{"session_date":"2024-05-01","as_of":"May 1","mark":0.31,"vega_per_point":0.071,"iv_pct":29.8},{"session_date":"2024-05-02","as_of":"May 2","mark":0.28,"vega_per_point":0.065,"iv_pct":30.5},{"session_date":"2024-05-03","as_of":"May 3","mark":0.21,"vega_per_point":0.051,"iv_pct":30.8},{"session_date":"2024-05-06","as_of":"May 6","mark":0.16,"vega_per_point":0.041,"iv_pct":31.5},{"session_date":"2024-05-07","as_of":"May 7","mark":0.17,"vega_per_point":0.042,"iv_pct":32.2},{"session_date":"2024-05-08","as_of":"May 8","mark":0.16,"vega_per_point":0.04,"iv_pct":32.2},{"session_date":"2024-05-09","as_of":"May 9","mark":0.15,"vega_per_point":0.037,"iv_pct":33.1},{"session_date":"2024-05-10","as_of":"May 10","mark":0.14,"vega_per_point":0.035,"iv_pct":33},{"session_date":"2024-05-13","as_of":"May 13","mark":0.15,"vega_per_point":0.035,"iv_pct":34.7},{"session_date":"2024-05-14","as_of":"May 14","mark":0.13,"vega_per_point":0.031,"iv_pct":35.1},{"session_date":"2024-05-15","as_of":"May 15","mark":0.11,"vega_per_point":0.026,"iv_pct":36.3},{"session_date":"2024-05-16","as_of":"May 16","mark":0.11,"vega_per_point":0.026,"iv_pct":36.4},{"session_date":"2024-05-17","as_of":"May 17","mark":0.1,"vega_per_point":0.024,"iv_pct":36.7},{"session_date":"2024-05-20","as_of":"May 20","mark":0.09,"vega_per_point":0.021,"iv_pct":38},{"session_date":"2024-05-21","as_of":"May 21","mark":0.07,"vega_per_point":0.017,"iv_pct":37.8},{"session_date":"2024-05-22","as_of":"May 22","mark":0.08,"vega_per_point":0.019,"iv_pct":38.9},{"session_date":"2024-05-23","as_of":"May 23","mark":0.1,"vega_per_point":0.022,"iv_pct":39.4},{"session_date":"2024-05-24","as_of":"May 24","mark":0.08,"vega_per_point":0.018,"iv_pct":39.9},{"session_date":"2024-05-28","as_of":"May 28","mark":0.08,"vega_per_point":0.017,"iv_pct":43},{"session_date":"2024-05-29","as_of":"May 29","mark":0.09,"vega_per_point":0.019,"iv_pct":43.1},{"session_date":"2024-05-30","as_of":"May 30","mark":0.09,"vega_per_point":0.018,"iv_pct":43.4},{"session_date":"2024-05-31","as_of":"May 31","mark":0.06,"vega_per_point":0.013,"iv_pct":44.2},{"session_date":"2024-06-03","as_of":"Jun 3","mark":0.05,"vega_per_point":0.011,"iv_pct":46.6},{"session_date":"2024-06-04","as_of":"Jun 4","mark":0.04,"vega_per_point":0.009,"iv_pct":47.3},{"session_date":"2024-06-05","as_of":"Jun 5","mark":0.04,"vega_per_point":0.008,"iv_pct":50.4},{"session_date":"2024-06-06","as_of":"Jun 6","mark":0.03,"vega_per_point":0.006,"iv_pct":50.5},{"session_date":"2024-06-07","as_of":"Jun 7","mark":0.02,"vega_per_point":0.005,"iv_pct":50},{"session_date":"2024-06-10","as_of":"Jun 10","mark":0.02,"vega_per_point":0.004,"iv_pct":56.9},{"session_date":"2024-06-11","as_of":"Jun 11","mark":0.02,"vega_per_point":0.004,"iv_pct":60.3},{"session_date":"2024-06-12","as_of":"Jun 12","mark":0.01,"vega_per_point":0.002,"iv_pct":61.8},{"session_date":"2024-06-13","as_of":"Jun 13","mark":0.01,"vega_per_point":0.002,"iv_pct":65.6},{"session_date":"2024-06-14","as_of":"Jun 14","mark":0.01,"vega_per_point":0.002,"iv_pct":70.2},{"session_date":"2024-06-17","as_of":"Jun 17","mark":0.01,"vega_per_point":0.001,"iv_pct":95.1},{"session_date":"2024-06-18","as_of":"Jun 18","mark":0.01,"vega_per_point":0.001,"iv_pct":110.5},{"session_date":"2024-06-20","as_of":"Jun 20","mark":0.01,"vega_per_point":0.001,"iv_pct":189.6}],"shape":"series","sql":"SELECT\n    date                                          AS session_date,\n    formatDateTime(date, '%b %e')                 AS as_of,\n    round(toFloat64(option_close), 2)             AS mark,\n    round(toFloat64(vega), 3)                     AS vega_per_point,\n    round(100 * toFloat64(implied_volatility), 1) AS iv_pct\nFROM global_markets.options_greeks\nWHERE ticker =\n(\n    SELECT ticker\n    FROM global_markets.options_greeks\n    WHERE underlying_symbol = 'SPY'\n      AND expiration_date >= '2024-06-01'\n      AND expiration_date <  '2024-07-01'\n      AND startsWith(lower(option_type), 'p')\n      AND iv_converged = 1\n      AND volume > 0\n    GROUP BY ticker\n    ORDER BY count() DESC, sum(volume) DESC\n    LIMIT 1\n)\n  AND date >= '2024-05-01'\n  AND date <  '2024-07-01'\n  AND iv_converged = 1\nORDER BY date","computed_at":"2026-10-07T15:18:24.910177+00:00","elapsed":0.003232424}