HistoricalData

Historical US options data — end-of-day chains

Coverage: Options on US stocks, ETFs and indices, with archive history dating to February 2002.

Data: Bid/ask quotes, volume, open interest, Greeks and implied volatility, across 34 documented columns.

Files: Plain CSV, one file per trading day and one row per contract.

Check an option root in the latest published trading session.

Options dataTSLA · 4,704 contracts on 2026-09-08

Sample Data & Free Download

Download sample (239 MB)

Six months of real options data: July–December 2022, 127 trading days, with all 34 CSV columns in the same format as the paid archive. Download the files to test your parser and research workflow.

Sample rows

All 34 CSV columns, with source filenames

Six rows from the downloadable sample: TSLA before and after its split, KO on its September ex-dividend date, SPY, and SPX/SPXW contracts with AM/PM settlement. Scroll horizontally to inspect every field.

Six real options rows with all 34 CSV columns and source filenames.
Source filecontractunderlyingexpirationtypestrikestylequote_datebidbid_sizeaskask_sizequote_timevolumeopen_interestopenhighlowclosetrade_vwaptransactionsmultileg_volumeactive_minuteslast_trade_dateunderlying_closesettlement_timeiv_bidiv_askiviv_flagdeltagammathetavegarho
2022-08-24_options.csvTSLA220916C00900000TSLA2022-09-16call900A2022-08-2441.45542.41221311125645.155541.341.7548.82838392932662022-08-24891.29PM0.5013810.5120210.50670100.5006250.00352-374.62119789.28760525.475517
2022-08-25_options.csvTSLA220916C00300000TSLA2022-09-16call300A2022-08-2511.912.05625494916.516.810.21211.9057135118023082022-08-25296.07PM0.4655840.4707620.46817300.4822770.011712-117.00077728.96977.884765
2022-09-15_options.csvKO220916C00060000KO2022-09-16call60A2022-09-150.1150.14121019260.590.590.090.130.186240510721582022-09-1559.53PM0.2137480.252560.23346300.271220.455261-49.0887131.0323910.043871
2022-09-15_options.csvSPY220916P00390000SPY2022-09-16put390A2022-09-152.55562.5819393764851532.414.221.232.582.513464971254773902022-09-15390.12PM0.2802490.2839510.28210-0.5321330.068874-612.4503158.104366-0.5758
2022-09-15_options.csvSPX221021C03900000SPX2022-10-21call3900E2022-09-15124.415125.41526810079138.03142.76116.47118.9122.217339300232022-09-153901.35AM0.2413840.2434660.24242500.5373920.001358-610.793381480.433515189.062882
2022-09-15_options.csvSPXW220916C03900000SPXW2022-09-16call3900E2022-09-1528.51628.911308960354.766.3820.6928.8727.639181413021942022-09-153901.35PM0.2800820.285070.28257700.576680.006805-4136.2583280.1909076.085294

Verify the files yourself

The ZIP includes verify.py, the README and a file manifest with daily interest-rate curves. From the extracted sample folder, run python verify.py --complete day_by_date to check the complete file set, checksums, column structure and documented data rules. Python is required; no additional packages are needed.

View verification log: all 127 sample files passed

SPX and SPXW appear separately in the sample's underlying field, so the verification log reports five names.

== verifying day_by_date\2022-07-01_options.csv  6.3 MB ==
-- 2022-07-01_options.csv  6.3 MB
   sha256=00a1c5086256ac6d66fc07f0045e755904fc240dbb29f90f9245ee5142c51ab2
   md5=27e1f350aa38f9c4fe4747e13615b8e1
   columns: 34 in file, 34/34 of the documented schema
   rows 34,898   underlyings 5
   iv_flag  0:30,219  1:11  2:1,557  3:1,856  5:3  6:1,252
   iv 86.62%   greeks 86.62%   bid/ask-iv range 74.73%   close 41.51%   volume>0 43.21%   AM 7,094 / PM 27,804
   structure: header, 34 fields per row, 34 typed columns, 8 never-blank columns - checked on every row
   section 8: 19 of 19 invariants checked on every row (all)

[... 126 further files omitted ...]

-- manifest.json (whole manifest)
   lists 127 day(s), 2022-07-01 to 2022-12-30
   127 file(s) here match their recorded SHA-256, byte count and row count

   calendar coverage complete: 127 trading days (2022-07-01 to 2022-12-30), no unexplained gaps

== 127 file(s): PASS - exactly as published (complete set: 127 of 127 listed files present) ==

Datasets & Subscriptions

