{"slug":"what-breaks-an-options-backtest","qid":"survivorship","label":"Contracts that traded once, and contracts still trading at expiry","post_title":"What Breaks an Options Backtest","post_url":"/blog/what-breaks-an-options-backtest#q-survivorship","columns":["month","cohort","contracts","traded_to_expiry_pct","single_day_pct"],"rows":[{"month":"2021-09-01","cohort":"Sep 2021","contracts":10925,"traded_to_expiry_pct":53,"single_day_pct":5.3},{"month":"2021-10-01","cohort":"Oct 2021","contracts":3750,"traded_to_expiry_pct":41.2,"single_day_pct":7.8},{"month":"2021-11-01","cohort":"Nov 2021","contracts":3478,"traded_to_expiry_pct":41.1,"single_day_pct":8.5},{"month":"2021-12-01","cohort":"Dec 2021","contracts":3505,"traded_to_expiry_pct":46.1,"single_day_pct":8.5},{"month":"2022-01-01","cohort":"Jan 2022","contracts":3640,"traded_to_expiry_pct":48.4,"single_day_pct":7.3},{"month":"2022-02-01","cohort":"Feb 2022","contracts":3688,"traded_to_expiry_pct":47.2,"single_day_pct":12.8},{"month":"2022-03-01","cohort":"Mar 2022","contracts":3824,"traded_to_expiry_pct":38.9,"single_day_pct":9.4},{"month":"2022-04-01","cohort":"Apr 2022","contracts":3309,"traded_to_expiry_pct":43.9,"single_day_pct":6.9},{"month":"2022-05-01","cohort":"May 2022","contracts":4458,"traded_to_expiry_pct":48,"single_day_pct":7.3},{"month":"2022-06-01","cohort":"Jun 2022","contracts":4174,"traded_to_expiry_pct":46.8,"single_day_pct":6.5},{"month":"2022-07-01","cohort":"Jul 2022","contracts":3480,"traded_to_expiry_pct":49,"single_day_pct":5.9},{"month":"2022-08-01","cohort":"Aug 2022","contracts":3042,"traded_to_expiry_pct":35,"single_day_pct":9.1},{"month":"2022-09-01","cohort":"Sep 2022","contracts":4077,"traded_to_expiry_pct":51.5,"single_day_pct":5.2},{"month":"2022-10-01","cohort":"Oct 2022","contracts":3168,"traded_to_expiry_pct":42,"single_day_pct":5.2},{"month":"2022-11-01","cohort":"Nov 2022","contracts":3590,"traded_to_expiry_pct":56.6,"single_day_pct":18.3},{"month":"2022-12-01","cohort":"Dec 2022","contracts":4339,"traded_to_expiry_pct":52.8,"single_day_pct":14.6},{"month":"2023-01-01","cohort":"Jan 2023","contracts":4600,"traded_to_expiry_pct":55.9,"single_day_pct":9.5},{"month":"2023-02-01","cohort":"Feb 2023","contracts":4047,"traded_to_expiry_pct":54.1,"single_day_pct":15.1},{"month":"2023-03-01","cohort":"Mar 2023","contracts":5067,"traded_to_expiry_pct":56.8,"single_day_pct":13.3},{"month":"2023-04-01","cohort":"Apr 2023","contracts":3803,"traded_to_expiry_pct":57.4,"single_day_pct":11.1},{"month":"2023-05-01","cohort":"May 2023","contracts":3988,"traded_to_expiry_pct":53.8,"single_day_pct":12.1},{"month":"2023-06-01","cohort":"Jun 2023","contracts":4375,"traded_to_expiry_pct":53,"single_day_pct":15.6},{"month":"2023-07-01","cohort":"Jul 2023","contracts":5051,"traded_to_expiry_pct":55.5,"single_day_pct":13.1},{"month":"2023-08-01","cohort":"Aug 2023","contracts":5107,"traded_to_expiry_pct":55.3,"single_day_pct":9.1},{"month":"2023-09-01","cohort":"Sep 2023","contracts":4224,"traded_to_expiry_pct":56.4,"single_day_pct":15},{"month":"2023-10-01","cohort":"Oct 2023","contracts":4561,"traded_to_expiry_pct":47.6,"single_day_pct":11.8},{"month":"2023-11-01","cohort":"Nov 2023","contracts":4717,"traded_to_expiry_pct":50.9,"single_day_pct":11.4},{"month":"2023-12-01","cohort":"Dec 2023","contracts":3826,"traded_to_expiry_pct":55.3,"single_day_pct":14.6},{"month":"2024-01-01","cohort":"Jan 2024","contracts":4408,"traded_to_expiry_pct":58.6,"single_day_pct":11.8},{"month":"2024-02-01","cohort":"Feb 2024","contracts":4105,"traded_to_expiry_pct":59,"single_day_pct":13.8},{"month":"2024-03-01","cohort":"Mar 2024","contracts":4048,"traded_to_expiry_pct":52.3,"single_day_pct":14.2},{"month":"2024-04-01","cohort":"Apr 2024","contracts":3854,"traded_to_expiry_pct":62.4,"single_day_pct":11.5},{"month":"2024-05-01","cohort":"May 2024","contracts":4247,"traded_to_expiry_pct":52.2,"single_day_pct":11},{"month":"2024-06-01","cohort":"Jun 2024","contracts":3881,"traded_to_expiry_pct":48,"single_day_pct":13.9},{"month":"2024-07-01","cohort":"Jul 2024","contracts":4669,"traded_to_expiry_pct":57.3,"single_day_pct":10.8},{"month":"2024-08-01","cohort":"Aug 2024","contracts":5986,"traded_to_expiry_pct":50.1,"single_day_pct":16.5},{"month":"2024-09-01","cohort":"Sep 2024","contracts":4893,"traded_to_expiry_pct":54.5,"single_day_pct":13.9},{"month":"2024-10-01","cohort":"Oct 2024","contracts":4904,"traded_to_expiry_pct":55.4,"single_day_pct":11},{"month":"2024-11-01","cohort":"Nov 2024","contracts":4594,"traded_to_expiry_pct":54.8,"single_day_pct":10.4},{"month":"2024-12-01","cohort":"Dec 2024","contracts":4194,"traded_to_expiry_pct":44.4,"single_day_pct":11.9},{"month":"2025-01-01","cohort":"Jan 2025","contracts":4432,"traded_to_expiry_pct":57.9,"single_day_pct":11},{"month":"2025-02-01","cohort":"Feb 2025","contracts":4132,"traded_to_expiry_pct":57.6,"single_day_pct":10.7},{"month":"2025-03-01","cohort":"Mar 2025","contracts":5566,"traded_to_expiry_pct":64,"single_day_pct":7.7},{"month":"2025-04-01","cohort":"Apr 2025","contracts":8263,"traded_to_expiry_pct":50.2,"single_day_pct":12.6},{"month":"2025-05-01","cohort":"May 2025","contracts":5378,"traded_to_expiry_pct":57.7,"single_day_pct":8.9},{"month":"2025-06-01","cohort":"Jun 2025","contracts":3934,"traded_to_expiry_pct":58.3,"single_day_pct":10.3},{"month":"2025-07-01","cohort":"Jul 2025","contracts":4446,"traded_to_expiry_pct":63.2,"single_day_pct":8.8},{"month":"2025-08-01","cohort":"Aug 2025","contracts":4123,"traded_to_expiry_pct":58.3,"single_day_pct":9.8},{"month":"2025-09-01","cohort":"Sep 2025","contracts":5737,"traded_to_expiry_pct":57.1,"single_day_pct":10.3},{"month":"2025-10-01","cohort":"Oct 2025","contracts":5332,"traded_to_expiry_pct":65.8,"single_day_pct":9},{"month":"2025-11-01","cohort":"Nov 2025","contracts":4605,"traded_to_expiry_pct":51.7,"single_day_pct":11.8},{"month":"2025-12-01","cohort":"Dec 2025","contracts":4302,"traded_to_expiry_pct":53.4,"single_day_pct":12.9},{"month":"2026-01-01","cohort":"Jan 2026","contracts":5146,"traded_to_expiry_pct":60.3,"single_day_pct":11.8},{"month":"2026-02-01","cohort":"Feb 2026","contracts":4764,"traded_to_expiry_pct":56.3,"single_day_pct":12.6},{"month":"2026-03-01","cohort":"Mar 2026","contracts":5973,"traded_to_expiry_pct":54.8,"single_day_pct":9.9},{"month":"2026-04-01","cohort":"Apr 2026","contracts":5664,"traded_to_expiry_pct":60.3,"single_day_pct":10.5},{"month":"2026-05-01","cohort":"May 2026","contracts":5713,"traded_to_expiry_pct":59,"single_day_pct":10}],"shape":"series","sql":"SELECT\n    toString(toStartOfMonth(first_seen))                AS month,\n    formatDateTime(toStartOfMonth(first_seen), '%b %Y') AS cohort,\n    count()                                             AS contracts,\n    round(100 * countIf(min_dte <= 1) / count(), 1)      AS traded_to_expiry_pct,\n    round(100 * countIf(observed_days = 1) / count(), 1) AS single_day_pct\nFROM\n(\n    SELECT\n        ticker,\n        min(date)           AS first_seen,\n        min(days_to_expiry) AS min_dte,\n        count()             AS observed_days\n    FROM global_markets.options_greeks\n    WHERE underlying_symbol = 'SPY'\n      AND date >= '2021-09-01'\n      AND date <  '2026-09-01'\n      AND expiration_date < '2026-09-01'\n      AND volume > 0\n    GROUP BY ticker\n)\nWHERE first_seen < '2026-06-01'\nGROUP BY month, cohort\nORDER BY month","computed_at":"2026-10-07T15:18:25.125427+00:00","elapsed":0.003129572}