Product study · Portfolio tooling
Portfolio Workbench
Review holdings, cash and private investments against a target allocation from one local dashboard.
01 / The task
What needed to work
IBKR positions, cash in several currencies and manually tracked private investments need a consistent view of total value and allocation drift.
My role
I built the local import and data layer, portfolio calculations, API and React dashboard.
02 / Decisions
Where judgment mattered
Store portfolio data in SQLite
Imported records and portfolio snapshots live in SQLite, with a configurable database path for isolated work.
Show allocation changes by asset class
The dashboard presents allocation differences as value changes by asset class.
Convert amounts before comparing weights
Positions, cash, private values and income are converted to the account currency before weights are compared.
Compare allocations with policy bands
Target, minimum and maximum weights show where each asset class sits against the portfolio policy.
Record simulation assumptions
Each scenario records its date range, allocation, contributions, fees, slippage and warnings.
03 / Agent contribution
How the work was directed
I use AI coding assistants to build independent projects, while owning product decisions, review and testing.
Owner account · General working method
These product decisions are grounded in the implementation and capture notes. The broader workflow is my account of how I work across these projects.
04 / Verification & result
What the evidence supports
Implemented functionality
- IBKR Flex import. Imports Flex XML into local accounts, positions, cash, trades, dividends and FX rates, then builds a portfolio snapshot.
- Portfolio overview. Shows asset allocation, value history, P&L, income, cash by currency, holdings and private-investment details.
- Base-currency accounting. Converts positions, cash, private investments and income using dated FX rates, then reports totals in the account currency.
Implementation inspected
The screenshots show demo data, public observations or labelled report presentations, as described in each caption.
05 / Product evidence
Selected screens
Supporting detail
Technology
- Python
- SQLite
- FastAPI
- Uvicorn
- Typer
- React
- Vite
- TanStack Query
- Recharts
- lucide-react
- PyYAML