{"slug":"mini-index-options-explained","qid":"settle_gap","label":"Open to close moves on monthly expiration Fridays, SPY since 2015","post_title":"Mini Index Options Explained: XSP, XND, MRUT","post_url":"/blog/mini-index-options-explained#q-settle_gap","columns":["move_bucket","expiration_fridays","bucket_high_pct"],"rows":[{"move_bucket":"under 0.25%","expiration_fridays":43,"bucket_high_pct":0.25},{"move_bucket":"0.25% to 0.50%","expiration_fridays":42,"bucket_high_pct":0.5},{"move_bucket":"0.50% to 1%","expiration_fridays":32,"bucket_high_pct":0.96},{"move_bucket":"1% to 2%","expiration_fridays":16,"bucket_high_pct":1.93},{"move_bucket":"over 2%","expiration_fridays":3,"bucket_high_pct":5.66}],"shape":"ranking","sql":"WITH expiry_sessions AS\n(\n    SELECT\n        date,\n        abs(100 * (toFloat64(close) / toFloat64(open) - 1)) AS move_pct\n    FROM global_markets.stocks_daily_aggs\n    WHERE ticker = 'SPY'\n      AND date >= '2015-01-01'\n      AND date <  today()\n      AND toDayOfWeek(date) = 5\n      AND toDayOfMonth(date) BETWEEN 15 AND 21\n      AND toFloat64(open) > 0\n)\nSELECT\n    multiIf(\n        move_pct < 0.25, 'under 0.25%',\n        move_pct < 0.50, '0.25% to 0.50%',\n        move_pct < 1.00, '0.50% to 1%',\n        move_pct < 2.00, '1% to 2%',\n                         'over 2%')  AS move_bucket,\n    count()                          AS expiration_fridays,\n    round(max(move_pct), 2)          AS bucket_high_pct\nFROM expiry_sessions\nGROUP BY move_bucket\nORDER BY min(move_pct)","computed_at":"2026-08-22T04:16:27.922996+00:00","elapsed":0.031567494}