Portfolio Rebalance Calculator
A JavaScript Page for rebalancing your investments.
©2006, Bob Beeman
Updated 2007-05-26 SA @ 19:50 EDT (UT-4)
Read More www.bee-man.us Important Notice

Below is an application to help you do your annual portfolio rebalancing. You can change the light columns, but not the darker ones. To replace the content, click on the table cell, fill in the resulting popup box, and click "OK". You can see information about any heading or caption by clicking on it. A small popup window will appear with information. Punch the "Calculate" button to do the rebalancing calculation.

CAUTION: If you use the "Safari" browser, be sure to use version 2 or later.

Remember to export and save any work you do. If you close or refresh the browser window, your data will be lost! The large textbox below is for import from and export to spreadsheets. More info is below under Read More.

Carefully note the disclaimer under Important Notice!!!

Example Note: My IRA Portfolio Rebalance 2006-12-31 SU. Click to change.
Rebalance Round: $0.01
# Asset
$ per
Shares $
Initial Value
+Buy or -Sell
Final Value
0 Cash Deposit Withdraw 0     0 0
1 VMMXX-mm 1.00 5,104.325 0 0 5.0 0 0
2 VIPSX-ipb 12.40 1,278.002 0 0 15.0 0 0
3 VBMFX-tbm 10.03 2,910.173 0 0 30.0 0 0
4 VTSMX-tsm 30.55 1,042.685 0 0 30.0 0 0
5 VGTSX-tis 14.49 1,141.976 0 0 15.0 0 0
6 VGSIX-reit 20.49 264.905 0 0 5.0 0 0
7 . 0 0 0 0 0 0 0
8 . 0 0 0 0 0 0 0
9 . 0 0 0 0 0 0 0
10 . 0 0 0 0 0 0 0
11 . 0 0 0 0 0 0 0
12 . 0 0 0 0 0 0 0
13 . 0 0 0 0 0 0 0
14 . 0 0 0 0 0 0 0
T Initial Portfolio Value
Excluding Cash:
0 Final Portfolio Value
Excluding Cash:

Below is the text field used for exporting/importing data for this page. It is in "tab delimited" format, which is the standard for exchanging spreadsheet data. You can do a "select all" and "copy" and paste it into a spread sheet or text processor, or copy and paste from there to this field.


Read More

This page mechanizess the rebalancing of a portfolio using up to 14 different asset classes. Because it is written in HTML and JavaScript, it runs in your browser and CANNOT SAVE OR READ DATA TO OR FROM FILES IN YOUR COMPUTER.

You import or export data using the large textbox under the application table. When you press the "Export To Text" button above the data from the table will be exported in tab-delimited format, which is the universal format used to exchange data between spreadsheets. The "Import From Text" button imports tab-delimited data (perhaps from a spreadsheet or text processor) into the table.

Since this page makes extensive use of JavaScript, Cascading Style Sheets, and the Document Object Model, it may not work in old browsers. I have tested it and found that it works on Safari, IE for Mac (which is seriously out-of-date) Netscape, and Firefox. Any recent browser on Linux, MacOSX, or Windows should work OK.

The operation of the page is fairly self-explanatory. You can click on table headings or captions to get brief directions.

Since I use Vanguard for my investing, I am subject to their rules when I rebalance my portfolio. They have very strict rules about having to get your trade in BEFORE the markets close if you want execution on that day. Otherwise the trade will execute at the close of the following day's trading. These rules are in place to prevent people from abusing long-term investors, as was done at a lot of other firms. These rules are one of the reasons I do business with Vanguard, instead of other firms. But it has the effect that you can only rebalance in dollar amounts, not share amounts, becuase nobody knows in advance what the prices will be at the close. Thus this application assumes that trades are made in dollars, not shares.

One thing that I learned from doing this is that there are some subtle things that must not be forgotten when doing the details of implementation. For example, If you want to have 4 equal asset classes (target % = 25% for each) this can only be done if the total value of the portfolio is a multiple of $0.04. Otherwise, there will be "breakage". I implemented this by just arbitrarily adding the extra pennies to each asset class starting from the top one. Not elegant, but it works. Of course I also needed to write code to adjust the Buy/Sell numbers appropriately to account for this.

Evantually, I want to implement the "Rebalance Rounding" buttons so that you can limit rebalancing to multiples of $1.00, $10.00, $100.00 or $1000.00 as you please. Again, this involved too many small details, so you will have to do the rounding yourself, at least at this point, if you want this.

This page is copyrighted "freeware"
©2006, Bob Beeman

I make NO guarantee of any kind.
This page may contain serious errors.
Use this page entirely at your own risk!
Do not use this page for any illegal purpose.

Subject to the above, you may use this page and its included software yourself, copy and redistribute it, or even put it on your own website. I ask only that you not make any changes, and that if you reuse any of the code, make sure to list me as one of your sources.

My only reward for writing this is the 15 milliseconds of fame I receive from having my name here. Don't deprive me of that.

You can copy this page so that it works when you are not connected to the net by simply doing a "Save As" in your browser. In order to do this you will have to look at the features of your browser and decide to save the page as one of the following: