Optimal lazy portfolio rebalancing calculator

The situation

You have a portfolio of investments, and stick to your asset allocation. You sometimes rebalance your portfolio by selling over-weighted assets and buying under-weighted ones. However, deciding how frequently and aggressively to rebalance is a trade-off: tighter adherence to your target allocation requires higher expenditures in transaction costs, taxable gains, and effort. Sometimes, you end up selling assets only to buy them again at a higher price.

A better method: Optimal lazy rebalancing

Avoid these issues by being as lazy as possible: only rebalance as you contribute to or withdraw from your portfolio, avoid selling assets when you contribute, and avoid buying assets when you withdraw.

When contributing, use this calculator to help you purchase under-weighted assets optimally using only the contributed amount so that you get as close as possible to your target allocation without selling anything. Similarly, if you are withdrawing from your portfolio, use this calculator to help you sell over-weighted assets optimally to yield the desired withdrawal while getting as close as possible to your target allocation without purchasing anything.

The calculator

To use this calculator, replace the example information in the following fields and click Recalculate. Don't worry about lining up columns in the target allocation and current values field; you can even copy and paste from a spreadsheet as long as the columns are in the right order. Entering share prices is optional for each asset. The resulting table below will tell you how much of each asset to buy or sell.

Amount to contribute:

Enter a negative number to signify withdrawal.

Target allocation and current values:


Frequently asked questions

Will my financial data remain private?

Yes. This calculator will not cause any of your data to be transmitted; its calculations are performed within the web browser running on your own computer.

Why did an asset's allocation get farther away from its target upon rebalancing?

It was necessary in order to prevent another asset from having an even more egregious deviation from its target allocation.

What if the resulting allocation is not close enough to my desired allocation?

This calculator will get as close as possible using only the contributed or withdrawn amount. To get closer, you must contribute or withdraw a greater amount, or perform conventional rebalancing. Note that "closeness" is relative to the target amount; this calculator considers an asset with a 40% target that is 39% of the portfolio to be "closer" than an asset with a 4% target that is 3% of the portfolio.

What quantity does this calculator actually optimize?

Define the fractional deviation f of an asset to be a/t − 1, where t is the asset's target allocation and a is its actual portion of the portfolio. When contributing, this calculator maximizes the minimum f across all assets. When withdrawing, this calculator minimizes the maximum f. For more details, please read this full explanation.