{"slug":"how-to-read-an-options-symbol","qid":"anatomy","label":"One expiration, four strikes: every OSI field cut out of the symbol","post_title":"How to Read an Options Symbol (OSI Format)","post_url":"/blog/how-to-read-an-options-symbol#q-anatomy","columns":["contract","root","expiry_field","right_code","strike_field","strike_dollars","listed_expiration"],"rows":[{"contract":"SPY260116C00500000","root":"SPY","expiry_field":"260116","right_code":"C","strike_field":"00500000","strike_dollars":500,"listed_expiration":"Jan 16, 2026"},{"contract":"SPY260116P00500000","root":"SPY","expiry_field":"260116","right_code":"P","strike_field":"00500000","strike_dollars":500,"listed_expiration":"Jan 16, 2026"},{"contract":"SPY260116C00600000","root":"SPY","expiry_field":"260116","right_code":"C","strike_field":"00600000","strike_dollars":600,"listed_expiration":"Jan 16, 2026"},{"contract":"SPY260116P00600000","root":"SPY","expiry_field":"260116","right_code":"P","strike_field":"00600000","strike_dollars":600,"listed_expiration":"Jan 16, 2026"},{"contract":"SPY260116C00650000","root":"SPY","expiry_field":"260116","right_code":"C","strike_field":"00650000","strike_dollars":650,"listed_expiration":"Jan 16, 2026"},{"contract":"SPY260116P00650000","root":"SPY","expiry_field":"260116","right_code":"P","strike_field":"00650000","strike_dollars":650,"listed_expiration":"Jan 16, 2026"},{"contract":"SPY260116C00700000","root":"SPY","expiry_field":"260116","right_code":"C","strike_field":"00700000","strike_dollars":700,"listed_expiration":"Jan 16, 2026"},{"contract":"SPY260116P00700000","root":"SPY","expiry_field":"260116","right_code":"P","strike_field":"00700000","strike_dollars":700,"listed_expiration":"Jan 16, 2026"}],"shape":"table","sql":"SELECT\n    contract,\n    substring(contract, 1, length(contract) - 15)                  AS root,\n    substring(contract, length(contract) - 14, 6)                  AS expiry_field,\n    substring(contract, length(contract) - 8, 1)                   AS right_code,\n    substring(contract, length(contract) - 7, 8)                   AS strike_field,\n    toFloat64(substring(contract, length(contract) - 7, 8)) / 1000 AS strike_dollars,\n    listed_expiration\nFROM\n(\n    SELECT\n        replaceRegexpOne(ticker, '^O:', '')               AS contract,\n        formatDateTime(any(expiration_date), '%b %e, %Y') AS listed_expiration\n    FROM global_markets.options_greeks\n    WHERE underlying_symbol = 'SPY'\n      AND expiration_date = '2026-01-16'\n      AND toFloat64(strike_price) IN (500, 600, 650, 700)\n      AND date >= '2025-12-01'\n      AND date <  '2026-01-01'\n    GROUP BY contract\n)\nORDER BY strike_dollars ASC, right_code ASC","computed_at":"2026-08-22T04:13:48.630676+00:00","elapsed":0.078951291}