About

Why I Built This

I have a lot of ETFs in my portfolio. VOO, VTI, QQQ, VGT — they all sound different, but how much do they actually overlap? Am I really diversified, or am I just holding NVIDIA five different ways?

I couldn't find a simple tool that would take my actual portfolio, look up what each ETF holds, and show me my true exposure to individual stocks. The APIs that make this information available are either deprecated, or make me pay a lot of money just to use the ETF analysis feature. So I built one.

ETF X-RAY aggregates the underlying holdings of all your ETFs and shows you exactly what you own — weighted by how much money you have in each fund. The treemap makes concentration immediately visible: you will see if one stock dominates your portfolio or not

How Weights Are Calculated

For each ETF you enter, we calculate your dollar exposure:

dollar_value = current_price × shares

Then for each stock inside that ETF, we calculate how much of your money is exposed to it:

stock_exposure = etf_dollar_value × (stock_weight_in_etf / 100)

If the same stock appears in multiple ETFs (e.g., NVDA is in both VOO and QQQ), the exposures are summed:

total_stock_exposure = sum of exposure from each ETF

Finally, the displayed weight is:

weight% = (total_stock_exposure / total_portfolio_value) × 100

Prices are fetched live from Vanguard's public API. Holdings composition is scraped monthly from ETF provider websites (Vanguard, BlackRock, SSGA, Invesco).

Example

Say you hold 10 shares of VOO at $679 and 5 shares of QQQ at $709:

  • VOO value = 10 × $679 = $6,790
  • QQQ value = 5 × $709 = $3,545
  • Total portfolio = $10,335

NVDA is 7.85% of VOO and 9.08% of QQQ:

  • From VOO: $6,790 × 0.0785 = $533
  • From QQQ: $3,545 × 0.0908 = $322
  • Total NVDA exposure: $855
  • NVDA weight: $855 / $10,335 = 8.27%

Supported ETFs & Mutual Funds

All US-based stock ETFs and stock-based mutual funds are supported. Bond and crypto funds are not currently available. Holdings are refreshed monthly.