Vector answers the questions most portfolio trackers don't.
Not just what is my portfolio worth, but where is it going, how much risk am I carrying, and what should I actually do about it. Every metric on the dashboard exists to give you a clear, actionable answer — not another number to interpret yourself.
Vector is a desktop portfolio analytics app built with PyQt6. It pulls live market data via Yahoo Finance, runs it through a local analytics engine, and surfaces clear verdicts on your portfolio's health. Vector requires a free Protonyx account to sign in; some features are reserved for the Pro plan. Your portfolio data itself stays on your own machine.
| Widget | The question it answers |
|---|---|
| Total Equity | What is my portfolio worth right now, and how has it moved this week? |
| Portfolio Direction | Is my portfolio trending up, down, or sideways — and how strong is that trend? |
| Volatility | How rough is the ride? Am I taking on more risk than my returns justify? |
| Diversification | Am I overexposed to one sector, and what am I missing? |
| Sharpe Ratio | Am I being compensated for the risk I'm taking? |
| Beta | How much does my portfolio move relative to the market? |
| Vector Lens | What is the single most important thing I should do with my portfolio right now? |
The Vector Lens generates a three-sentence verdict: one that explains the outlook, and one that tells you what to do — specific to your tickers, your sector exposure, and your current direction and volatility profile.
- Customisable dashboard — add, remove, and drag widgets to build the layout that matters to you
- Onboarding — guided first-run setup with live ticker validation
- Direction tracking — 6-month linear regression slope, classified as Strong / Steady / Neutral / Depreciating / Weak
- Volatility scoring — annualised volatility scaled 1–100 with configurable low/high thresholds
- Sharpe ratio & beta — portfolio-level risk-adjusted return metrics
- Dividend calendar — upcoming dividend dates across all held positions
- Sector allocation — pie breakdown of equity by sector with diversification suggestions
- Smart caching — market data is cached locally with per-type TTLs; no redundant fetches
- Dark & light themes — full stylesheet toggle in Settings
- Local portfolio storage — your holdings, settings, and layout are stored on your own machine; only sign-in and market fetches require the network
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -r requirements.txt
python main.pyRequirements: Python 3.11+, Windows (primary target)
All files are stored in %LOCALAPPDATA%\Protonyx\Vector\ (falls back to ~/Vector/data/ if LOCALAPPDATA is not set).
| File | Contents |
|---|---|
positions.json |
Your holdings — ticker, shares, equity, sector |
settings.json |
Theme, refresh interval, thresholds, volatility config |
app_state.json |
Onboarding state, first launch date |
market_data.json |
Cached quotes, price history, meta, dividends, earnings |
dashboard_layout.json |
Your saved widget layout |
Your portfolio files never leave your machine. The app does communicate with the Protonyx backend for authentication (sign-in, account/plan status, and legal-document acceptance) and with Yahoo Finance for market data, which is cached locally.
Place logo files at:
assets/vector_full.png— full wordmark, shown on the onboarding screenassets/vector.ico— icon, shown in the window title bar and taskbar
If either file is missing, Vector renders a generated placeholder automatically and launches normally.
- PyQt6 — UI framework
- yfinance — Yahoo Finance market data
- NumPy — analytics engine
- pandas — yfinance data handling
Vector was developed with the assistance of Claude Code, Anthropic's AI coding tool. Most of my projects are not built this way — but part of being a good developer is staying curious and actually trying the tools that are changing the industry, not just reading about them. This project was an experiment in that spirit. The goal was to understand where AI-assisted development genuinely adds value, where it doesn't, and what that means for how I work going forward.