A dashboard similar to the Questrade "Summary" page, but lets you aggregate multiple Questrade logins.
Other key features:
- Organize your accounts into a hierarchy of account groups, and see stats for them. (e.g. RRSP)
- Total P&L graph
- Total P&L breakdown by ticker in a graphical view (Also for today's P&L and open P&L)
- Annualized return (XIRR)
- Retirement projections, including CPP + OAS calculations
- Deployed vs. reserve (Cash + T-bill ETFs) with a tool for adjusting this percentage
- Everything runs locally and reads data through Questrade's public API.
Organize your accounts into a hierarchy of account groups.
Ctrl-click to go to the account on questrade.com.
See total P&L and other stats for any symbol, as well as orders and dividends.
See which symbols (or currency changes) contributed to your total P&L.
The omnibox jumps to accounts, tickers, tabs, or dialogs. Need to open the Dividends tab for a symbol or edit account metadata? Type a few letters and hit enter. Shortcuts keep the workflow fast.
Aggregate various accounts by person.
Define which account (or account group) represents your retirement savings, define projected growth rates for your accounts, then see projections.
A questionare can be filled in to allow CPP and OAS calculations. (edit-account-details-dialog-1.png, edit-account-details-dialog-2.png)
When adjusting the percentage of capital deployed, computes buys/sells and makes it easy to copy and paste values when making trades.
When the optional Python helper is installed, allows you to associate automated investment models with stocks in your accounts. When the main view is loaded, you'll be warned when it's time to rebalance according to the investment model's rules.
client/- React + Vite SPA with TanStack Query for data orchestration, accessible dialogs (Radix primitives), and CSS tuned for dense financial layouts.server/- Lightweight Express proxy that refreshes OAuth tokens per login, caches the newest refresh token, enriches account metadata, and exposes everything through/api/summary.shared/- Date math, deployment helpers, and formatting utilities reused by both sides.
Looking for the desktop installer (Windows) or Docker instructions? See the installation guide.
You only need Node.js 20.19+, Git, and at least one Questrade API refresh token. Python 3.9+ is optional unless you want investment-model overlays.
# one-time
cd server && npm install
cd ../client && npm install
# start the stack (two terminals)
cd server && npm run dev
cd client && npm run devFrom there browse to http://localhost:5173, drop in your refresh tokens, and the dashboard lights up. The proxy will persist replacement tokens so you can keep the terminals running indefinitely.
Need the full playbook (environment variables, metadata files, optional helpers, production builds, etc.)? See the setup & running guide for step-by-step instructions.
Demo Mode runs entirely offline using static fixtures. It never calls Questrade and does not require tokens.
- UI: On the Connect Questrade dialog, click "Try Demo Mode." A "DEMO MODE" banner appears with an Exit demo button.
- Env var: set
INVESTMENTSVIEW_DEMO=1when starting the server to force demo responses for all/apicalls.
Demo fixtures live in server/demo/*.demo.json if you want to tweak the sample data.
Prefer to browse a few more UI surfaces before diving in? Here are quick links to the remaining screenshots:
- Company logos powered by Logo.dev.
- Implemented using ChatGPT Codex.











