Tools › Investing › Portfolio and Risk › Portfolio Rebalancing › Method
Portfolio Rebalancing: Method
Open the Portfolio Rebalancing tool
Portfolio Rebalancing: How It Works
What it does
A portfolio is usually set up with a target mix, for example half in one fund and a quarter in another. Prices then move, and the mix drifts. Rebalancing is trading back to the target mix. The page answers one question: given what each holding is worth now, its target percent and any cash being added or withdrawn, what is bought and what is sold? It prints the current weights and their drift, each trade, and every holding after the trades. Every step is printed as formula, numbers put in, answer.
The method
Symbols. vi is the current value of holding i and pi its target in percent (the targets add to 100). V = Σ vi is the portfolio today, C the new cash (negative for a withdrawal) and T = V + C the portfolio after the cash.
Weight and drift. The current weight is wi = 100 vi / V. The drift is wi − pi, in percentage points: positive for a holding above its target (overweight), negative for one below (underweight).
Target value and shortfall. The target value is ti = (pi / 100) T. The shortfall is si = ti − vi: what would have to be bought (or, when negative, sold) to put the holding at its target. Because the targets add to 100, the shortfalls add to C.
Full rebalance. Every holding is traded by its shortfall, di = si. Afterwards each holding is worth ti, so its weight is exactly pi, and the purchases less the sales equal C.
New cash only. Nothing is sold, so the purchases xi ≥ 0 must add to C. The page chooses the purchases that make the sum of the squared drifts after the trades, Σ (vi + xi − ti)², as small as possible. The solution has a simple form, known as water-filling:
xi = max(0, si − L)
with one level L for all holdings, set so that the purchases add to C. In words: put cash into the most underweight holding until its shortfall has come down to that of the next one, then into both, and so on until the cash is used up. Every holding that receives cash ends L short of its target; a holding whose shortfall is less than L receives nothing. To find L, rank the shortfalls from the largest down, s(1) ≥ s(2) ≥ …, and for k = 1, 2, … compute
Lk = (s(1) + … + s(k) − C) / k
stopping at the first k for which Lk is not below s(k+1) (or when every holding is included, where L = 0 and all reach target). A withdrawal is the mirror image: nothing is bought, and the sales come from the holdings furthest above target, each ending the same amount above it.
After the trades. Value after = vi + trade; weight after = 100 × value after / T. Total traded = purchases + sales, also shown as a percent of T.
Tolerance band (Advanced). A band is the drift allowed before a holding is traded. An absolute band of b points marks a holding as outside when |wi − pi| is more than b; a relative band of b percent when it is more than (b / 100) pi. The weights tested are today's, before the new cash. With a band, the full rebalance trades only the holdings outside it, each to its target value ti, and leaves the others alone; the purchases less the sales then differ from C and the difference stays as cash.
Whole shares (Advanced). With a share price Pi, a purchase becomes floor(di / Pi) shares and a sale ceil(|di| / Pi) shares, never more than are held. Rounding purchases down and sales up means the trades never need more cash than there is; what is not spent is reported as cash left over. Each holding ends within one share price of the exact result.
Tax estimate (Advanced). A sale of amount q from a holding of value v with cost basis b (what was paid for it) is taken to realise the gain q (v − b) / v, the same share of the holding's total gain as the share of the holding sold. Estimated tax = rate × total gain, and zero when the total is a loss. Trading cost = rate × total traded.
What it assumes
- The values and prices typed in are the prices the trades are made at. Prices move between the calculation and the trade.
- The targets are yours. The page does not say what the targets ought to be, how often to rebalance or how wide a band to use.
- All holdings are in one account, or in accounts between which money can move freely.
- In new-cash-only mode, "closest to target" means the smallest sum of squared drifts. Another measure of closeness (for example the largest single drift) can give slightly different purchases.
- The trades are not reduced for the trading cost or the tax; both are reported beside the cash left over.
When it misleads
- The tax figure is rough. It uses the average cost of each holding and one rate. The real gain depends on which purchase lots are sold and how long each was held, and losses, other gains and the type of account all change the tax. A sale inside a tax-sheltered account has no such tax. Capital Gains and Tax Lots works a sale lot by lot.
- Small trades may not be worth making. A full rebalance trades every holding, however small its drift. Costs, spreads and minimum trade sizes are not weighed against the benefit; a band is one common way to skip small trades.
- Band rebalancing here is the simplest rule. It moves holdings outside the band all the way to target and leaves the rest, which can leave cash uninvested or call for cash. Other published rules move a holding only to the edge of its band, or use the leftover cash on the remaining holdings.
- New cash may not be enough. When the drift is large compared with the cash, the portfolio stays away from its targets after the purchases; the results say by how much.
- Rebalancing is not a way to raise returns. It keeps the mix, and with it the level of risk, near what was intended. Whether it adds or costs return in a given period depends on how prices happened to move.
Worked example
Four holdings (the page's default; the figures are illustrative): US Stock Fund 62,000 with target 50 %, Intl Stock Fund 15,000 with target 20 %, Bond Fund 20,000 with target 25 %, Money Market 3,000 with target 5 %. New cash 5,000.
V = 62,000 + 15,000 + 20,000 + 3,000 = 100,000. Current weights 62, 15, 20 and 3 %; drifts +12, −5, −5 and −2 points.
T = 100,000 + 5,000 = 105,000. Target values: 0.50 × 105,000 = 52,500; 0.20 × 105,000 = 21,000; 0.25 × 105,000 = 26,250; 0.05 × 105,000 = 5,250.
Full rebalance. Trades = target value − value: 52,500 − 62,000 = −9,500 (sell); 21,000 − 15,000 = +6,000; 26,250 − 20,000 = +6,250; 5,250 − 3,000 = +2,250. Purchases 14,500 less sales 9,500 = 5,000, the new cash. Total traded 24,000, which is 22.86 % of 105,000. Every holding ends at its target weight.
New cash only. Shortfalls ranked: Bond Fund 6,250; Intl Stock Fund 6,000; Money Market 2,250; US Stock Fund −9,500. With k = 1: L = (6,250 − 5,000) / 1 = 1,250, which is below the next shortfall 6,000, so go on. With k = 2: L = (6,250 + 6,000 − 5,000) / 2 = 3,625, which is not below the next shortfall 2,250, so stop. Buy 6,250 − 3,625 = 2,625 of Bond Fund and 6,000 − 3,625 = 2,375 of Intl Stock Fund; together 5,000. Weights after: US Stock Fund 62,000 / 105,000 = 59.05 % (drift +9.05), Intl Stock Fund 17,375 / 105,000 = 16.55 % (−3.45), Bond Fund 22,625 / 105,000 = 21.55 % (−3.45), Money Market 3,000 / 105,000 = 2.86 % (−2.14). The two funds that were bought both end 3,625 / 105,000 = 3.45 points below target.
Advanced, full rebalance. With share prices 250, 62.50 and 80 (Money Market traded in any amount): sell 9,500 / 250 = 38 shares; buy 6,000 / 62.50 = 96 shares; buy floor(6,250 / 80) = 78 shares for 6,240; cash left over 10. With a cost basis of 40,000 for US Stock Fund, the sale realises 9,500 × (62,000 − 40,000) / 62,000 = 3,370.97 of gain; at an illustrative 15 % the estimated tax is 505.65.
A calculator for education and analysis, not investment advice.