CSV File Format & Free Sample Download
Daily bars
17 columns, one row per trading day. Scroll horizontally to view all fields.
| date | open | high | low | close | volume | vwap | transactions | adj_open | adj_high | adj_low | adj_close | adj_volume | adj_vwap | dividend | dividend_type | split |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2022-08-24 | 892.69 | 910.94 | 889.5 | 891.29 | 19084719 | 900.3447 | 594430 | 297.5633 | 303.6467 | 296.5 | 297.0967 | 57254157 | 300.1149 | |||
| 2022-08-25 | 302.36 | 302.96 | 291.6 | 296.07 | 53207507 | 295.5372 | 1041468 | 302.36 | 302.96 | 291.6 | 296.07 | 53207507 | 295.5372 | 1:3 | ||
| 2022-08-26 | 297.43 | 302 | 287.47 | 288.09 | 57111194 | 292.6261 | 984036 | 297.43 | 302 | 287.47 | 288.09 | 57111194 | 292.6261 |
1-minute bars
18 columns, one row per recorded minute. Scroll horizontally to view all fields.
| timestamp | open | high | low | close | volume | vwap | transactions | adj_open | adj_high | adj_low | adj_close | adj_volume | adj_vwap | dividend | dividend_type | split | session |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2022-08-24 19:59:00 | 892.25 | 892.6 | 892.01 | 892.6 | 2161 | 87 | 297.4167 | 297.5333 | 297.3367 | 297.5333 | 6483 | post | |||||
| 2022-08-25 04:00:00 | 307.95 | 307.95 | 301.97 | 303.6 | 17863 | 453 | 307.95 | 307.95 | 301.97 | 303.6 | 17863 | 1:3 | pre | ||||
| 2022-08-25 04:01:00 | 303.4 | 303.49 | 302.36 | 302.5 | 15236 | 582 | 303.4 | 303.49 | 302.36 | 302.5 | 15236 | pre |
The sample includes daily and 1-minute data for TSLA, KO, SPY and TWTR from July–December 2022, in the same CSV formats as the paid archives.
- TSLA
- The sample spans Tesla's 3-for-1 stock split on 25 August 2022. Compare raw prices with the
adj_*columns before and after the split, and inspect thesplitfield on the event date. The daily rows above show consecutive trading days around that event. The minute rows show the final record on 24 August, the first record on 25 August with the split marker, and the next recorded minute. - KO
- Explore cash dividends on 15 September and 30 November 2022. The
dividendfield records the amount per share anddividend_typeidentifies the event type. Compare nearby trading days to see how the event is represented alongside raw and adjusted prices. - SPY
- Explore ETF distributions on 16 September and 16 December 2022 using the same dividend and price fields. The sample preserves the archive's adjusted values, so later corporate actions can also affect the difference between raw and adjusted prices within this sample window.
- TWTR
- Follow a security whose history ends before the sample period does: TWTR's final trading row is 27 October 2022. Its filename carries the separate delisting date, 31 October 2022. This example helps distinguish the last available trading record from the date recorded in the listing metadata.
- Trading sessions
- The minute files include pre-market, regular-session and after-hours trading. Timestamps use US Eastern time; the
sessionfield distinguishespre,regandpost. Event fields appear on the first recorded bar of the effective day, rather than repeating on every minute.
The ZIP includes verify.py, a README and a manifest listing the eight CSV files and their SHA-256 checksums. From the extracted sample folder, run python verify.py --strict --extract .. Python 3 is required; no additional packages are needed.
The verifier checks file integrity, column structure and documented data rules, including adjustment consistency using the dividend and split events recorded in the files. Corporate-action completeness requires separate source checks. The README explains how the sample retains adjustments from events outside its date window.
Datasets & Subscriptions
| Dataset | Price | Purchase |
|---|---|---|
| Daily archive 2003-10-01 through 2026-09-11 · Includes 2 months of daily updates | $399 · one-time | Buy |
| 1-minute archive Includes the daily archive · Includes 2 months of daily and minute updates Coverage varies by security · Full minute archive end date: Not yet verified | $699 · one-time | Buy |
| Daily updates New trading days · Starts with the latest three weeks · Published by 08:00 UTC the next morning | $39 / month | Subscribe |
| 1-minute updates Minute bars only · New trading days plus the latest three weeks | $69 / month | Subscribe |
Instant delivery Your download link appears on the confirmation page and is emailed to you after payment.
Included updates Run for 2 months (62 days) from purchase and do not renew automatically. Downloaded files stay yours. Continued updates require a separate subscription; subscriptions provide recent and new trading days, with historical archives sold separately.
Refunds Request an archive refund within 21 days of purchase. If no data has been downloaded, the refund is 100%; otherwise, it depends on the number of data files downloaded. Refund policy.
Historical coverage
The daily archive begins in October 2003 and includes the 2008–2009 financial crisis, the COVID crash and the 2022 bear market. Available dates vary by security and frequency.
What can I study across these market periods?
Financial crisis · 2008–2009
Follow daily prices through the decline and recovery, comparing drawdowns, trading volume and the time taken to regain earlier price levels. Include delisted securities when examining how a universe based on today's listings can change a backtest.
Check each security's dates and listing history before joining files. A reused ticker can identify different companies or separate listing periods, so matching the symbol alone does not establish a continuous investment history.
COVID crash · 2020
Study the rapid selloff and rebound using the same entry, exit and rebalancing rules across securities. Daily open and close prices can help separate overnight moves from regular-session moves.
Where minute records are available, explore how price changes and trading activity differ across pre-market, regular and after-hours sessions. Check minute coverage for the selected security and dates before relying on an intraday sequence.
Bear market · 2022
Compare the duration of drawdowns, recoveries and changes in trading activity with the 2008–2009 and 2020 periods. Keeping portfolio and rebalancing rules consistent makes it easier to understand how results vary across market conditions.
The free sample contains TSLA, KO, SPY and TWTR records from July–December 2022, with TWTR ending in October. Use its daily and minute files to check date handling, corporate-action fields and session filters before extending the analysis to other securities or periods.
Does every security have the same date coverage?
Available dates vary by security and frequency. A daily record does not guarantee that minute records exist for the same date. The stock lookup reports daily-file start and end dates; those boundaries do not establish that every trading day within the range is present.
Check the selected security, dates and frequency for your research. See the coverage notes and measurements for detailed checks.
Understanding stock data
Explore how prices, corporate actions and listing histories appear in the files.
How do stock splits affect prices and returns?
A stock split changes the price per share. Adjusted prices let you compare returns across the split, as these TSLA records illustrate.
| date | close | adj_close | split |
|---|---|---|---|
| 2022-08-24 | 891.29 | 297.0967 | |
| 2022-08-25 | 296.07 | 296.07 | 1:3 |
TSLA sample: day_by_symbol/TSLA_day.csv
Across the 3-for-1 split, raw closing prices fall 66.8%, while adjusted closing prices show a return of approximately −0.35%. The split value 1:3 records the change from one share to three.
Read split alongside close and adj_close when comparing trading days. The adjustment methodology explains how the fields are calculated.
How do regular and special dividends appear in the data?
The dividend field records the cash amount per share, while dividend_type identifies the kind of distribution. This MSFT example combines a regular dividend with a special payment.
| date | close | adj_close | dividend | dividend_type |
|---|---|---|---|---|
| 2004-11-12 | 29.97 | 18.407 | ||
| 2004-11-15 | 27.39 | 18.7492 | 3.08 | SC+CD |
Archive file: day_by_symbol/MSFT_day.csv
The $3.08 amount combines a $3.00 special dividend and a $0.08 regular dividend, recorded together as SC+CD. Microsoft documents these payments in its dividend history.
Across these two dates, raw closing prices fall approximately 8.6%, while adjusted closing prices rise approximately 1.9%. Compare the cash amount and distribution classification when separating recurring income from one-time payments.
Can the same ticker identify different companies?
A reused ticker can refer to separate businesses and listing histories. In this archive, TWTR identifies both the home-entertainment retailer Tweeter and, later, Twitter.
| listing | date | close |
|---|---|---|
| Tweeter | 2007-06-20 | 0.132 |
| 2013-11-07 | 44.9 |
Tweeter: TWTR_day_delisted_2007-06-21.csv
Twitter: TWTR_day_delisted_2022-10-31.csv
Both files are in day_by_symbol/. The listing labels above identify the source files; they are not an additional CSV column.
Joining these records as one company's price series creates an artificial jump of roughly 34,000%. Confirm the company, date range and listing period before combining files. See listing histories and survivorship bias for more detail.
How does VWAP differ from the closing price?
The close is the regular-session closing price. VWAP is a volume-weighted average across the full trading day, including extended hours. They describe different aspects of the day's trading.
| date | close | vwap |
|---|---|---|
| 2008-10-28 | 93.76 | 87.9844 |
Archive file: day_by_symbol/SPY_day.csv
On this day, full-day VWAP was approximately 6.2% below the close. OHLC values alone do not contain the individual trade prices and volumes needed to reconstruct VWAP.
Full-day VWAP becomes available after the day ends. Using that completed value for an earlier decision introduces look-ahead bias, and a VWAP benchmark does not establish the price at which a simulated order would have filled.
File Format & Columns
Per-security CSV files have 17 daily columns or 18 minute columns, in a fixed order. Each file includes a header row, with records ordered by date or timestamp. Empty fields are not zeros.
Daily bars
17 columns in CSV order| # | Column | Type | Description |
|---|---|---|---|
| 1 | date | Date | Observation or recorded event date in US Eastern time, YYYY-MM-DD. Declared event-only rows can fall on non-trading dates; see event-row conventions. |
| 2 | open | Number | Regular-session opening price, as traded. |
| 3 | high | Number | Highest price during the regular session. |
| 4 | low | Number | Lowest price during the regular session. |
| 5 | close | Number | Regular-session closing price, as traded. |
| 6 | volume | Number | Shares traded across the full day, including extended hours. May contain fractional shares. |
| 7 | vwap | Number | Volume-weighted average price across the full trading day, including extended hours. |
| 8 | transactions | Integer | Number of trades. |
| 9 | adj_open | Number | Opening price adjusted for splits and cash distributions. |
| 10 | adj_high | Number | High price adjusted for splits and cash distributions. |
| 11 | adj_low | Number | Low price adjusted for splits and cash distributions. |
| 12 | adj_close | Number | Closing price adjusted for splits and cash distributions. |
| 13 | adj_volume | Number | Volume divided by the row's cumulative price adjustment factor, including cash distributions as well as splits. May be fractional. |
| 14 | adj_vwap | Number | VWAP adjusted for splits and cash distributions. |
| 15 | dividend | Number | Cash distribution per share on the recorded ex-dividend date. Blank when this row records no cash distribution. |
| 16 | dividend_type | Text | Source classification: CD = regular; SC = special; + joins multiple types. Historical labels can be incomplete; CD alone does not rule out a special distribution. A +CUR:XXX suffix identifies a non-USD distribution. See classification notes. |
| 17 | split | Text | Recorded split ratio as from:to: 1:3 means a 3-for-1 split. Blank when this row records no split. |
1-minute bars
18 columns · Differences from daily filesMinute files follow the daily column order, with the differences below.
| Column | Type | Description |
|---|---|---|
timestamp | Date-time | Replaces date in column 1. Start of the recorded minute, formatted YYYY-MM-DD HH:MM:SS in US Eastern time, following EST and EDT. |
session | Text | Column 18: pre = pre-market; reg = regular session; post = post-market. Labels follow that date's exchange calendar, including early closes. |
open, high, low, close | Number | Prices within that minute, rather than the daily session. The corresponding adj_* columns hold adjusted minute prices. |
volume, transactions | Number / Integer | Shares traded and trade count for that minute. Minute volume totals can differ from daily volume. |
vwap, adj_vwap | Empty | Both columns remain in the file but are blank in minute data. |
dividend, dividend_type, split | Number / Text | Event values appear on the first recorded bar of the effective date. Later bars leave these event fields empty. A date without minute bars has no row in which to record the event. |
Numeric columns can contain empty fields. Adjusted values can be blank where the adjustment factor cannot be determined; consult the accompanying data notes and adjustment conventions for the applicable cases.
How do files organized by trading day differ?
Files in day_by_date/ and minute_by_date/ group records for multiple securities by date. They insert symbol as column 2, giving 18 daily columns or 19 minute columns. The remaining fields keep their relative order.
The 17-column daily and 18-column minute definitions above apply to files in day_by_symbol/ and minute_by_symbol/. Keep the symbol's original case when parsing or joining records. Date-organized update files cover a recent window; they do not establish full historical coverage.