Freshness & sourcing
The 24-hour store, cold loads, where every figure comes from and how the series are computed.The 24-hour store
Each ISIN is stored with the time it was generated. A request within 24 hours of that time returns the stored payload (cached: true) in a few hundred milliseconds. Once it is older than 24 hours, the next request loads fresh data, stores the new payload and returns it (cached: false). Concurrent requests for the same cold ISIN trigger a single load; the others wait for it. Funds in the pre-warmed universe are refreshed on a schedule, so most popular ETFs are always warm.
Where the figures come from
Every payload is built from documents published by the fund's own management company for that share class: the product page, the monthly factsheet, the PRIIPs KID and, where the issuer publishes them, the full holdings file and the NAV history. Documents are read as published; nothing is estimated except where the field description says so. data.dataAsOf carries the as-of date printed in the document; show it next to any figure.
When a NAV history is available, cumulativePerformance, calendarReturns, annualisedReturns, volatility, Sharpe ratio and maximum drawdown are computed from it (monthly observations, 3-year window, 0% risk-free rate) so they are consistent across issuers. Otherwise the figures stated in the factsheet are used and the series may be empty. Coverage varies by issuer: ETF providers usually publish holdings and NAV files, active managers usually publish a factsheet and a KID only — the coverage pages say what to expect per fund house.
History
Every successful refresh is also kept as a dated snapshot, so TER, fund size, holdings and risk-indicator changes over time can be served in a future version of the API. Ask us if you need history today.