The US options archive begins in February 2002 and includes data from the dot-com lows, the 2008–2009 financial crisis, the COVID crash and the 2022 bear market.

Dot-com lows · 2002–2003 Financial crisis · 2008–2009 COVID crash · 2020 Bear market · 2022 free sample 2002 2005 2010 2015 2020 2026

Dot-com lows · 2002–2003

Prolonged drawdowns and sustained high option premiums for testing strategies through an extended downturn.

Financial crisis · 2008–2009

Severe market stress for testing tail hedges, margin requirements and volatility-targeting rules.

COVID crash · 2020

A sharp decline and recovery for studying overnight gaps, rebalancing under stress and rapid reversals.

Bear market · 2022

A lower-volatility bear market to compare with 2008 and 2020, with July–December covered by the free sample.

DatasetPricePurchase
24 years of option chains — historical archive February 2002 through the latest trading day · Includes 2 months of daily updates $999 · one-time Buy
The most recent 10 years — historical archive 10 years counted back from purchase · Includes 2 months of daily updates $699 · one-time Buy
The most recent 1 year — historical archive 1 year counted back from purchase · Includes 1 month of daily updates $199 · one-time Buy
Option chains — update subscription New trading days of option chains · Starts with the latest three weeks $79 / month Subscribe
Free sample · End-of-day option chains TSLA, KO, SPY and SPX (including SPXW) · July–December 2022 · 239 MB Free Download

Included updates start at purchase and do not renew automatically. Downloaded files stay yours.

Update subscriptions provide recent and new trading days; historical archives are purchased separately.

Payments powered by Stripe Visa Mastercard Apple Pay Google Pay

Instant delivery after a successful purchase, your download link appears on the confirmation page and is also sent to your email.

Refunds Archive refund requests must be submitted within 21 days of purchase. Only fully downloaded calendar months count toward usage; a partially downloaded month counts as zero. If no month is fully downloaded, the usage-based refund is 100%. Refund policy.

Understanding quotes & trading activity

Use trade counts, activity measures and bid/ask implied volatility to interpret end-of-day option chains.

1. volume includes multi-leg trades

contract              underlying  expiration  type  strike  style  quote_date  volume   multileg_volumeSPY261030P00570000    SPY         2026-10-30  put   570     A      2026-08-12  150011   150000

This SPY option row reports volume = 150011 and multileg_volume = 150000, showing substantial activity in multi-leg orders. Read both fields before treating total volume as trading in this contract alone. Subtraction does not reliably establish the number of contracts traded outside multi-leg orders; see multi-leg volume interpretation.

2. High volume can come from one trade

contract              underlying  expiration  type  strike  style  quote_date  volume  active_minutes  transactionsHYG270115P00070000    HYG         2027-01-15  put   70      A      2026-08-11  25016   1               1

All 25,016 contracts traded in one transaction, within a single minute. Check transactions and active_minutes: high volume alone does not show sustained trading activity.

3. Bid and ask imply different volatilities

contract              underlying  expiration  type  strike  style  quote_date  iv_bid    iv        iv_askMETA280616C00155000   META        2028-06-16  call  155     A      2026-08-11  0.315956  0.638340  0.746453

The relative bid-ask spread in volatility terms is (iv_ask − iv_bid) ÷ iv = 0.67 here, compared with below 0.22 for half the rows that day. This measures quote disagreement, not a measured error in IV; inspect both sides before relying on the midpoint estimate.

4. Calculation status

A flag of 1 means iv was solved without pricing dividends; use it with caution for dividend-paying or hard-to-borrow underlyings. See flag definitions.

File Format & Columns

One CSV file per trading day, with 34 columns in a fixed order. Missing values are empty fields, not zeros.

Available from is the earliest date a field carries data, not a guarantee that every later row has a value. Columns 26–34 are computed from the quotes. IV & Greeks calculation methodology.

