A broken chart no longer takes the page with it
If a chart fails to draw, it is now replaced by a short message and the rest of your dashboard keeps working. Previously one failing widget replaced the whole page, holdings and navigation included.
What has changed, newest first. Fixes are listed alongside features — if something was broken, it is more useful to you to know it was.
If a chart fails to draw, it is now replaced by a short message and the rest of your dashboard keeps working. Previously one failing widget replaced the whole page, holdings and navigation included.
HaboFi describes market data, it does not advise. That is now stated on every page rather than only a few.
Accounts with many positions could see an empty chart on every time period. The cause was our own shared limit on price requests being exhausted; daily prices are now cached, so switching between 1M, 3M and YTD no longer re-fetches everything.
Broker codes like VWCE, IWDA and SXR8 are now matched to the right exchange listing automatically. Before this, holdings the price feed did not recognise were valued at zero, which quietly understated the portfolio total.
Exports from these brokers are recognised automatically and their columns mapped for you. Anything unrecognised still goes to the manual mapper, which reads any CSV.
Both moved out of Pro. Seeing your portfolio against the S&P 500 is the point of importing your data, so it should not sit behind a price.
New accounts are walked through importing a CSV, trying a demo portfolio, or entering a position by hand.
Built from a genuine CSV through the normal importer, so it exercises the same code your own file does. It can be removed in one click.
Written explanations of the things people ask about most: why a broker's return percentage differs from ours, yield on cost against current yield, and step-by-step export instructions.
Pro is invite-only for now. Everything that was free before it existed stays free — including for accounts created earlier.
Sessions are verified locally instead of calling the auth server on every request, which removed a network round trip from every page and API route.
Closed an open redirect on the post-login destination, and stopped a background job echoing raw error text back in its response.