← Back to selected work
Engineering case study
IBKR Portfolio Analyzer
A read-only portfolio intelligence dashboard for consolidated Interactive Brokers holdings, risk analysis, deterministic scoring, and evidence-linked research.
- Role
- Independent Software Engineer
- Timeline
- 2026 - Present
- Platform
- Web + local services
- Status
- Public repository
Overview
A local-first, read-only portfolio intelligence system designed to consolidate Interactive Brokers accounts, explain portfolio risk, and support decisions without exposing any trading capability.
Contributions
- Built multi-account holdings consolidation with USD/CAD conversion, live profit and loss, allocation breakdowns, and VaR, drawdown, and concentration metrics.
- Connected to IBKR Gateway through ib-insync using read-only sessions, response caching, diagnostics, unique client IDs, and a broker contract with no execution methods.
- Implemented a GBDT-style scoring engine combining fundamentals, technicals, and news sentiment with suitability checks, IPS drift detection, and a Data Insufficient fallback.
- Integrated Gemini research reports with structured JSON, provenance markers, execution-language sanitization, and 56+ pytest cases verifying no-trading compliance.
System design
| Client | Next.js and TypeScript dashboard with server-side data access and financial visualizations. |
|---|---|
| API | FastAPI services expose portfolio, risk, scoring, research, and diagnostic endpoints. |
| Broker boundary | ib-insync adapter handles read-only account and market data; the interface exposes no order-placement methods. |
| Validation | pytest coverage verifies analytical behavior, fallback logic, provenance handling, and compliance boundaries. |
Outcome
The result is a decision-support tool rather than an execution system: data access, analysis, research, and risk review are deliberately separated from trading.
Core stack · FastAPI · Next.js · TypeScript · Python · Docker · Gemini API · ib-insync
Discuss the work
Need implementation detail or engineering context?
Email a specific question about the architecture, trade-offs, or validation approach.