{"slug":"warren-buffett-index-put-trade","qid":"fifteen_year_windows","label":"fifteen_year_windows","post_title":"warren-buffett-index-put-trade","post_url":"/blog/warren-buffett-index-put-trade#q-fifteen_year_windows","columns":["outcome_bucket","window_count","lowest_multiple","highest_multiple"],"rows":[{"outcome_bucket":"2x to 3x the strike","window_count":41,"lowest_multiple":2.19,"highest_multiple":2.98},{"outcome_bucket":"3x to 4x the strike","window_count":20,"lowest_multiple":3,"highest_multiple":3.69},{"outcome_bucket":"4x to 5x the strike","window_count":4,"lowest_multiple":4.32,"highest_multiple":4.9},{"outcome_bucket":"5x or more","window_count":32,"lowest_multiple":5.07,"highest_multiple":6.87}],"shape":"ranking","sql":"WITH monthly AS\n(\n    SELECT\n        toStartOfMonth(date)           AS month_start,\n        argMax(toFloat64(close), date) AS month_close\n    FROM global_markets.stocks_daily_aggs\n    WHERE ticker = 'SPY'\n      AND date >= '2003-01-01'\n    GROUP BY month_start\n),\nwindows AS\n(\n    SELECT later.month_close / earlier.start_close AS multiple\n    FROM monthly AS later\n    INNER JOIN\n    (\n        SELECT\n            addYears(month_start, 15) AS month_start,\n            month_close               AS start_close\n        FROM monthly\n    ) AS earlier USING (month_start)\n)\nSELECT\n    multiIf(multiple < 1, 'below the strike',\n            multiple < 2, '1x to 2x the strike',\n            multiple < 3, '2x to 3x the strike',\n            multiple < 4, '3x to 4x the strike',\n            multiple < 5, '4x to 5x the strike',\n                          '5x or more') AS outcome_bucket,\n    count()                             AS window_count,\n    round(min(multiple), 2)             AS lowest_multiple,\n    round(max(multiple), 2)             AS highest_multiple\nFROM windows\nGROUP BY outcome_bucket\nORDER BY lowest_multiple","computed_at":"2026-09-30T15:12:45.403559+00:00","elapsed":0.003909179}