# Research Findings ## Architecture Analysis (2026-03-19) ### Current Codebase - 22 Python files, flat layout, all under 250 lines - Pattern: service file (async OpenBB wrapper) + route file (FastAPI router with @safe decorator) - Shared utils: obb_utils.py, route_utils.py, mappers.py, models.py ### Technical Debt 1. Duplicated `_to_dicts` in openbb_service.py and macro_service.py (same as obb_utils.to_list) 2. calendar_service.py has scope creep (ownership, screening mixed with calendar events) 3. No shared `fetch_historical` helper (duplicated in technical_service.py and quantitative_service.py) ### Provider Availability (Verified) - **No API key needed:** yfinance, stockgrid, finra, multpl, cftc, government_us, sec, ecb, cboe - **Already configured:** fred, finnhub, alphavantage - **Not needed:** fmp (removed), intrinio, tiingo, benzinga ### Key Design Decisions - Keep flat file layout (avoid breaking all imports for ~40 files) - Domain-prefixed naming for new files - Generic technical indicator dispatcher pattern for 14 new indicators - Consolidate _to_dicts before adding new services ### OpenBB Features Discovered - 67 new endpoints across 10 groups (A-J) - 3 Small, 4 Medium, 3 Large complexity groups - All use free providers (no new API keys required)