{"slug":"how-stock-splits-affect-options","qid":"adjusted_deliverables","label":"What one 100 share contract covers after a non whole split ratio, 2020 to July 2026","post_title":"How Stock Splits Affect Your Options","post_url":"/blog/how-stock-splits-affect-options#q-adjusted_deliverables","columns":["ratio_label","direction","split_count","shares_per_contract_after"],"rows":[{"ratio_label":"3-for-2","direction":"forward split","split_count":33,"shares_per_contract_after":150},{"ratio_label":"6-for-5","direction":"forward split","split_count":9,"shares_per_contract_after":120},{"ratio_label":"11-for-10","direction":"forward split","split_count":39,"shares_per_contract_after":110},{"ratio_label":"21-for-20","direction":"forward split","split_count":10,"shares_per_contract_after":105},{"ratio_label":"26-for-25","direction":"forward split","split_count":10,"shares_per_contract_after":104},{"ratio_label":"1-for-4","direction":"reverse split","split_count":259,"shares_per_contract_after":25},{"ratio_label":"1-for-5","direction":"reverse split","split_count":401,"shares_per_contract_after":20},{"ratio_label":"1-for-10","direction":"reverse split","split_count":1139,"shares_per_contract_after":10},{"ratio_label":"1-for-15","direction":"reverse split","split_count":216,"shares_per_contract_after":6.67},{"ratio_label":"1-for-20","direction":"reverse split","split_count":489,"shares_per_contract_after":5}],"shape":"ranking","sql":"WITH ratio_counts AS (\n    SELECT concat(toString(toUInt32(split_to)), '-for-', toString(toUInt32(split_from))) AS ratio_label,\n           if(toFloat64(split_to) > toFloat64(split_from), 'forward split', 'reverse split') AS direction,\n           round(100 * toFloat64(split_to) / toFloat64(split_from), 2) AS shares_per_contract_after,\n           count() AS split_count\n    FROM global_markets.stocks_splits\n    WHERE execution_date >= toDate('2020-01-01')\n      AND execution_date < toDate('2026-08-01')\n      AND toFloat64(split_from) > 0\n      AND toFloat64(split_to) > 0\n      AND toFloat64(split_from) = round(toFloat64(split_from))\n      AND toFloat64(split_to) = round(toFloat64(split_to))\n      AND modulo(toUInt32(split_to), toUInt32(split_from)) != 0\n    GROUP BY ratio_label, direction, shares_per_contract_after\n),\nranked AS (\n    SELECT ratio_label,\n           direction,\n           shares_per_contract_after,\n           split_count,\n           row_number() OVER (PARTITION BY direction ORDER BY split_count DESC) AS rank_in_direction\n    FROM ratio_counts\n)\nSELECT ratio_label,\n       direction,\n       split_count,\n       shares_per_contract_after\nFROM ranked\nWHERE rank_in_direction <= 5\nORDER BY shares_per_contract_after DESC","computed_at":"2026-08-04T14:01:10.434197+00:00","elapsed":0.003870396}