Skip to content

Market data

Stocktake can refresh prices and exchange rates for you, or leave them alone entirely. Either way, your holdings never leave the machine.

What is sent

A request for public market data contains ticker symbols and nothing else — BHP.AX, VAS.AX, AUDUSD=X. It does not send how many units you hold, what you paid, when you bought, your account, or anything that identifies you.

The provider learns which listed securities this installation is interested in. It cannot learn what you own.

Where it comes from

Yahoo Finance, through the yfinance library, is the default and needs no API key.

There are two separate jobs, because they answer different questions:

What it does Setting
Daily close Records what each day closed at, once a day price_feed.enabled
Live quotes Shows what a holding is worth right now price_feed.quotes_enabled

Live quotes are fetched only while somebody is signed in and an exchange holding something is open — a closed market has no new number to give. One batched request serves the whole portfolio, every five minutes by default.

Turning it off

Untick Automatically refresh market data during setup, or in your configuration file:

price_feed:
  enabled: false          # no daily close job
  quotes_enabled: false   # no live quotes either

With both off, nothing outbound happens at all. You can still record trades, run reports and enter prices yourself — the app simply stops asking anyone for numbers.

You can also just move the schedule rather than disabling it:

price_feed:
  enabled: true
  hour: 18       # local time, after your market closes
  minute: 30

If a refresh fails

A provider that errors, or returns nothing, is treated as "no answer today" and the stored prices stay as they were. Fewer rows than were asked for is normal — markets close — and is not treated as a failure, because treating it as one would rewrite the same rows from a different source on every run.