THE ETF WORKBENCH
Compare ETFs. See the trade-offs.
Add ETF tickers to compare historical returns, drawdowns, holdings overlap, correlations, and fees. Then explore a portfolio transition with your own assumptions.
Compare with context.
Move with a plan.
FROM RESEARCH TO A PLAN
A considered way to move.
Choose your destination. See which lots could move now, and which could wait.
START WITH A REAL-WORLD SITUATION
Explore a move before making your own.
Spread out a tech-heavy portfolio
The gain budget moves part of the older lot now and another part after January. Some holdings remain unsold; a smaller tax reserve includes deferral, not just savings.
- Starting market value
- $55,187
- Modeled cost basis
- $30,738
- 12-month tax reserve
- $1,500
- Still outside targets
- $29,984
WATCH THE PLAN UNFOLD
Your portfolio, month by month.
Prices stay fixed. Balance changes come from contributions, transfers between holdings, and estimated tax reserves—not projected returns. Select a bar or move the slider to inspect a review.
Review 12 · 2027-08-25. No sales planned. Allocate $183 to SCHD, $158 to SPMO, $79 to XLE, $79 to XLV. $29,984 remains outside your target ETFs.
Target ETF share measures money held in your chosen funds; it does not mean their weights match your desired allocation. Tax reserves are excluded from portfolio value. Net losses do not create assumed tax credits.
View chart data
| Review | Portfolio | Outside targets | SCHD | SPMO | XLE | XLV | Unallocated cash | Contribution | Net gain / loss | Tax reserve |
|---|---|---|---|---|---|---|---|---|---|---|
| Before · 2026-09-25 | 55,187.00 | 51,877.00 | 3,310.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
| 2026-09-25 | 54,937.00 | 40,930.50 | 7,177.12 | 3,414.69 | 1,707.34 | 1,707.34 | 0.00 | 500.00 | 5,000.00 | 750.00 |
| 2026-10-25 | 55,437.00 | 40,930.50 | 7,358.12 | 3,574.19 | 1,787.09 | 1,787.09 | 0.00 | 500.00 | 0.00 | 0.00 |
| 2026-11-25 | 55,937.00 | 40,930.50 | 7,539.35 | 3,733.58 | 1,866.79 | 1,866.79 | 0.00 | 500.00 | 0.00 | 0.00 |
| 2026-12-25 | 56,437.00 | 40,930.50 | 7,720.80 | 3,892.85 | 1,946.42 | 1,946.42 | 0.00 | 500.00 | 0.00 | 0.00 |
| 2027-01-25 | 56,187.00 | 29,984.00 | 11,600.21 | 7,301.40 | 3,650.70 | 3,650.70 | 0.00 | 500.00 | 5,000.00 | 750.00 |
| 2027-02-25 | 56,687.00 | 29,984.00 | 11,781.85 | 7,460.57 | 3,730.29 | 3,730.29 | 0.00 | 500.00 | 0.00 | 0.00 |
| 2027-03-25 | 57,187.00 | 29,984.00 | 11,963.80 | 7,619.60 | 3,809.80 | 3,809.80 | 0.00 | 500.00 | 0.00 | 0.00 |
| 2027-04-25 | 57,687.00 | 29,984.00 | 12,146.04 | 7,778.48 | 3,889.24 | 3,889.24 | 0.00 | 500.00 | 0.00 | 0.00 |
| 2027-05-25 | 58,187.00 | 29,984.00 | 12,328.58 | 7,937.21 | 3,968.61 | 3,968.61 | 0.00 | 500.00 | 0.00 | 0.00 |
| 2027-06-25 | 58,687.00 | 29,984.00 | 12,511.40 | 8,095.80 | 4,047.90 | 4,047.90 | 0.00 | 500.00 | 0.00 | 0.00 |
| 2027-07-25 | 59,187.00 | 29,984.00 | 12,694.50 | 8,254.25 | 4,127.12 | 4,127.12 | 0.00 | 500.00 | 0.00 | 0.00 |
| 2027-08-25 | 59,687.00 | 29,984.00 | 12,877.88 | 8,412.56 | 4,206.28 | 4,206.28 | 0.00 | 500.00 | 0.00 | 0.00 |
Price sources and scenario assumptions
These examples use observed Yahoo Finance daily closes, with the market snapshot dated 2026-09-24. Purchase prices are actual historical closes; share counts, purchase decisions, allocations, and tax rates are hypothetical. Historical closes are split-adjusted; distributions, trading costs and basis adjustments other than splits are omitted. They are educational examples, not recommended portfolios.
| Holding | Hypothetical purchase date | Basis / share | Snapshot price |
|---|---|---|---|
| QQQ history ↗ | 2024-01-02 | $402.5900 | $741.1000 |
| SCHD history ↗ | 2024-01-02 | $25.5633 | $33.1000 |
The next 12 monthly reviews hold prices fixed. Existing positions and new contributions use U.S. taxable-account assumptions. No tax benefit from losses is assumed; loss lots remain held for review. Tax rules: IRS Publication 550.
01 / Your tax lots
| Lot | Shares | Basis | Gain / loss | Long term from | Remove |
|---|
Add each purchase as a separate lot to preserve its cost basis and holding period.
02 / Your destination
Total: 100.00% / 100%. Existing target lots are retained. Cash goes toward underweight targets.
03 / Set the pace
Enter your combined marginal rates, including applicable state tax and NIIT. The first year’s budget should be what you have left; the same budget resets in January. New cash starts on the plan date.
Confirm the U.S. taxable-account assumption above to calculate this worksheet. Other jurisdictions and retirement-account rules are not modeled.
How this transition estimate works
Prioritizes eligible non-target lots with the lowest estimated tax per dollar sold, permits fractional shares, and caps gross positive realized gains by calendar year. It reserves estimated tax before allocating proceeds and new cash toward target deficits. It retains all existing target lots, including overweight positions. This is a transparent heuristic, not a global tax optimum or a full rebalance.
Ordinary purchased shares qualify as long term after more than one year. Special holding periods for gifts, inherited shares, wash-sale replacements and other adjustments are not modeled. Your broker must support specific-lot identification; confirm the actual lots before any order. See IRS Publication 550.
Loss lots are held unless you confirm review. Wash-sale rules can apply to substantially identical purchases within 30 days before or after a loss sale, including purchases outside this worksheet. This tool cannot certify wash-sale safety. Loss offsets, carryforwards, tax brackets, future returns, commissions and spreads are not modeled. Recheck prices, tax circumstances and broker records at every review date.
LOOK THROUGH THE LABEL
Different funds. The same bets?
See the companies your ETFs share, and where another fund adds different holdings.
Overlap measures shared holdings, not how returns move together. Even funds with no shared holdings can fall together.
Holdings overlap diagram
WAITING FOR TWO HOLDINGS LISTSWe need two holdings lists to calculate the shared and different assets. The data source has not supplied enough usable lists; this does not mean these ETFs have no holdings.
Holdings data and coverage · 0/3 funds loaded
Yahoo supplies a top-holdings list, not a complete portfolio. Unreported weight stays unknown; it is never redistributed across known holdings. Tickers match exactly after uppercasing; share classes, foreign listings and derivatives are not combined.
Import holdings from an issuer CSV
Use Symbol, Name (optional), and Weight columns, or paste a spreadsheet with those headers. Weights are percentages: 5.2 means 5.2%. Include only positive weighted holdings; unsupported or duplicate rows must be corrected. Importing replaces the reported list for that ETF in this tab.
How the holdings change
Provider observations are saved to the database when loaded. Imported snapshots are private to your signed-in account. History starts with recorded observations; it is not a historical backfill or an automatic daily feed. The latest 30 observations per fund are shown.
Choose a saved observation after this fund has been recorded. Return with newer holdings to see changes.
Gathering the full picture.
Loading completed daily sessions for 3 ETFs…
Behind the numbers
Daily USD ETF history from Yahoo Finance, cached for 15 minutes. Today’s bar is excluded to avoid comparing incomplete sessions. Adjusted return uses the provider’s dividend- and split-adjusted close as a total-return proxy; price return uses its close series. Missing adjusted values are never replaced with unadjusted prices.
Available history keeps each fund’s observed prices within the selected range; each series is rebased at its own first observation. 10Y is the ten years ending on the latest session. Max starts on the first session of the youngest ETF, so every fund is measured over that same span. All starts on the first session of the oldest ETF; newer funds join when their history begins. New funds are not backfilled, and missing prices remain gaps. Different start dates mean returns and rankings cover different periods. Shared dates only rebases all funds over matching sessions, which can shorten a calendar range to the newest fund’s history. Correlation always uses this shared window. Annualized returns require at least one year. Volatility uses sample daily-return standard deviation × √252; gaps over seven calendar days suppress volatility and correlation rather than treating multi-day returns as daily returns. Shorter gaps can still affect these estimates. Drawdown measures decline from the running peak of the selected return series, not intraday lows. Correlations with fewer than three return observations or zero variance are unavailable.
These are historical comparisons, not forecasts. The transition worksheet uses your inputs and a simplified estimate. Share links contain only tickers and chart settings; tax-lot details stay in this tab and are cleared on reload.
A better portfolio starts with a clearer picture.
