Methodology · July 21, 2026 · 5 min read
Cross-listings, share classes, and the art of not double counting
One fund, three exchanges, two currencies: unless fund, share class, and listing are modeled separately, every aggregate you compute will be wrong.
Take a UCITS ETF with a single share class listed in London, Frankfurt, and Milan, trading in two currencies. How many ETFs is that? The honest answer is: it depends what you are measuring — and getting the answer wrong quietly corrupts the most common statistics in the industry.
Three levels, three kinds of fact
- Fund-level facts: the portfolio, the total AUM, the management fee. There is one portfolio no matter how many places it trades.
- Share-class facts: the NAV, the currency of denomination, hedging, the distribution policy. One fund may carry accumulating and distributing classes with different NAVs.
- Listing-level facts: the ticker, the exchange, the trading currency, volume, spread, premium or discount. Each listing has its own trading life.
Each fact lives naturally at one level, and trouble starts when a number is read at the wrong one. Summing AUM across a fund's three listings triples the fund. Averaging spreads across listings in different currencies produces a number with no meaning. Comparing the volume of one listing against a peer's consolidated volume across all venues understates the first fund badly.
Where it bites
Issuer league tables are the classic casualty: an issuer whose funds are heavily cross-listed looks larger than it is whenever a data source counts listings as funds. Market-share trends can move purely because a competitor added a listing. Even fund counts — “the issuer operates 40 ETFs” — differ by a factor of two or three depending on the level being counted.
Liquidity analysis has the opposite problem: there, the listing is exactly the right unit, and consolidating can mislead. An investor who can only trade on one exchange cares about the spread and volume there, not a global composite.
What correct looks like
A data model that keeps fund, share class, and listing as separate entities, linked by stable identifiers, makes the right aggregation a query rather than a judgment call. AUM deduplicates to the fund level by construction; trading measures stay at the listing level unless explicitly combined; and the question “across which listings?” is always answerable because it was always recorded.
This modeling is foundational to everything ETF Engine builds — the same discipline that keeps a product page honest keeps a peer comparison defensible.