Balancing Act

Investment Portfolio Rebalancing for the rest of us


Out of Balance

A portfolio is out of balance when it deviates from its asset class targets, as a percent of total assets. BalancingAct calculates trades (buy, sell, hold) for each asset (stock, bond, fund, etc.) required to rebalance the portfolio. The calculation optimizes the tradeoff between trading costs (commissions and taxes) versus exactly balancing the portfolio.

A portfolio consists of one or more individual accounts, such a taxable brokerage account, IRA, 401k etc. You enter basic information (stock ticker, date acquired, number of shares and cost basis) for each asset. The asset class and type (stock, bond, mutual fund, exchange traded fund, etc.) must also be entered. Prices are downloaded on demand. All other entries remain unchanged until shares are bought or sold.

BalancingAct scales from a single account with a few thousand dollars to unlimited accounts with a few million. All accounts for one household should be included in order to take full advantage of tax calculations. Typical US income tax rules are assumed and you should confirm that this fits your individual needs.  Taxes can be ignored if desired.

Screenshot -- Main Window

The top half of the main window contains overall portfolio information. The seesaw view provides a quick summary. Each disk represents an asset class. Disk size indicates the relative percentage in each class. Disk placement shows the deviation from target percentage. Those to the right of the triangle tip have asset class percentages greater than the target and conversely for those on the left. The tilt of the balance beam away from horizontal indicates overall portfolio imbalance.

The table left of the seesaw displays the underlying numbers. The table on the right contains details of estimated trading costs (commissions and taxes) plus net cash deposits and withdrawals.

Almost Balanced

Exactly Balanced

Approximate imbalances for the examples are:

  • 34% -- Out of Balance
  • 10% -- Almost Balanced
  •   0% -- Exactly Balanced

The Almost Balanced case is the result of implementing trades calculated using Balancing Act, starting with the Out of Balance portfolio. The trading cost of $59 for eight trades is shown graphically by the vertical red bar.

The Exactly Balanced portfolio can be reached using aggressive settings (more emphasis on rebalancing, less on trading cost). This results in 12 trades costing $120, of which $27 is capital gains tax. There is a single adjustment knob, a standard slider to set the rebalancing versus cost tradeoff.

It's important to emphasize that rebalancing is done for the overall portfolio. The alternative of exactly rebalancing each individual account would increase trading costs, by about $70 in this example. There would be eight additional trades and a slight increase in capital gains.

The example portfolio contains three accounts, two IRAs and one joint taxable account.

The lower half of the main window displays assets for individual accounts, one at a time. The account "Carol IRA" is the active view in the example. All assets for the portfolio can also be displayed in a single view.  Each row corresponds to one asset, defined by a ticker symbol. Columns for dates, number of shares, price, etc. contain all information for the asset. Individual tax lots are also supported.

The primary calculation result appears in the "Trade" column. This gives the dollar amount to buy or sell (negative value). One click converts between dollars and shares using the current price. The trading fee appears in an adjacent column.

Jump to:




Check the Mac App Store for up-to-date prices, which are subject to change.

Basic license includes one portfolio with one individual account, for $20.

Additional individual accounts are available via in-app purchase, for $10. Unlimited accounts are available for $25.

System Requirements

Any Mac running Mac OSX 10.10 (Yosemite) or later

Internet connection to download prices, optional. Connection also required to purchase additional accounts, via in-app purchase.