September 25th 2020

Rebalancing your lazy portfolio

Update: This tool can now be installed as a Progressive Web App (PWA) on your desktop or mobile device. See this blog post for more details.

Lazy portfolios are a simple and safe way I've been using for some time to successfully invest in the market. The general idea is to allocate your investments into a few broad funds (usually index funds) proportionally to your desired risk profile and let them sit and grow over time. Once you've purchased your funds at your desired allocations the only action required is to occasionally rebalance them and bring them back to your desired allocations as they change over time. These rebalances can happen at set time intervals (6 months to a year) or at specific triggers based on some other strategy. If your only criteria is that your risk profile adjusts as you get closer to retirement age then you can invest entirely in a target date fund, but if you want more control over when/why/how you rebalance then a lazy portfolio might be for you.

How to use

A rebalancing calculator (such as this one) will help you determine which funds you need to buy and/or sell and in what amounts to get your portfolio back to your desired allocation percentages. To use:

  • Select a preset fund allocation strategy under "Lazy Portfolio." If you don't like any of the provided options you can add/remove funds and edit target percentages directly in the table to make your own "Custom" investment strategy.
  • Choose your desired currency (or leave in USD).
  • Input the current value of each of your funds (or leave at 0.00 if you're just starting).
  • Input your positive contribution amount (or input a negative amount to withdraw). You can also use the "Auto Calculate" button to set the contribution amount for you. It will calculate the minimum contribution you'd have to make to get your portfolio perfectly balanced.
  • Use the buy/sell checkbox to indicate if you are willing to sell (if contributing) or buy (if withdrawing) an asset in order to better reach your desired allocation. Keep in mind that selling may be a taxable event if your funds are not in an account that offers tax-free growth of your investments. If your funds are in a taxable account I'd suggest rebalancing through contributions alone whenever possible.
  • The calculator will automatically compute the required buy and/or sell amounts in real-time as you edit any fields.

Using the slider

The slider below the "Contribution Amount" is useful if you want to see how your allocation percentages adjust in real-time at various increments. The entire bar allows you to adjust the contribution in a range of ±10,000. Dragging the slider completely to either end will reset the cursor to the center allowing you to infinitely drag to any amount.


If you would like to copy/paste the data into a spreadsheet application, you can click the "view tab-delimited" button in the bottom right of the calculator to get the data in a tab-delimited format that can be pasted into other applications.

Share or save for later

To come back to this same portfolio at a later time with your data prepopulated (for your next rebalance maybe) or to share your portfolio with someone else you can use

The why and how

In the past I've used spreadsheets and then later this calculator: It's a good resource that does most anything you'd need it to do. My goal in making this calculator was for a few quality of life improvements for myself, specifically:

  • Easier data input than a text box.
  • A responsive design that works on mobile devices.
  • The ability to buy and sell as part of the same rebalance (for exchanging funds).
  • The ability to auto-calculate your minimum required contribution that would perfectly balance your portfolio.
  • The ability to view your contribution adjustments in real-time (using the slider) to see how much it affects your actual allocation percentages. This and the point above can be useful for determining stretch savings goals.
  • The ability to save your results and come back later.
  • Fixing some rounding issues, such as distribution of cents, so that your buy/sell amounts perfectly match your desired contribution amount.

The algorithm for rebalancing is a bit different as well. The auto-rebalance calculation is a constant time formula that produces the minimum amounts (allowing both buying and selling) that perfectly balance the portfolio. The results of that calculation are then adjusted using a recursive weighted redistribution that considers the applied constraints such as maximum sell amount and the "can buy/sell?" checkboxes.

Similar to the referenced calculator, this page does not send your portfolio data to a backend server. All calculations are performed directly on this page in Javascript with thanks to the following free software:

The future

If you have any suggested "lazy portfolio" presets that you think should be added feel free to submit a pull-request. If there are any features you think would be useful as part of this calculator feel free to suggest them in the comments below. Happy investing!