Google sheets. I think this is by far the most popular choice.
For most stocks/ETFs you can have values updated near-live if you want using =GOOGLEFINANCE()
. And you can integrate little spark charts that fill single cells, e.g.: a little unlabelled line chart of past year’s performance of VWRL on the Amsterdam exchange: =sparkline(query(googlefinance("AMS:VWRL", "price", today()-365, today()), "select Col2 label Col2 ''", 1))
Personally, I have a tab for each bank/broker I use + an “other” tab for simple things (pending reimbursements, rental caution, etc.). I use and update manually every month. This forces me to log into each of my accounts and stay on top of things.