ToolsTransition Planner

Transition Planner

A phased realization schedule for moving a portfolio toward a benchmark under a tax budget.

Input
Current portfolio + target benchmark
Output
Quarterly realisation schedule
Constraint
Annual realised-gain budget
Headline resultIllustrative
73 bp

Quarter 8 — TE end of Q

Try it

See it on a portfolio

Pick a curated sample portfolio, adjust the inputs, and run the calculator against live solver code. Nothing is saved — this is an illustrative scenario, not a recommendation.

Sample portfolio

Loading samples…

The benchmark sets the destination — the index your portfolio will track once the transition completes. Every per-period solve is measured against this reference.

$range $0$2,000,000

The cap on capital gains the planner is allowed to realise per year. Embedded losses don't consume budget; they free up additional gain capacity inside the same annual cap.

quartersrange 416

How many quarters the schedule covers. The planner amortises the realisation across this window; longer horizons spread the tax bill thinner.

bpsrange 25250

The tracking error the residual portfolio should arrive at by the end of the schedule. Looser targets let the planner stop the rotation sooner.

Sub-second solve · no sign-up
The idea

Tells you the cheapest tax-by-tax path from where your portfolio is today to where you want it.

The objective
Minimize cumulative tracking error to the target benchmark across the horizon, subject to: per-period realized-gain ≤ gain_budget, lot identification per the chosen method, and the wash-sale lockout on recently sold-loss tickers.

The tool solves this on demand against a portfolio snapshot — typically in a single CVXPY call, or a short loop for multi-period tools. Unlike a strategy, there is no daily-rebalance schedule; you re-run when the inputs change.

What goes in, what comes out
Inputs
  • Current holdings with lot-level basis
  • Target benchmark and final tracking-error tolerance
  • Annual or quarterly gain budget
  • Horizon (quarters)
Outputs
  • Per-period sell list with lot identification
  • Projected tracking-error trajectory
  • After-tax NAV trajectory vs. immediate-rebalance baseline
Worked example

Account opens with $5M in 12 concentrated tech names; target is a US large-cap index with a 75 bp annual TE budget; gain budget is $200k / year; horizon is 8 quarters.

Quarter 1 — gains realised
$48k
Quarter 1 — losses realised
$11k
Quarter 1 — TE end of Q
190 bp
Quarter 4 — TE end of Q
120 bp
Quarter 8 — TE end of Q
73 bp
Cumulative gains realised
$1.31M
Cumulative losses realised
$280k
After-tax NAV vs. one-shot baseline
+ $112k

Smoothing the realisation across 8 quarters keeps the account inside the gain budget every year and arrives at the target TE of 75 bp by quarter 8. Numbers are illustrative.

Input

Target benchmark

Default · Large-Cap US 100

The benchmark sets the destination — the index your portfolio will track once the transition completes. Every per-period solve is measured against this reference.

How the optimizer applies it

The benchmark weight vector w_b enters the tracking-error term at every period. Changing it changes which embedded gains the planner must realise to converge and which losses come along for free along the way.

The trade-off

A narrower index (Large-Cap 100) converges faster — fewer names to acquire, tighter universe overlap with most legacy portfolios. A broader index (All-Cap) gives a wider harvest pool but a longer convergence path.

Other tools

Educational calculator. Output is illustrative and is not investment or tax advice.