{"slug":"options-approval-levels-explained","qid":"covered_call_ladder","label":"What a covered call collects across strikes: AAPL, about one month out","post_title":"Options Approval Levels: What Each Tier Allows","post_url":"/blog/options-approval-levels-explained#q-covered_call_ladder","columns":["strike_label","call_premium","premium_pct_of_spot","above_spot_pct","priced_on"],"rows":[{"strike_label":"$320","call_premium":7.84,"premium_pct_of_spot":2.47,"above_spot_pct":0.9,"priced_on":"Aug 19, 2026"},{"strike_label":"$325","call_premium":5.85,"premium_pct_of_spot":1.85,"above_spot_pct":2.5,"priced_on":"Aug 19, 2026"},{"strike_label":"$330","call_premium":4.25,"premium_pct_of_spot":1.34,"above_spot_pct":4.1,"priced_on":"Aug 19, 2026"},{"strike_label":"$335","call_premium":3,"premium_pct_of_spot":0.95,"above_spot_pct":5.7,"priced_on":"Aug 19, 2026"},{"strike_label":"$340","call_premium":2.09,"premium_pct_of_spot":0.66,"above_spot_pct":7.3,"priced_on":"Aug 19, 2026"},{"strike_label":"$345","call_premium":1.44,"premium_pct_of_spot":0.45,"above_spot_pct":8.8,"priced_on":"Aug 19, 2026"}],"shape":"table","sql":"WITH chain AS\n(\n    SELECT\n        expiration_date,\n        toFloat64(strike_price)                AS strike,\n        formatDateTime(any(date), '%b %e, %Y') AS priced_on,\n        avg(toFloat64(option_close))           AS premium,\n        avg(toFloat64(underlying_close))       AS spot,\n        sum(volume)                            AS contracts\n    FROM global_markets.options_greeks\n    WHERE underlying_symbol = 'AAPL'\n      AND lower(option_type) IN ('call', 'c')\n      AND date >= today() - 30\n      AND date = (\n              SELECT max(date)\n              FROM global_markets.options_greeks\n              WHERE underlying_symbol = 'AAPL'\n                AND date >= today() - 30\n          )\n      AND days_to_expiry BETWEEN 20 AND 45\n      AND iv_converged = 1\n      AND volume > 0\n    GROUP BY expiration_date, strike\n),\nbusiest AS\n(\n    SELECT expiration_date\n    FROM chain\n    GROUP BY expiration_date\n    ORDER BY sum(contracts) DESC\n    LIMIT 1\n)\nSELECT\n    concat('$', toString(round(strike, 2))) AS strike_label,\n    round(premium, 2)                       AS call_premium,\n    round(100 * premium / spot, 2)          AS premium_pct_of_spot,\n    round(100 * (strike / spot - 1), 1)     AS above_spot_pct,\n    priced_on\nFROM chain\nWHERE expiration_date IN (SELECT expiration_date FROM busiest)\n  AND strike >= spot\n  AND strike <= spot * 1.10\nORDER BY strike","computed_at":"2026-08-22T04:17:52.054122+00:00","elapsed":0.096606403}