Our data
How we source and verify ETF data
Every number on ETFLens comes from a primary source document. Here is exactly where the data comes from, how often it is checked, and what we do when something does not match.
Primary sources
ETFLens sources its data from primary disclosure documents wherever possible. For the ETFs it covers in detail, holdings and fund facts come from the fund manager's published Product Disclosure Statement (PDS) and quarterly factsheet, and for BetaShares ETFs the live holdings CSV files published at betashares.com.au. Baseline fees, fund sizes and past-performance figures for the broader set of 408 ETFs in the database are sourced from the ASX's monthly Investment Products report. ETFLens does not invent or estimate data, and does not rely on real-time market-data aggregators. The fund managers currently covered are Vanguard Australia, BetaShares, iShares (BlackRock Australia), VanEck Australia, Global X ETFs Australia, SPDR (State Street Global Advisors Australia), Magellan, Macquarie, Munro, and a number of active managers whose full holdings are published through quarterly portfolio-disclosure documents.
Automated refresh pipeline
ETFLens runs a Node.js refresh script that pulls holdings, sectors, geography and AUM directly from each fund manager's public endpoint and re-aggregates the data through a shared GICS sector / ISO 3166 country normalisation layer. 316 of 408 ETFs carry live holdings refreshed nightly for the most widely held funds, with the remaining funds refreshed on their issuer disclosure cadence (quarterly or monthly); every ETF carries fees, fund size, sectors and geography sourced from primary disclosures or the ASX monthly Investment Products report. The 5 ETFs that cannot be auto-fetched for holdings are documented below.
Endpoints in use: Vanguard vanguard.com.au/personal/api/data/products/holdings/[portId], BetaShares betashares.com.au/files/csv/[TICKER]_Portfolio_Holdings.csv, iShares blackrock.com/au/products/[id]/fund/...ajax, VanEck JSON-LD content URLs, SPDR/SSGA daily XLSX, Global X daily PCF XLSX (files.globalxetfs.com.au/GXAU_[TICKER]_FULL_PCF_[YYYYMMDD].xlsx), and the Vanguard US holdings API for the VTS/VEU cross-listings.
Every fetched record is diffed against the live database, sanity-checked (top-holding turnover, holdings-count collapse, cash-leg dominance, weight magnitude) and only then written. Wrapper ETFs (iShares IVV, IOO) are excluded from the apply step: they are hand-tracked from the US-domiciled funds.
Update schedule
Live holdings (the data behind the overlap checker and Portfolio X-Ray) refresh on an automated pipeline that runs every night, around 2am AEST. Fund managers that publish a daily holdings file are re-checked nightly; those that disclose less often, such as through quarterly portfolio-disclosure PDFs, are picked up as soon as a new file appears. The broader fund-facts set (fees, fund size, sectors and geography) is re-applied whenever the underlying provider data shifts materially, and at minimum every quarter. Each ETF carries its own dataAsOf date that reflects the “as of” date stamped on the provider's file (not when our script ran). The freshest date currently in the database is Q2 2026; per-ETF labels on the detail pages always show the actual provider date for that fund.
Known limitations
The following ETFs cannot currently be auto-refreshed and are maintained by hand:
- GOLD (Global X Physical Gold Structured): physical-gold Structured product: no underlying-holdings file is published.
- HBRD (Betashares Australian Credit Income Active ETF): BetaShares CSV currently returns 0 rows; awaiting provider fix.
- IVV (iShares S&P 500 ETF): CDI wrapper around US-domiciled iShares IVV: holdings tracked from the US fund directly.
- IOO (iShares Global 100 ETF): CDI wrapper around US-domiciled iShares IOO: holdings tracked from the US fund directly.
- IHVV (iShares S&P 500 (AUD Hedged) ETF): AUD-hedged CDI wrapper of US-domiciled IVV: holdings tracked from the US fund directly.
Vanguard's holdings API returns at most 300 securities per request. For Vanguard ETFs with more than 300 underlying holdings (VGS, VGE, VAE, VISM, VEU, VIF, VCF, VBND, VACF) the top 10 holdings and largest sector/country weights are accurate, but the long-tail sector and country totals are partial.
Overlap calculations are based on top holdings data only. Two ETFs may share more underlying exposure than the overlap checker shows if the shared exposure falls outside the top holdings published by each fund manager.
This site does not display live prices, NAV, or intraday data. All figures are sourced from the most recent fund-manager file at the time of the last refresh. General information only, not financial advice.
Found an error?
If you believe a data point is incorrect, contact hello@etflens.com.au with the ETF ticker, the field in question, and a link to the primary source document if available. All correction reports are reviewed within 5 business days. General information only, not financial advice.
ETFLens Data API: for financial advisers and platforms
ETFLens maintains a structured Australian ETF dataset with sub-weekly refresh latency, GICS-normalised sectors and ISO 3166 country mapping across every holding. The dataset is available as a JSON feed for advice platforms, portfolio tools and research firms. Currently in private beta.
Join the waitlist with your work email. Access is not a recommendation of any ETF and no pricing is implied at this stage.