Skip to content
Tax efficient ETF portfolio balancing
Rust JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
src more tweaks in prep for publishing Jun 10, 2018
.gitignore first commit, start of rust ETF balancer with actix web frontend Jun 4, 2018
Cargo.toml more tweaks in prep for publishing Jun 10, 2018
LICENSE MIT license Jun 6, 2018

Build Status


Try and optimally balance an account of Vanguard ETFs given a target allocation. Runs as an API for easy use from google sheets.


Balances funds to a target percentage across multiple accounts.

  • high-yield funds prioritized to tax-sheltered accounts
  • can avoid sales in taxable accounts
  • minimizes uninvested cash in each account
  • spreadsheet auto-updates to graph returns and balances over time

CLI usage:

Describe your target allocation, your accounts and provide current market quotes for the funds you're interested in balancing, something like this (via the excellent httpie):

http POST target:='{"VEU":0.7,"VOO":0.3}' accounts:='[{"name":"taxed", "tax_sheltered":false,"cash":1000, "positions":{"VEU":2, "VOO":2}}]' market:='[{"symbol":"VEU", "price":54.33},{"symbol":"VOO", "price":254.77}]'

spreadsheet usage:

I talk to the API via a google sheet which contains my account info, you can find a template here: Google Sheet Template. If you make yourself a copy you can start using it to balance your own accounts.



You can’t perform that action at this time.