Built to answer one question, then kept going
What do I actually own? Not what the prospectus says, not what your statement summarises in three line items — the real, company-by-company exposure sitting inside the funds you hold.
XRay My Portfolio started as a personal project to solve something most brokerage tools do not: if you hold five funds and three of them carry NVIDIA in the top ten, your statement will not tell you that your real NVIDIA exposure is several times your direct shares. The first version did fund look-through and nothing else.
It has since grown into twenty-three analyses built on that same parsed file — because once the tool knows what you truly own, across which account types, and at what cost basis, most of the other questions become answerable from the same data.
What it does
Upload a Fidelity or Schwab positions export — or several at once, to combine accounts — and the app organises everything into six groups, mirroring the questions people actually ask.
- What do I own. True company-level exposure across direct holdings, fund look-through and the net market value of any options you hold on the same underlying, plus the same view by sector and by investment theme.
- How is it doing. A position-level ledger with gain and loss, each holding's own trailing returns, estimated dividend income and yield, the annual dollar cost of your expense ratios, and an XRay Score that ranks each holding against peers in its own size-and-style cell rather than against the whole market.
- Risks. Concentration thresholds, fund overlap, a correlation heatmap limited to the names that carry real weight in your portfolio, and fifteen stress scenarios — fourteen presets plus one you build yourself. The presets cover macro moves such as rate changes, oil, the dollar index, gold, CPI, PPI and GDP, alongside sector shocks, broad-market drawdowns, and single-name and basket shocks. The company-level scenarios can additionally propagate the shock through the correlation matrix.
- Planning. Drift against the targets you set, a tax-aware reallocation plan, a tax-loss harvesting scanner, bracket-fill Roth conversion sizing with a multi-year ladder, a retirement withdrawal simulation, a 3×3 market-cap and style grid, pre-buy impact analysis, and a comparison of donating appreciated shares against selling and donating cash.
- Outlook. Monte Carlo simulation over 1,000 paths run against your actual holdings, a goal calculator, and long-horizon growth projection at a rate you control.
- Tracking. An options position tracker that reads the option rows in a Fidelity export and pairs them into spreads — structure, contracts, days to expiry, cost basis, current value, profit and loss and breakeven — with unpaired legs shown individually. The Black-Scholes delta computed from those rows feeds the stress scenarios rather than a view of its own.
Free: all twenty-three analyses above, including the fund look-through the tool was built for.
What an account costs: an email address and a password. No card.
What it does not do
Some honest boundaries, because a tool that overstates itself is worse than one that does less.
- Fund holdings come from public disclosures and are periodically refreshed, so they lag a fund's current composition. Funds already in the built-in database resolve instantly; others are looked up from SEC filings on demand, which sometimes fails, in which case the fund is shown as a single position rather than broken apart.
- Option positions are read from Fidelity's symbol format. Other brokers' option rows are skipped rather than guessed at.
- Tax figures assume a flat long-term rate. Brackets, the standard deduction and the extra deduction from 65 are indexed forward with the projection rather than frozen at today's, which is closer but still a model: it cannot know what Congress will do. They are estimates for comparing choices, not a tax return.
- Tax-loss harvesting covers taxable accounts only — losses inside an IRA, Roth or 401(k) are not deductible, so they are deliberately excluded.
- There is no transaction history and no price history in a positions export, so the tool cannot compute your actual return — not time-weighted, not money-weighted. The portfolio figure on the Performance tab weights each holding’s own trailing return by what it is worth today, which flatters anyone who added to winners. Ask your broker or an adviser if you need a true performance figure.
- Three-, five-, ten- and fifteen-year returns are computed on our own server from adjusted monthly closes, and marked with a dagger where we are still falling back to the older hand-maintained table for a symbol the refresh has not reached. Year-to-date, the one-year figure and the 52-week high are fetched live, and only when you ask for them.
- Projections and simulations are models. They describe a range of possibilities given a set of assumptions; they are not forecasts.
How your data is handled
Your file is parsed in your browser rather than on a server. What reaches us is the result: the ticker symbols needed to classify what you hold, and — if you are signed in — the securities in your portfolio and what they were worth on the date of your statement.
That is not the same as making no network requests, and the marketing should not pretend otherwise. To identify what you hold, the app sends the ticker symbols it found to its own server for classification, and can look an unknown fund up from public SEC filings. Where it meets a fund it cannot identify at all, it also sends the description printed beside it — the fund’s own name, with any amount or reference stripped out — so the fund can be added to the database. Live pricing and fundamentals, when you use them, send symbols to Finnhub through that same server so you never need an API key. Your quantities, dollar values and cost basis are not sent for any of that. Signed out, they stay on your device. Signed in, importing a portfolio keeps the parsed result against your account so you do not have to import it again — the statement file itself still is not kept.
If you sign in, what is stored about you is your email address; your password, never in readable form — it goes through PBKDF2-SHA-256 with a per-account salt, and only the derived value is kept; a log of which features you open, with timestamps, against that address; and, if you import a portfolio while signed in, the securities it holds and what they were worth on the date of your statement. The anonymous identifier used to count visitors is recorded alongside your email if you go on to create an account, so “looked and left” can be told apart from “looked and signed up”. The privacy policy sets out exactly what is sent, what is kept, and how to remove it.
Who built this
XRay My Portfolio is an independent project. It is not affiliated with, endorsed by, or sponsored by Fidelity Investments, Charles Schwab, Finnhub, or any broker, fund company or investor named anywhere in the app. It is built and maintained by an individual investor who wanted better tools than the platforms offered, and decided to share them.
A note on limitations
This tool is for informational and educational purposes only. It is not financial, investment, tax or legal advice, and nothing in it is a recommendation to buy, sell or hold any security. Past performance does not guarantee future results. Consider speaking with a licensed financial advisor or tax professional before acting on anything you see here. The terms of service set out the full detail.
Ready to see what your funds really own?
A free account — an email address and a password, no card — opens every analysis above. Or open the demo portfolio and look around with demo data first.
Sign up →Already have an account? Sign in · Try the demo portfolio