[ Market data quality for adjusted OHLCV ]
Latest daily freshness signal: 2026-07-24.
[ Adjustment policy ]
Stock and ETF prices are split and dividend adjusted. Historical prices are retroactively adjusted so price series are continuous and directly comparable over time.
Futures data is continuous ratio-adjusted. All data is delivered as Apache Parquet files partitioned by date.
[ Automated checks ]
- Gap detection -- identifying missing trading days
- Duplicate screening -- ensuring no repeated bars
- Price validation -- flagging anomalous OHLCV values
- Volume consistency -- checking for truncated or zero-volume bars
Zero-volume bars are excluded from datasets. Remaining gaps can reflect normal low-liquidity periods, including small-cap stocks and pre/post-market sessions.
[ Check files locally ]
import duckdb
con = duckdb.connect()
checks = con.execute("""
SELECT
COUNT(*) AS rows,
COUNT(DISTINCT symbol) AS symbols,
SUM(CASE WHEN high < low THEN 1 ELSE 0 END) AS bad_ranges,
SUM(CASE WHEN volume < 0 THEN 1 ELSE 0 END) AS negative_volume
FROM 'stock_daily_2024-01-15.parquet'
""").fetchdf()
[ Related ]
stock data hub · browse stock daily · pricing · delisted stock data · yfinance limitations