Strasmore Research
Learn am Matt ConnorBy Matt Connor · Updated 2026-08-08

How to Read Option Chain Column by Column

Option chain dey list every strike and expiration for one stock. See wetin bid, ask, volume, implied volatility and delta columns each measure.

Option chain na the table wey broker dey show for one underlying stock or fund. E get every listed expiration, every strike price, plus one row of live numbers for the call and put for each strike. To read am, you need know wetin each column dey measure and how the two coordinates — expiration and strike — dey locate one contract inside the grid. This page go explain one real chain column by column, using S&P 500 tracker SPY on July 15, 2026 as the worked example.

Wetin be option chain?

Every listed option get four main details: the underlying symbol, the expiration date, the strike price, and whether na call or put. The chain na the way dem arrange these details for one table. Selector for the top dey let you choose the expiration. Strike prices dey run down the middle of the screen. Call columns dey one side, while put columns dey the other side. When you choose one expiration, you dey read one flat part of the grid: one row for each strike, plus one set of quote columns for each side.

The columns describe that particular contract, no be the underlying stock. One underlying fit get dozens of expirations and hundreds of strikes. So, full chain for heavily traded name fit reach thousands of rows. Brokers dey hide most of them by default. Dem dey open the ones near the money first, where the strike dey closest to the current share price.

One expiration, strike by strike, wey we dey read

Na one real example be this: SPY calls and puts wey dey expire August 21, 2026, priced with the July 15 closing price, across the strikes wey dey bracket the share price.

QueryOne expiration for SPY chain: closing prices and delta by strike, August 21 2026 expiry, as of July 15 2026
strikeunderlying pricecall lastput lastcall deltaput delta
735754.6828.826.070.73-0.26
740754.6824.747.140.7-0.3
745754.6821.158.230.65-0.35
750754.6817.339.760.6-0.4
755754.6814.0311.520.54-0.46
760754.6810.913.40.48-0.52
765754.688.4516.050.41-0.59
770754.686.119.160.34-0.65
The exact SQL behind every number
SELECT toString(toUInt32(strike_price)) AS strike,
       round(any(underlying_close), 2) AS underlying_price,
       round(maxIf(option_close, option_type = 'C'), 2) AS call_last,
       round(maxIf(option_close, option_type = 'P'), 2) AS put_last,
       round(maxIf(delta, option_type = 'C'), 2) AS call_delta,
       round(minIf(delta, option_type = 'P'), 2) AS put_delta
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
  AND date = toDate('2026-07-15')
  AND expiration_date = toDate('2026-08-21')
  AND strike_price BETWEEN 735 AND 770
  AND toUInt32(strike_price) % 5 = 0
  AND iv_converged
GROUP BY strike_price
HAVING countIf(option_type = 'C') > 0 AND countIf(option_type = 'P') > 0
ORDER BY strike_price
Run am yourself

Two patterns show immediately. Call prices dey fall as strike dey rise, from $28.82 for the $735 strike to $6.1 for $770: right to buy for lower price get more value. Put prices dey move the opposite direction across the same eight rows, from $6.07 reach $19.16. The two ladders cross near the share price of $754.68, and the strike wey call and put trade closest together mark the money.

The delta columns dey describe this shape with another unit. Delta na the change for option price when underlying move by $1, and e also serve as rough measure of how likely contract be to finish in the money. For the $735 strike, the call dey show 0.73 and the put dey show -0.26. By the $770 strike, the call don fall to 0.34. Call and put for the same row always get deltas wey roughly differ by one in magnitude. Na because the two contracts cover opposite halves of the same distribution. The rest of these sensitivity columns dey covered for option greeks wey dem explain.

Bid, ask, and why dem no be one price

The chain dey show two prices for every contract. Bid na the highest price wey buyer dey ready to pay at that time. Ask na the lowest price wey seller go accept. The gap between dem na spread. Market order to buy dey fill for ask, while market order to sell dey fill for bid. So spread na real cost wey trader pay when e enter and again when e comot. The “last” price wey chain show fit don old for some minutes, and e fit dey anywhere compared with the current quote.

Spreads no dey the same across the chain. Below, na the median quoted bid and ask for the same expiration across seven call strikes, measured during the regular session on July 15, 2026.

QueryMedian quoted bid and ask by strike: SPY calls wey dey expire August 21 2026, regular session of July 15 2026
strikemedian bidmedian askmedian spread centsquotes wey dem record
$740 call24.1824.3112117845
$750 call16.7916.8910149331
$760 call10.6810.713319658
$770 call5.986.013204723
$780 call2.92.922157120
$800 call0.530.54122658
$820 call0.120.1316902
The exact SQL behind every number
SELECT concat('$', toString(toUInt32(toFloat64(toUInt32OrZero(substring(ticker, length(ticker) - 7, 8))) / 1000)), ' call') AS strike,
       round(quantileDeterministic(0.5)(toFloat64(bid_price), toUInt64(sip_timestamp)), 2) AS median_bid,
       round(quantileDeterministic(0.5)(toFloat64(ask_price), toUInt64(sip_timestamp)), 2) AS median_ask,
       round(100 * quantileDeterministic(0.5)(toFloat64(ask_price - bid_price), toUInt64(sip_timestamp)), 1) AS median_spread_cents,
       toUInt64(count()) AS quotes_recorded
