Accounts are the places your holdings sit — a broker, a pension scheme, an insurer, a wallet. Creating one adds it to the Accounts filter above the dashboard, to the account picker in the holding editor, and to the colour used for it in the composition bar and the “Value by account” chart. The five that ship with the dashboard can't be renamed or removed; one you create can be removed again while no holding uses it. The list is stored with your cloud settings, so an account created here appears on your other devices too — and if the cloud is unreachable it is created in this browser and pushed up on the next load. Any account a holding references shows up regardless, so nothing you file under one can go missing.
Private equity
A private equity subscription isn't a balance that can be looked up — it's a commitment drawn down over years through capital calls, paid back through distributions, and valued by a NAV the manager reports each quarter. Add the tranche here (Altaroc Odyssey 2023, say), then open Cash flows on it to record each call, each distribution and each reported NAV. The annualised IRR is computed from those dated amounts, so the timing of every call counts — which is the whole point with private equity. Each tranche also keeps a matching holding in Portfolio holdings, valued at its latest NAV, so net worth, the allocation charts and the snapshot history include it. That holding is rewritten from here on every change, so editing it in the holdings editor won't stick — change the tranche instead.
Credits
Money you have lent to a third party is an asset of yours until it comes back, so it belongs in net worth. Record the credit here — who owes it and how much you lent — then open Repayments on it to register each payment they make. The outstanding balance is what you lent less everything repaid, and that is the figure that counts: each credit keeps a matching holding in Portfolio holdings, valued at the outstanding amount, so net worth, the allocation charts and the snapshot history include it. A repayment therefore doesn't change your net worth — it moves the money from the credit to wherever it landed, which you record as usual on that account. That holding is rewritten from here on every change, so editing it in the holdings editor won't stick — change the credit instead. A fully repaid credit stays on the list at zero until you delete it.
Portfolio holdings
Every holding the dashboard knows about — securities, cash balances, pension, insurance and crypto — can be edited, added or deleted here. Securities are valued as quantity × price; everything else carries a single amount. Changes are written straight to the Positions table in DynamoDB when cloud sync is connected, and to this browser's cache otherwise. Editing a price here retires any manual price override stored on this device for that ticker, so the value you type is the one that shows.
Sample portfolio
Your dashboard starts empty, which makes it hard to see what it actually does. This loads a set of invented holdings — a few shares and ETFs, two cash balances, a pension and some crypto — so every chart, the allocation donuts and the performance history have something to draw. None of it is real, and it is filed under a Demo account so Clear sample data removes exactly what was loaded and never touches a holding you entered yourself. Load it, look around, then clear it before you put your own figures in.
Net worth inputs
Net worth is investable accounts + house − mortgage. Both figures start at 0, so until you set them your net worth is simply what your accounts hold — leave them at 0 if you own no property. Enter them in CHF — that is the currency they are stored in, and they are converted for you when the dashboard is showing EUR or USD. They are stored with your cloud settings, so they follow you to your other devices; if the cloud is unreachable they are saved to this browser and pushed up on the next load. Snapshots record the figures in force when they were taken, so changing them here does not rewrite your history.
Prices & FX
Auto-refresh
—
⟳ Update prices & FX (top bar) pulls today's quotes from Yahoo Finance and refreshes FX from ECB. Requests route through your AWS Lambda proxy (baked into the code), which adds CORS — no API key needed. It covers all your exchanges: US (bare ticker), SIX Swiss (.SW), Xetra (.DE). If a ticker doesn't return, edit its field here and click Apply manual edits. Prices & FX are also refreshed automatically twice on every business day. Manual edits persist on this device only.
Import a broker statement
Export Compte de portefeuille (Account overview) from Swissquote as PDF, then drop it in here. The dashboard reads the statement's Positions and Actifs tables and shows you a recap of every difference against your current holdings — added, updated and closed — before writing anything. You approve or decline each line; Decline writes nothing at all. Only Swissquote holdings are ever in scope, so your E*TRADE, Prévoyance, Swisslife and Crypto rows can't be touched. Quantities, unit costs and cash balances are imported; statement prices are left out by default because the dashboard already quotes live. The PDF is parsed in your browser and never uploaded anywhere.
Cloud sync
Cloud sync is loaded from the deployed AppSync configuration in the cloud. The dashboard reads its shared config document from DynamoDB on startup, so no per-browser URL or API key entry is required.
Price alerts
Baseline delivery always includes in-app toasts.Install the free ntfy app, subscribe to the same topic name, and you'll get native push alerts on your phone when a price threshold fires.
Set an Above threshold and/or a Below threshold per ticker. Alerts fire when price crosses a threshold (once per crossing), not on every refresh while remaining beyond it.
FromTo
TodayEarliest available
Accounts
Currency
No holdings loaded
This dashboard no longer ships with any portfolio data baked in — holdings live in DynamoDB. Open ☁ Cloud sync above and connect your AppSync endpoint + API key to load your positions (see aws-appsync-setup/README.md if you haven't set that up yet).
Total assets & net worth investable accounts + house − mortgage
Performance value change between two dates, per stock
Holdings
Columns shown
Net worth & investable total (CHF)
MSCI exposure % over time
Profit & loss
What the market and the franc did to what you already held — deposits, withdrawals and trades are excluded, as are the house and the mortgage. A balance kept as an amount rather than a price (pension, insurance, private equity, credit) counts only for its currency move.
Spread of those moves
The same moves, measured against their own average rather than against zero.