Ryan YangSoftware Engineer
Menu
← 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

ClientNext.js and TypeScript dashboard with server-side data access and financial visualizations.
APIFastAPI services expose portfolio, risk, scoring, research, and diagnostic endpoints.
Broker boundaryib-insync adapter handles read-only account and market data; the interface exposes no order-placement methods.
Validationpytest 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.