Columns and types
These columns come from the same versioned logical catalog used by the query validator and engine. They describe the fields you can query. Some historical rows have missing values; fields absent from older shards can return typed NULL.
| ticker | VARCHAR |
| underlying | VARCHAR |
| expirationDate | DATE |
| strike | DOUBLE |
| optionType | VARCHAR |
| timestamp | TIMESTAMP |
| open | DOUBLE |
| high | DOUBLE |
| low | DOUBLE |
| close | DOUBLE |
| volume | DOUBLE |
| transactions | BIGINT |
| implied_volatility | DOUBLE |
| delta | DOUBLE |
| gamma | DOUBLE |
| theta | DOUBLE |
| vega | DOUBLE |
| rho | DOUBLE |
No matching rows. Clear the filter to see all records.
Current logical schema for lake.intraday_options
Coverage and timing
Minute-level options bars, roughly one year of history. Requires a literal `timestamp` range. One object per day, so the range decides what is read and an unbounded query is rejected: e.g. `timestamp >= TIMESTAMP '2026-09-01' AND timestamp < TIMESTAMP '2026-09-19'`, with an explicit `underlying` list. For coverage questions (first/last date on file), bound a window or use lake.options_daily.
Minute-grain `options_daily`, with the same `underlying`-not-`ticker` filtering rule. History is roughly one year — do not assume a start date, and do not scan the whole table to find it: check `MIN(timestamp)` inside a bounded window. Always give an explicit `underlying` list and a bounded range.
Run a limited query
Use a registered API key with lake scope. Select needed columns, bind user-supplied values and restrict dates when the table has a time dimension. Query results are durable parts with a schema and manifest rather than an unbounded in-memory array.
This reference documents the schema and its meaning. Run queries in your signed-in workspace; this page does not execute SQL or show private results and datasets.
SELECT "ticker", "underlying", "expirationDate"
FROM lake.intraday_options
LIMIT 20;