id: DATA-004 title: Underlying Instrument Selector status: backlog priority: P2 size: L depends_on: - PRICING-001 acceptance_criteria: - User can choose underlying instrument for options evaluation (GLD vs GC=F) - Settings page exposes underlying selector with brief descriptions - Workspace-scoped preference persisted - Overview and Hedge pages reflect chosen underlying for price display and options strategy - GC=F options data source placeholder exists (not yet wired to live data) - UI clearly indicates which underlying is active and whether data is live or placeholder notes: - GLD is the MVP supported underlying with live data via yfinance - GC=F futures options will require a new data source (future roadmap item) - For now, GC=F selection can show "coming soon" or use estimated/stubbed pricing - Each underlying has different contract specs (100 shares vs futures contract multiplier) implementation_hints: - Add underlying field to workspace/portfolio settings - Extend app/domain/instruments.py with GC=F metadata (futures contract specs) - Add underlying selector UI in settings - DataService routes quote/options requests based on selected underlying - For GC=F, stub with estimated pricing or clear "data source needed" state