id: CORE-001D2D title: Historical Provider Row Normalization Boundary status: done priority: P2 effort: S depends_on: - CORE-001D2A tags: - core - decimal - provider - backtesting summary: Historical provider row and synthetic option quote normalization are now explicit boundary adapters with focused validation. completed_notes: - Added explicit daily-close row normalization in `app/services/backtesting/historical_provider.py`. - Malformed row dates and non-finite close values are now rejected at the provider boundary instead of leaking into backtest paths. - Synthetic option quotes now validate required string and numeric fields on construction. - Added focused regression coverage in `tests/test_backtesting.py` for normalized rows and invalid quote payloads. - Validated with focused pytest coverage and `make build` on local Docker.