id: DATA-DB-001 title: Databento Historical Price Source status: backlog priority: high dependencies: [] estimated_effort: 2-3 days created: 2026-03-28 updated: 2026-03-28 description: | Integrate Databento historical API as a data source for backtesting and scenario comparison pages. This replaces yfinance for historical data on backtest pages and provides reliable, high-quality market data. acceptance_criteria: - DatabentoHistoricalPriceSource implements HistoricalPriceSource protocol - Cache layer prevents redundant downloads when parameters unchanged - Environment variable DATABENTO_API_KEY used for authentication - Cost estimation available before data fetch - GLD symbol resolved to XNAS.BASIC dataset - GC=F symbol resolved to GLBX.MDP3 dataset - Unit tests with mocked Databento responses pass implementation_notes: | Key files: - app/services/backtesting/databento_source.py (new) - tests/test_databento_source.py (new) Uses ohlcv-1d schema for daily bars. The cache key includes dataset, symbol, schema, start_date, and end_date. Cache files are Parquet format for fast loading. Metadata includes download_date for age validation. dependencies_detail: - None - this is the foundation for Databento integration