#ColumnTypeDescriptionAvailable from
1contractTextOption contract symbol, e.g. AAPL220617C00150000.2002-02-08
2underlyingTextUnderlying symbol (indices carry no prefix)2002-02-08
3expirationDateExpiration date (YYYY-MM-DD).2002-02-08
4typeTextcall or put2002-02-08
5strikeNumberStrike price in dollars; index points for index options.2002-02-08
6styleTextExercise style — A American, E European2002-02-08
7quote_dateDateTrading date represented by the file (YYYY-MM-DD).2002-02-08
8bidNumberBest standing bid at the end of the day, in dollars per share, or index points. Blank when no bid is available.2002-02-08
9bid_sizeIntegerBid size in contracts2005-01-03
10askNumberBest standing ask at the end of the day, in dollars per share, or index points. Blank when no ask is available.2002-02-08
11ask_sizeIntegerAsk size in contracts2005-01-03
12quote_timeDatetimeLast update time of the standing bid/ask quote, in ISO 8601 UTC. Can be earlier than quote_date.2026-08-06
13volumeIntegerNumber of contracts traded that day, including multi-leg trades.2002-02-08
14open_interestIntegerNumber of outstanding contracts, reflecting the prior business day’s close.2002-02-08
15openNumberFirst trade price of the day, in dollars per share, or index points.2014-06-02
16highNumberHighest trade price of the day, in dollars per share, or index points.2014-06-02
17lowNumberLowest trade price of the day, in dollars per share, or index points.2014-06-02
18closeNumberLast trade price of the day, in dollars per share, or index points.2002-02-08
19trade_vwapNumberVolume-weighted average trade price, in dollars per share, or index points.2014-06-02
20transactionsIntegerNumber of trades2014-06-02
21multileg_volumeIntegerReported contract volume attributed to multi-leg orders. Can exceed volume; subtraction does not reliably give volume traded outside multi-leg orders. Blank means unknown, not zero. See interpretation.2019-11-04
22active_minutesIntegerOne-minute windows containing at least one trade2014-06-02
23last_trade_dateDateMost recent trading date observed for this contract within the archive, up to the file date.2002-02-08
24underlying_closeNumberUnadjusted underlying close in dollars, or index level. Some rows use a quote-time price; see exceptions below.2002-02-08
25settlement_timeTextAM or PM settlement. Blank when undetermined.2002-02-08
26iv_bidNumberImplied volatility solved independently from the bid; decimal (0.32 = 32%).2002-02-08
27iv_askNumberImplied volatility solved independently from the ask; decimal (0.32 = 32%).2002-02-08
28ivNumberImplied volatility from the mid price; decimal (0.32 = 32%)2002-02-08
29iv_flagIntegerSolve status, 0–7; always present. See status definitions.2002-02-08
30deltaNumberOption price sensitivity per $1 move in the underlying, or one index point.2002-02-08
31gammaNumberChange in delta per $1 move in the underlying, or one index point.2002-02-08
32thetaNumberTime decay per year — divide by 365 for a day2002-02-08
33vegaNumberPrice change per 1.00 of volatility — divide by 100 for one vol point2002-02-08
34rhoNumberPrice sensitivity per 1.00 change in interest rate. Divide by 100 for one percentage point, or by 10,000 for one basis point.2002-02-08

underlying_close uses a quote-time last trade price for stocks and ETFs before 10 September 2003, underlyings without a trade that day, and these indices without an available official close: NDX, HGX, OSX, UTY, XAU, XDA, XDB, XDC, XDE, XDN, XDS and XDZ.

Reading iv_flag

This field identifies how iv was calculated, or why it is missing. Flags 0 and 1 distinguish a put-call-parity forward from a fallback that ignores dividends.

Flags 0–1: iv and all five Greeks are populated. Flags 2–7: those fields are blank. iv_bid and iv_ask are solved independently and are not governed by this flag.

ValueMeaning
0Solved; forward taken from put-call parity.
1Solved; fallback forward S·erT, with no usable parity pair. Dividends are not priced in.
2No usable mid price; one or both quote sides are missing.
3Mid price violates the no-arbitrage lower bound.
4Solver did not converge.
5No solution below the 500% volatility ceiling.
6No trading time remains to expiry; implied volatility is undefined.
7A required input was missing.

Coverage & Conventions

TopicProduct scope
End-of-day observationsEach HistoricalData.net options row combines a contract's last standing bid/ask quote, daily trading activity and calculated values. Quotes across contracts are not synchronized snapshots. Quote timestamps are available from 6 August 2026; see quote timing and calculations.
Historical coverageThe archive begins in February 2002. Field start dates are listed under Available from; coverage varies by contract and date. The delivery manifest and coverage notes document available files and historical exceptions.
Adjusted contractsCorporate-action adjusted contracts, such as non-standard PFE1 contracts, are not included in the archive through 5 August 2026. Daily capture includes them when available from 6 August 2026. This distinction matters when following positions across corporate actions.
Time to expiryIV and Greeks use a calendar-day convention with AM/PM settlement adjustments. They are not intraday expiry-time calculations; midpoint IV and Greeks are blank when calculated time remaining is zero. See the time-to-expiry convention.