FROM global_markets.cache_options_quotes
WHERE ticker IN ('O:SPY260821C00740000', 'O:SPY260821C00750000', 'O:SPY260821C00760000',
                 'O:SPY260821C00770000', 'O:SPY260821C00780000', 'O:SPY260821C00800000',
                 'O:SPY260821C00820000')
  AND sip_timestamp >= '2026-07-15 13:30:00'
  AND sip_timestamp < '2026-07-15 20:00:00'
  AND bid_price > 0
  AND ask_price > bid_price
GROUP BY ticker
ORDER BY toUInt32OrZero(substring(ticker, length(ticker) - 7, 8))
Run am yourself

The deep in-the-money strike for the top of the panel get median spread of 12 cents, against bid of $24.18. The far out-of-the-money strike for the bottom show 1 cent against bid of $0.12. For absolute amount, the cheap contract get tighter spread. But compared with the contract own price, the spread dey much wider. Na that fraction determine the real cost of a round trip. We explain the two-sided quote mechanics inside bid ask spread. The same panel show the other direction wey spreads dey move: busy strikes near the money record well over one hundred thousand quote updates during the session, while the distant ones record only a few thousand.

Volume and open interest

Columns two dey count activity, and readers dey mix dem up steady. Volume dey count contracts wey traders trade during the current session, and e reset to zero overnight. Open interest dey count contracts wey still open at the end of the previous session. So e dey update once every day and e dey show accumulated positioning, no be today’s flow. Strike fit show heavy volume with almost no open interest when traders open and close positions inside the same day.

QueryWhere trading happen: SPY contract volume by strike, August 21 2026 expiry, July 15 2026
strikecall volumeput volume
735811087
7402334057
745195970
75010779057
75534502340
7603769472
765297645
7704547109
The exact SQL behind every number
SELECT toString(toUInt32(strike_price)) AS strike,
       toUInt64(sumIf(volume, option_type = 'C')) AS call_volume,
       toUInt64(sumIf(volume, option_type = 'P')) AS put_volume
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
  AND date = toDate('2026-07-15')
  AND expiration_date = toDate('2026-08-21')
  AND strike_price BETWEEN 735 AND 770
  AND toUInt32(strike_price) % 5 = 0
  AND iv_converged
GROUP BY strike_price
HAVING countIf(option_type = 'C') > 0 AND countIf(option_type = 'P') > 0
ORDER BY strike_price
Run am yourself

Volume clusters. Across these eight strikes, call side move from 81 contracts for the lowest strike reach 4547 for the highest one, while put side lean for the other direction. Round numbers and strikes wey near share price dey take most of the flow. Strike wey dey two or three steps away fit carry only small part of am. When chain row show wide spread, thin volume for that same row usually dey beside am. Volume versus open interest measure the whole tape for this matter.

Implied volatility, strike by strike

Implied volatility column dey turn contract price into annualized percentage: na the volatility figure wey go make pricing model return the quoted price. E no be forecast; na another way to show the price. Contracts wey get the same underlying and same expiration fit routinely carry different implied volatilities for different strikes. If you plot the column against strike, e go draw the shape wey dem dey call smile or skew.

QueryImplied volatility by strike: SPY options wey dey expire August 21 2026, as of July 15 2026
strikeimplied vol pctstrike vs spot pct
64023.6-15.2
66025.8-12.5
68022.5-9.9
70019.3-7.2
72017.4-4.6
74015-1.9
76012.60.7
78012.53.4
80010.26
82011.28.7
84012.811.3
The exact SQL behind every number
SELECT toString(toUInt32(strike_price)) AS strike,
       round(100 * avg(implied_volatility), 1) AS implied_vol_pct,
       round(100 * (strike_price / any(underlying_close) - 1), 1) AS strike_vs_spot_pct
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
  AND date = toDate('2026-07-15')
  AND expiration_date = toDate('2026-08-21')
  AND strike_price BETWEEN 640 AND 840
  AND toUInt32(strike_price) % 20 = 0
  AND iv_converged
  AND implied_volatility BETWEEN 0.02 AND 3
GROUP BY strike_price
ORDER BY strike_price
Run am yourself

The curve no flat. The lowest strike for this panel dey -15.2% away from the share price, and e price at 23.6%. The middle of the range dey much lower, while the highest strike turn back up to 12.8%. For index options, downside wing normally price above upside wing. Na persistent asymmetry, no be just daily movement. Two things follow for anybody wey dey read the column. One single “IV” number wey dem quote for a stock na average across a surface wey no flat. And comparison of implied volatility between two strikes only make sense after you don show how far each one dey from the share price. Implied volatility define the measure, while volatility skew show the shape.

