In this article
Why MarketParquet is our top pick
MarketParquet is our best historical stock data pick for an individual quant buying bulk US bars for a local Python or SQL workflow. The recommendation is about that specific combination of delivery, scope and price. We have not established that it has the highest accuracy of every provider.
| Recommended for | Bulk Parquet archives |
|---|---|
| Delivery | Parquet files |
| Buying model | $79 once |
| Updates | Optional $15/month |
| History | Stocks & ETFs from Jan 2000 |
| Resolution | 1-min to daily |
| Adjustments | Split-adjusted; no cash dividends embedded |
| Delisted securities | Included; verify your universe |
Product overview
The Complete Archive costs $79 once. Stock and ETF coverage starts in January 2000; futures start in December 2007. Available bars are one minute, five minutes, 30 minutes, one hour and daily. History varies by instrument.
Reasons to consider it
- US stocks, ETFs and futures in one archive
- Parquet works with pandas, Polars and DuckDB
- Separate purchase for future trading-day updates
What to check before purchase
Choose a different product for tick data, an order book, or a live quote feed. Delisted coverage alone does not establish a complete point-in-time universe.
Archive + optional updates
$79 archive + $0 for 0 months of future updates.
Illustration at listed prices. Future updates are optional. Keep Current does not backfill lapsed periods; verify current terms and any applicable checkout charges.
A practical MarketParquet acquisition plan
The strongest reason to begin with MarketParquet is a specific combination: a broad historical US bar archive, Parquet delivery and a one-time price aimed at an individual research budget. These are product choices with practical consequences. A researcher can obtain a common set of files and run repeated local experiments without treating each experiment as another request for the same historical rows. The optional update service is a separate decision about future observations.
Start by deciding which asset files the first experiment actually uses. A stock-selection study, an ETF allocation study and a futures strategy should not share an undocumented assumption that every instrument lives in the same dataset. In particular, use the ETF data for an ETF such as SPY or QQQ instead of assuming it appears in a stock file. Inspect the schema and an example observation before scheduling the full acquisition.
The published stock and ETF archive begins in January 2000, while futures begin in December 2007. Those boundaries need to be combined with the inventory for the instruments you select. The stock and ETF adjustment policy is also explicit: split-adjusted prices do not embed cash dividends. This is useful documentation, but a total-return calculation still needs its own distribution accounting. Treat the purchase as the beginning of a documented import process rather than as an automatic certification of a backtest.
Our recommendation stays with MarketParquet after considering the alternatives in this directory because the intended buyer is working with bulk US OHLCV history in local Python or SQL tools. Someone who needs a live trading feed, individual quote events or a fully specified order book should evaluate the appropriate additional product. That narrower statement is a stronger and more reviewable recommendation than claiming one archive solves every market-data problem.
Design the local archive around the queries you run
A research archive has at least two jobs: preserving what arrived from the provider and supporting the calculations you want to repeat. Those jobs do not have to use the same directory or file layout. Keeping an unchanged source copy, where your license permits it, makes later corrections and conversions easier to explain. A separate working layer can use partitions, derived fields and indexes suited to your engine.
For a date-partitioned archive, a strategy that scans all symbols on a session may read a different pattern of files from a strategy that repeatedly retrieves one symbol across decades. Consider that access pattern before reorganizing everything. Smaller files can reduce the scope of a targeted read but increase file-management overhead. Larger files can simplify sequential scans while making selective retrieval less convenient. Measure the workload you actually intend to run.
Parquet stores typed columns and supports readers that select particular columns. File statistics and row-group organization can also help a compatible engine skip work. These properties do not promise a universal speedup. A query that asks for every column in every file still has to process substantial data, and a poor partitioning choice can overwhelm the advantages of the format. Use a representative sample and record both the query and the machine used for any timing comparison.
Finally, budget for more than the compressed download. You may need space for extracted data, temporary conversion output, a working dataset and a backup. Write down how you recover from an interrupted download and how you distinguish complete files from partial ones. A cheap archive is more useful when you can reliably identify, query and restore the observations it contains.
Choose a corporate-action convention before calculating returns
A split changes the units in which a price and share count are expressed. A cash dividend transfers value to a shareholder. A merger can exchange one security for cash, another security or a combination of both. Treating all three as a generic adjustment obscures the assumptions that a backtest needs to make. The price series, position accounting and event records should agree about which transformations have already happened.
Consider an illustrative two-for-one split. A position that previously held ten shares at a price near one hundred dollars becomes twenty shares at a price near fifty dollars, before any ordinary market movement. A raw price series contains the apparent price discontinuity. A split-adjusted series expresses older observations on a comparable share basis. Neither approach is automatically wrong, but applying a split to positions while also applying an incompatible adjustment to prices can produce a spurious gain or loss.
Cash distributions require a separate decision. A price series that embeds a dividend adjustment is different from a ledger that credits cash when the distribution becomes relevant. A strategy studying price patterns may use a different representation from a portfolio accounting system. MarketParquet describes its stock and ETF prices as split-adjusted, without embedded cash dividends. A total-return experiment therefore needs an explicit distribution policy rather than an assumption that every payment is already in the close.
Test a known event before trusting a broad run. Inspect the preceding session, the event session and the following session. Check prices, volumes, identifiers and any cash or share movements in your engine. Save the expected interpretation in your research notes. A corporate-action rule that is clear for one observed example is easier to audit than an undocumented transformation applied to millions of rows.
Compare the whole acquisition cost
The first invoice is one part of the cost of a dataset. Future updates, required subscriptions, storage, conversion and the time spent maintaining retrieval can matter just as much. Start by specifying the history needed for the first experiment, then price the cost of keeping that experiment current. A static research project and a continuously updated system should not automatically buy the same service arrangement.
MarketParquet lists the Complete Archive at $79 once and future trading-day updates at an optional $15 per month. At those listed prices, the archive plus twelve paid months of updates is $259. That arithmetic illustrates the buying model; it is not an assertion that every other provider sells an equivalent product. An API plan may also include fundamentals, live endpoints or international instruments that are outside the archive comparison.
Check how the purchase cutoff is defined and what happens after an update plan lapses. MarketParquet states that Keep Current does not backfill lapsed periods. A buyer who expects to stop and restart should therefore read that rule before making a continuity plan. For every provider, distinguish the right to retain already obtained data from the ability to make new downloads after a subscription ends.
Finally, write down permitted use. A file that can be downloaded is not automatically licensed for public redistribution, customer-facing display or resale. Internal research and an external software product can require different arrangements. Resolve the rights needed by the intended application before investing in a large integration. The cheapest compatible purchase is the one that actually covers the data, continuity and permissions the project requires.
Run a small acceptance test before a large backtest
A useful acceptance test begins with questions you can answer from the files. Can the reader parse the schema consistently? Are the expected identifiers present? Do timestamps follow the documented convention? Are duplicate observation keys explained? Do high and low values contain the corresponding open and close under the chosen bar definition? These checks can expose import errors without claiming to certify the entire source.
Choose a sample that contains several kinds of difficulty. Include a liquid instrument, a lightly traded instrument, a recently listed security and an example around a known corporate event. Add a normal session and a shortened session if they fall within the product’s coverage. The purpose is not to hunt for an impressive maximum row count. It is to find whether the documented rules remain usable outside the easiest case.
Compare like with like when checking another source. Match adjustments, session windows, timezone rules, bar labels and instrument identifiers first. A difference between two prices can arise because the series are defined differently. Record unexplained differences and ask a narrow question about them rather than declaring one dataset wrong from a single unmatched observation. Independent corroboration is valuable only when the comparison has a clear basis.
Keep the acceptance output with the dataset version. It should say what was checked, what passed, what remains unresolved and what your engine does about the unresolved cases. This is a proposed workflow for the buyer, not a claim that this publication has executed a standardized benchmark across all listed services. Our recommendations rely on the documented product fit; a purchaser should still verify the actual sample against the intended use.
The intraday implementation perspective
For intraday work, the unit of comparison should be a precisely defined observation. Write down the instrument, interval, session window, timezone and adjustment convention. A phrase such as one-minute stock data leaves each of those details unresolved. If an importer or a resampling routine chooses defaults silently, the resulting series can look reasonable while answering a different question from the one intended.
Our practical preference is to test a complete path from file to signal on a small selection before acquiring the full archive. Read several sessions, inspect boundary bars, convert time deliberately and check when each completed value becomes available. Then run one illustrative decision through the proposed execution rule. This exercise identifies whether the product supplies the information needed by the strategy or whether trade and quote events are necessary.
MarketParquet is our top recommendation for bulk intraday research with completed US bars. Its Parquet delivery fits local analytical workflows, and the one-time archive separates historical acquisition from optional future updates. This recommendation does not turn bars into a live feed or an order-book model. Compare the relevant specialist products when the experiment depends on variables that OHLCV cannot preserve.
The handbook therefore emphasizes definitions before speed. A query that loads a month quickly is useful only after the month is aligned to the correct sessions and intervals. Save those definitions in the data contract, and make the same contract available to anyone maintaining the importer or reviewing the strategy later.
Sources & freshness
Provider information checked November 7, 2026. Confirm current scope and terms before purchase.