OCC Option Symbol Format: Root, Date, Type, and Strike
OCC and OSI option tickers use a predictable 21-character structure: root symbol, YYMMDD expiration date, call or put flag, and strike price stored in thousandths. This guide is the parser-focused companion to the interactive decoder, with explicit GLDM, SPY, QQQ, and SPXW examples.
SPY 260417C00500000QQQ 260618P00480000GLDM 260618C00065000SPXW 260417P06000000OCC symbol format at a glance
Use this table when you need the exact parser rule before opening the interactive decoder or contracts API.
| Component | Example | Meaning |
|---|---|---|
| Root | GLDM | Six-character root field; trim right-side padding after slicing. |
| Expiration | 260618 | YYMMDD date, so this example means 2026-06-18. |
| Call / put | C | Contract type. C is call; P is put. |
| Strike | 00065000 | Eight digits stored in thousandths, so this example means 65.00. |
OCC / OSI field breakdown
For parser implementation, split the string by fixed positions before trimming or converting field values. This avoids root-padding and strike-scaling errors.
| Field | Position | Example | Parser rule |
|---|---|---|---|
| Root | 1-6 | SPY | Read six characters, then trim right-side padding spaces. Do not assume every root has three letters. |
| Expiration | 7-12 | 260417 | Parse as YYMMDD, then convert to a full date such as 2026-04-17. |
| Call / put | 13 | C | Accept C for calls and P for puts. Reject other values instead of guessing. |
| Strike | 14-21 | 00500000 | Convert the final eight digits to a number and divide by 1,000, so 00500000 becomes 500.00. |
GLDM example
How to decode a GLDM OCC option symbol
For a GLDM option, keep the same fixed-width logic and do not special-case the four-letter root. In the padded example GLDM 260618C00065000, the root field is GLDM with two trailing spaces, the date block is June 18, 2026, the side is a call, and the strike is 65.00 after dividing the final eight digits by 1,000.
In a compact API identifier such as O:GLDM260618C00065000, remove the optional prefix, locate the YYMMDD block, then parse the side and strike fields. The output should be the same contract identity as the padded version.
Fixed-width layout
OCC option symbol format: root, YYMMDD, C/P, strike
The standard OSI layout is fixed-width even when display systems show a compact version. Positions 1 through 6 hold the root field, positions 7 through 12 hold the expiration date in YYMMDD form, position 13 holds C or P, and positions 14 through 21 hold the strike price in thousandths. That final conversion is the parser step most likely to create incorrect strikes if it is skipped.
SPY 260417C00500000
QQQ 260618P00480000
GLDM 260618C00065000
SPXW 260417P06000000
root = characters 1-6, trimmed after parsing
date = YYMMDD
type = C or P
strike = final 8 digits / 1000How to split an OCC option symbol
Root
1 to 6 characters, often padded with spaces
Expiration
YYMMDD, for example 260417 means 2026-04-17
Type
C for call, P for put
Strike
Eight digits in thousandths, so 00500000 means 500.00
Common OCC parser mistakes
These mistakes are common when a parser is written from display examples instead of the fixed-width OSI contract.
| Mistake | Failure mode | Correct handling |
|---|---|---|
| Assuming the root is always three letters | GLDM, SPXW, adjusted roots, and padded roots are parsed incorrectly. | Slice six root characters first, then trim right-side padding spaces. |
| Splitting on spaces before slicing | Compact and padded symbols produce different field boundaries. | Normalize optional prefixes, then parse fixed-width or compact forms with explicit date/type/strike positions. |
| Using the final eight digits as dollars | 00500000 becomes 500000 instead of 500.00. | Convert to a number and divide by 1,000 before formatting. |
| Treating SPX and SPXW as equivalent | Settlement and expiration workflows can be mislabeled. | Preserve the root exactly and link SPXW symbols to SPXW expiration logic. |
OCC symbol to API lookup mapping
After parsing the symbol, keep the compact OCC ticker as the stable identifier for contracts, snapshots, quotes, trades, and aggregates.
| Workflow | Input from symbol | API path pattern |
|---|---|---|
| Single contract lookup | Compact OCC ticker such as O:SPY260417C00500000 | /v1/options/contracts/{occ_ticker}/ |
| Latest contract state | Underlying root plus compact OCC ticker | /v1/options/snapshot/{root}/{occ_ticker}/ |
| Chain by expiration | Root and parsed expiration date | /v1/options/chain/{root}/?expiration_date=YYYY-MM-DD |
| Historical bars | Compact OCC ticker and date window | /v1/options/aggs/{occ_ticker}/1/day/... |
OCC option symbol FAQ
What is the OCC option symbol format?
The OCC format is root symbol, YYMMDD expiration, C or P, then an eight digit strike price stored in thousandths.
How long is an OCC option symbol?
The fixed-width OSI form is 21 characters: a six-character root field, six date digits, one C or P flag, and eight strike digits. Compact display forms may remove root padding spaces.
Is OCC the same as OSI?
For most practical parsing work, yes. OSI is the standardized option symbology format used for OCC-style contract identifiers.
Why does GLDM have spaces in OCC examples?
The root field can be padded to six characters. Many systems display or accept the compact form, but parsers should handle optional spaces.
Operational usage
How to use OCC Option Symbol Format: Root, Date, Type, and Strike in a real workflow
Treat this page as a decision boundary for the surrounding API workflow. Before a value from OCC Option Symbol Format: Root, Date, Type, and Strikeenters a scanner, dashboard, calendar, backtest, or support answer, store the source route, request parameters, relevant timestamp, freshness label, and the reason the value is suitable for the next step.
The important implementation habit is to keep display labels separate from stable identifiers. Dates should remain tied to the calendar rule or listed-expiration source that produced them. Option rows should keep the OCC symbol, expiration, strike, side, quote state, and pagination context that created the row. Provider or product answers should keep the entitlement, licensing, and support assumptions visible.
When the workflow changes, rerun the page against one concrete example instead of trusting a general claim. Pick the ticker, date window, endpoint family, and expected output artifact. Then verify that the same terminology appears in the API request, UI label, log entry, and review checklist.
Related pages
Interactive OCC decoder
Paste any OCC or OSI ticker and decode the fields instantly.
Options contracts API
Validate a parsed OCC ticker against contract reference data before requesting market data.
Contracts API docs
Fetch a single contract by OCC ticker or scan contracts by expiration.
SPX options dates
Understand SPX and SPXW expiration context before parsing index option symbols.