Personal portfolio dashboard
My own private dashboard: my accounts in one place, measured against markets, gold and Bitcoin, every fund opened up into what it holds, and notes only when something needs a decision
The problem it solves
The numbers I need are spread across several accounts, and a price alert tells me what moved, not whether it matters to why I own it.
I built a private dashboard for my own investing. It brings my accounts together read-only, measures them in ways I couldn't get in one place, and only sends me a note when something needs a decision. It only reads my accounts; every decision is mine.
How it works
Gold and Bitcoin as yardsticks
Besides the usual returns and risk figures, it measures my portfolio against the Canadian and US stock markets, international stocks, gold and Bitcoin, all as total return in Canadian dollars, or in US dollars when I switch the view.
Every fund opened up, grouped by diversification
It looks inside every fund, even funds made of other funds, adds up what I really own, company by company, and groups it all by category to show how diversified the whole portfolio is.
Reasons, written down
I write down why I own each holding and what would prove me wrong. Everything else is judged against these.
Income funds against a plain twin
Each income fund is checked against a simpler fund holding similar stocks, fees included, with a verdict: earning its keep, mixed or lagging. Detailed analysis that platforms generally don't provide.
Alerts judged against my reasons
A drop on its own never sends me anything. Notes are judged against the reasons I wrote down, and a note about a sharp fall first compares it with similar companies, the wider market and the news.
Investment and exchange rate, split
For anything priced in another currency, the gain is split into what the investment did and what the exchange rate did.
Two-way, from my phone
Notes, scheduled reviews and review reminders reach my phone, and I can ask why I own something and get the reason I wrote down.
See the whole system, step by step
Only the notes that need a decision reach my phone
Tap a step to see what happens, and what it runs on.
- either one
- path to this step
Accounts and markets
The dashboard
Me
Accounts and markets
The dashboard
Me
01read
02update
03measure
04judge
05double-check
06sort
07my phone
08decide
Nothing reaches me unless it needs a decision.
01 · Accounts and markets
Read-only connections
What happens
My brokerage accounts connect read-only. Prices, exchange rates and fund holdings come in from market data, with the Bank of Canada's official exchange rates first.
Under the hood
- Read-only: it can't place a trade
- Bank of Canada exchange rates
02 · The dashboard
Updated on a schedule
What happens
A full update four times a day, and fresh prices every 15 minutes while markets are open. Every update ends by checking what needs my attention.
Under the hood
- Scheduled jobs
- A Postgres database
03 · The dashboard
Measured my way
What happens
Besides the usual returns and risk figures, it measures my portfolio against yardsticks I picked: the Canadian and US stock markets, international stocks, gold and Bitcoin, all as total return in Canadian dollars, or in US dollars when I switch the view. For anything priced in another currency, it splits the gain into what the investment did and what the exchange rate did.
Under the hood
- Gain split: investment and exchange rate
- Funds opened up, even funds of funds
- A US-dollar view of the whole history
04 · The dashboard
Judged against my reasons
What happens
I write down why I own each holding and what would prove me wrong. Notes are judged against those reasons: the line I set, a cut payout, one company growing too large a share, signs the reason is weakening. A drop on its own never sends me anything.
Under the hood
- A 'what would prove me wrong' line for each reason
- The same note never repeated within 14 days
05 · The dashboard
A sharp fall, double-checked
What happens
A note about a sharp fall first compares it with similar companies and the wider market over the same days, shows the news, and checks my own recent decisions.
Under the hood
- Measured from a 5-day average, so one spike cannot fake a drop
06 · The dashboard
Sorted by urgency
What happens
Urgent, high-confidence notes go straight away. The rest wait for the morning digest, re-checked on fresh numbers first, and minor ones stay on the dashboard.
Under the hood
- A morning digest, re-checked before it is sent
07 · Me
Notes to my phone
What happens
Notes, weekly, monthly and quarterly reviews with the portfolio next to every yardstick, and a reminder the evening before a decision is due. From my phone I can ask why I own something, and it answers with the reason I wrote down and a quick health check.
Under the hood
- Two-way chat on my phone
- Reminders until the decision is recorded
08 · Me
I decide
What happens
Every decision is mine. It goes in my journal, and the reminders stop. It only reads my accounts; it cannot place a trade.
Under the hood
- A journal of every decision
See it working
My own dashboard, 14 October 2026. Amounts are blurred. I own these holdings; nothing here is advice.






What it connects to
- Brokerage accounts (read-only)
- Market data and Bank of Canada exchange rates
- My phone
Under the hood
- Python with a web dashboard and a Postgres database
- Updates four times a day, and prices every 15 minutes while markets are open
- Every amount kept in the currency it happened in, converted at that day's rate, Bank of Canada first
- Funds opened up three levels deep, so funds of funds are counted
- Drops measured from a 5-day average, so one spike can't fake a fall
- History rebuilt from older statements as well as the live connection
- Read-only: it cannot place a trade
Who else it suits
I can build the same kind of system for a business: the numbers from the tools you already use, in one place, measured the way you think about them, with alerts that say why.
Ready when you are.
Answer a few quick questions and I'll come back with what I'd recommend and what it would cost.
Get started