Free educational tool · Synthetic data
One investment. Two separate results.
Compare a stock with an ETF after a partial sale. Change the assumptions and see what belongs to the shares you sold and what belongs to the shares you kept.
Current synthetic comparison
What did each part earn?
$1,010.00 total acquisition cost = 100 stock shares × $10.00 + $10.00 purchase fee. The ETF invests the same $1,000.00 after its fee.
Synthetic prices (purchase → sale → final): stock $10.00 → $12.00 → $13.00; ETF $10.00 → $12.00 → $13.00. Sale fee: $2.00 per asset when a sale occurs.
Sale · 2 February 2026
Closed part
The shares sold, measured up to their sale.
- Stock
- 18.32%
- Synthetic ETF
- 18.32%
Stock − ETF0.00 pp
- Stock shares
- 40
- Allocated cost
- $404.00
- Net sale proceeds
- $478.00
- Stock gain
- $74.00
- ETF gain
- $74.00
Valuation · 2 March 2026
Open part
The shares still held, measured at the final price.
- Stock
- 28.71%
- Synthetic ETF
- 28.71%
Stock − ETF0.00 pp
- Stock shares
- 60
- Allocated cost
- $606.00
- Remaining value
- $780.00
- Stock gain
- $174.00
- ETF gain
- $174.00
Cumulative returns on each part’s allocated cost. Both panels use the same scale. Bars show two endpoint comparisons, not a price history. Differences are percentage points (pp), not relative percentage changes.
Selling 40% closes 40 stock shares for $478.00 net. The closed stock return is 18.32%, a 0.00 percentage-point difference from the ETF. The shares still held have an open return of 28.71%, a 0.00 percentage-point difference from the ETF.
Edit the synthetic assumptions 10 inputs · fixed dates · USD
Changes update the comparison above immediately. Enter plain numbers with at most two decimal places. Ranges are shown below each field. These inputs stay on this page only; reloading or returning from the guide restores the published example.
How to read this comparison
The assumptions are part of the result.
- One budget, the same fee
- Stock shares × stock purchase price gives the gross investment. Add the purchase fee for total acquisition cost. The ETF receives that same total budget and pays the same dollar fee before buying fractional units at its own purchase price.
- The same sale fraction, not the same cash proceeds
- On 2 February, both sides sell the chosen percentage of their units and pay the same dollar sale fee. Net proceeds can differ. Allocate that percentage of original acquisition cost to the closed part; the rest belongs to the open part. This is proportional performance accounting, not a tax-lot calculation. A 0% sale incurs no sale fee.
- Two endpoints, no invented history
- The closed part ends at its sale on 2 February. The open part is valued on 2 March without a final sale fee. Each return is (value or net proceeds − allocated cost) ÷ allocated cost. The bars share a scale and compare those endpoints; they do not interpolate a price history.
- A bounded illustration
- All prices are synthetic, in USD. No live prices, dividends, taxes, FX, transfers, spreads or ongoing fund expenses are modeled. The dates are fixed and the returns are not annualized. Extreme assumptions are illustrative, not forecasts. Displayed amounts are rounded; calculations retain precision.
Download the published example inputs (CSV) to check the starting assumptions in a spreadsheet. This fixed file does not export your changes. It contains fictional teaching inputs, not IBKR data or an import template.
With the published inputs, both assets have identical prices and fees. The two zero percentage-point differences verify consistency; they are not evidence that one investment will outperform another.
This tool measures a single position. It is not whole-portfolio TWR or MWR, and averaging its percentages does not produce a portfolio return. PerfectPerf’s broader portfolio analysis is planned.
Learn the arithmetic in the position-versus-ETF guide or read PerfectPerf’s methodology.