How same-day chain different

Chains for contracts wey dey expire for that same session, the 0DTE contracts, look like every other chain but dem dey behave differently for one area: everything for dem dey move faster. Time value dey drain within hours instead of months, delta dey swing hard as share price cross strike, and strike grid usually dey finer near the money. The way one day tape compose show how much activity don gather for there now.

QuerySPY option volume by time to expiration, July 15 2026
e go expire incontracts mpct of SPY volumedifferent contracts
same day (0DTE)8.4866.9170
1-7 days2.9623.4844
8-30 days0.614.81299
31-90 days0.514.11253
over 90 days0.10.81502
The exact SQL behind every number
WITH dateDiff('day', toDate('2026-07-15'), toDate(concat('20', substring(ticker, length(ticker) - 14, 2), '-', substring(ticker, length(ticker) - 12, 2), '-', substring(ticker, length(ticker) - 10, 2)))) AS dte
SELECT multiIf(dte = 0, 'same day (0DTE)', dte <= 7, '1-7 days', dte <= 30, '8-30 days',
               dte <= 90, '31-90 days', 'over 90 days') AS expires_in,
       round(sum(volume) / 1e6, 2) AS contracts_m,
       round(100 * toFloat64(sum(volume)) / (SELECT toFloat64(sum(volume))
             FROM global_markets.options_minute_aggs
             WHERE window_start >= '2026-07-15 00:00:00' AND window_start < '2026-07-16 00:00:00'
               AND substring(ticker, 3, length(ticker) - 17) = 'SPY'), 1) AS pct_of_spy_volume,
       toUInt64(uniqExact(ticker)) AS distinct_contracts
FROM global_markets.options_minute_aggs
WHERE window_start >= '2026-07-15 00:00:00'
  AND window_start < '2026-07-16 00:00:00'
  AND substring(ticker, 3, length(ticker) - 17) = 'SPY'
  AND dte >= 0
GROUP BY expires_in
ORDER BY min(dte)
Run am yourself

Contracts wey expire that same afternoon take 66.9% of SPY option volume on July 15, 2026, 8.48 million contracts spread across only 170 different strikes. Everything wey get expiry beyond ninety days account for 0.8% of the volume, while dem list 1502 different contracts. You suppose carry that pattern enter any chain wey you open: the widest part of the grid get the least trading, while the narrow same-day part hold most of the activity. Zero day options explain that part based on its own terms.

Reading one row end to end

Take the $755 strike from the first panel, with SPY at $754.68. The call last traded at $14.03 and the put at $11.52. Na dem be the closest pair for that slice, so e identify this row as the at-the-money row. The call delta of 0.54 mean say if SPY move $1, that call go move about 0.54 dollars. The put for the same row get delta of -0.46 for the same $1 move, but for opposite direction.

One contract cover 100 shares. So, when chain quote $14.03, na per share e dey quote. The contract go cost roughly 100 times that amount before commissions. The multiplier na the thing wey people most often misread for chain. Every other detail for the row describe the same contract from another angle: the spread na wetin e cost to transact, the volume show how much trading activity dey there, and implied volatility na the volatility assumption wey price carry inside. Call options and put options explain the payoff mechanics wey each row depend on.

FAQ

Wetin the columns for option chain mean?

Strike and expiration identify the contract. Bid and ask na the live two-sided quote, last na the latest trade price, volume count today’s trades, while open interest count positions wey still dey open from earlier sessions. Implied volatility restate the price as annualized percentage, and the greeks columns measure how sensitive the contract be to share price, time and volatility.

Wetin be the difference between volume and open interest?

Volume count contracts wey traders trade during the current session, and e start from zero every morning. Open interest count contracts wey remain open after the previous session settle. So e represent the prior day position and e only change when traders open or close positions, no be when dem transfer positions between themselves.

Why two strikes for the same expiration get different implied volatilities?

Options for different strikes cover different parts of the possible future price range, and market dey price each part differently. For the SPY example above, the lowest strike for the panel price near 23.6%, while the middle of the range sit well below am. Na this curve traders dey call smile or skew.

Wetin delta of 0.50 for option chain mean?

Delta of 0.50 mean the contract price move about 50 cents when the underlying share price move $1. Traders commonly read am as rough estimate of the chance say the contract go finish in the money. Delta dey near 0.50 for calls with strike wey dey closest to the current share price, and e dey fall toward zero for strikes wey dey far away.

Option chain price na for one share or one contract?

The quoted price na per share. Standard US equity option cover 100 shares, so contract wey quote at $2.00 go cost about $200 plus fees. Option chains almost never show this multiplier.


Every figure above come from stored, versioned query over the options tape. You fit expand any panel to read the SQL, or pull the same chain yourself for the Strasmore terminal.

#options#option chain#options basics#implied volatility