Asset Location Methodology

For our latest tax-efficiency feature, Tax Coordination, Betterment’s solver-based portfolio management system enabled us to manage and test our most complex algorithms.

White Paper Tax Coordinated Portfolio

Betterment’s Tax Coordination feature could increase after-tax returns by 15% over 30 years.

At Betterment, we’re continually improving our investment advice, always with the goal of maximizing our customers’ take-home returns. Key to that pursuit is minimizing the amount lost to taxes.

Now, we’ve taken a huge step forward with a powerful new service that can increase your after-tax returns, so you can have more money for retirement.

Betterment’s Tax Coordination service is our very own, fully automated version of an investment strategy known as asset location. Automated asset location is the latest advancement in tax-smart investing.

Introducing Tax Coordination

Asset location is widely regarded as the closest thing there is to a “free lunch” in the wealth management industry. If you are saving in more than one type of account, it is a way to increase your after-tax returns without taking on additional risk. align Millions of Americans wind up saving for retirement in some combination of three account types: 1. Taxable, 2. Tax-deferred (Traditional 401(k) or IRA), and 3. Tax-exempt (Roth 401(k) or Roth IRA). Each type of account has different tax treatment, and these rules make certain investments a better fit for one account type over another.

Choosing wisely can significantly improve the after-tax value of one’s savings, when more than one account is in the mix. However, intelligently applying this strategy to a globally diversified portfolio is complex.

A team of Betterment quantitative analysts, tax experts, software engineers, designers, and product managers have been working for over a year building this powerful service. Today, we are proud to introduce Tax Coordination, the first automated asset location service, now available to all investors.

Our research estimates that the benefit of TCP could range from 0.10% to 0.82% in additional after-tax return. Its value will depend on a number of circumstances specific to the investor, discussed in more detail below. In one generalized scenario, saving in all three types of accounts showed an after-tax benefit of 0.48%, annualized over 30 years.

How would that translate into more concrete terms? A simple example:

Assuming a compounding annual return of 7%, a $100,000 portfolio would grow by $661,226 after 30 years.1

But with Tax Coordination, that same $100,000 compounding at 7.48% over the same 30-year period would grow by $770,622. That’s 15% more—an additional $109,396 for retirement, after all taxes are paid.

Next, let’s look at how asset location, the strategy behind TCP, adds value.

How Does Tax Coordination Work?

What is the idea behind asset location?

To simplify somewhat: Some assets in your portfolio (bonds) grow by paying dividends. These are taxed annually, and at a high rate, which hurts the take-home return. Other assets (stocks) mostly grow by increasing in value. This growth is called capital gains, and is taxed at a lower rate. Plus, it only gets taxed when you need to make a withdrawal—possibly decades later—and deferring tax is good for the return.

Returns in Individual Retirement Accounts (IRAs) and 401(k)s don’t get taxed annually, so they shelter growth from tax better than a taxable account. We would rather have the assets that lose more to tax in these retirement accounts. In the taxable account, we prefer to have the assets that don’t get taxed as much.2

When investing in more than one account, many people select the same portfolio in each one. This is easy to do, and when you add everything up, you get the same portfolio, only bigger.

Here’s what an asset allocation with 70% stocks and 30% bonds looks like, held separately in three accounts. The circles represent various asset classes, and the bar represents the allocation for all the accounts combined.

Portfolio Managed Separately in Each Account


But as long as all the accounts add up to the portfolio we want, each individual account on its own does not have to have that portfolio. Asset location takes advantage of this. Each asset can go in the account where it makes the most sense, from a tax perspective. As long as we still have the same portfolio when we add up the accounts, we can increase after-tax return, without taking on more risk.

Here’s a simple animation solely for illustrative purposes:

Asset Location in Action


Here is the same overall portfolio, except TCP has redistributed the assets unevenly, to reduce taxes. Note that the aggregate allocation is still 70/30.

Same Portfolio Overall—with Asset Locationallocation-by-aggregate-and-account-tcp-on-03

The concept of asset location is not new. Advisors and sophisticated do-it-yourself investors have been implementing some version of this strategy for years. But squeezing it for maximum benefit is very mathematically complex. It means making necessary adjustments along the way, especially after making deposits to any of the accounts.

For an optimal asset location strategy, an automated approach works best. Our software handles all of the complexity in a way that a manual approach just can’t match. We are the first automated investment service to offer this service to all of our customers.

Who Can Benefit?

To benefit from from Tax Coordination, you must be a Betterment customer with a balance in at least two of the following types of Betterment accounts:

  • Taxable account: If you can save more money for the long-term after making your 401(k) or IRA contributions, that money should be invested in a standard taxable account.
  • Tax-deferred account: Traditional IRA or Betterment for Business 401(k). Investments grow with all taxes deferred until liquidation, and then taxed at the ordinary income tax rate.
  • Tax-exempt account: Roth IRA or Betterment for Business Roth 401(k). Investment income is never taxed—withdrawals are tax-free.

Note that you can only include a 401(k) in a goal using Tax Coordination if Betterment for Business manages your company’s 401(k) plan. If you want to learn more about how your employer can start offering a Betterment for Business 401(k), visit Betterment for Business. If you have an old 401(k) with a previous employer, you can still benefit from TCP by rolling it over to Betterment.

Higher After-Tax Returns

Betterment’s research and rigorous testing demonstrates that accounts managed by Tax Coordination are expected to yield meaningfully higher after-tax returns than uncoordinated accounts.

Our white paper presents results for various account combinations. Here, we excerpt the additional “tax alpha” for one generalized case—an identical starting balance of $50,000 in each of three account types, a 30-year horizon, a federal tax rate of 28%, and a state tax rate of 9.3% (CA) both during the period, and during liquidation.

Equal Starting Balance in Three Accounts: Taxable, Traditional IRA, and Roth IRA

Asset Allocation Additional Tax Alpha with TCP (Annualized)
50% Stocks 0.82%
70% Stocks 0.48%
90% Stocks 0.27%

Source: TCP White Paper.

Get Started with Tax Coordination

Ready to take advantage of the benefits of Tax Coordination? Here’s how to set it up in your Betterment account.

After logging in, go to the top right side of your account in the header of your Summary tab and click "Set up" next to Tax-Coordinated Dividends. Then, follow the steps to set up your new portfolio.

Sample Account: Set Up Your New Tax Coordination


Once you’ve set up TCP, Betterment will manage your assets as a single portfolio across all accounts, while also looking to increase the after-tax return of the entire portfolio, using every dividend and deposit to optimize the location of the assets.

The Tax-Coordinated Dividends module will show you how many dividends were paid in a tax-advantaged account due to TCP, which otherwise would have been paid in your taxable account—and taxed annually.

This service is available to all Betterment customers at no additional cost.

Learn more about asset location and Betterment’s Tax Coordination feature by reading our white paper.

1The estimated additional annualized return of 0.48% assumes that the initial balance is equally distributed across three types of accounts: a taxable account, a tax-deferred account (such as a traditional IRA) and a tax-exempt account (such as a Roth IRA). It also assumes a 70% allocation to stocks across the entire 30-year period, and a California resident in a 28% federal tax bracket both during the entire period, and at liquidation. The incremental return was calculated using the Monte Carlo projection method across more than 1,000 simulated market scenarios. It compared the total after-tax value of all three accounts when managed by TCP to the benchmark, which was the after-tax value of all the accounts under the same market scenarios, but uncoordinated (i.e. managed by Betterment separately, as standalone Betterment portfolios). As such, these projections make no claim about the value of Betterment's service as compared to any particular non-Betterment investing strategy. Instead, they estimate specifically the value of the TCP service, as applied to Betterment's baseline passive investing strategy. There are additional assumptions around these estimates, which are necessarily numerous and complex, due to the nature of this projection method. TCP may not be suitable for taxpayers subject to a Federal tax bracket of 15% or lower. You should not use TCP to coordinate accounts with materially different time horizons. TCP is not optimal for accounts which you rely on for liquidity in case of unforeseen circumstances. For much more on this research, including additional considerations on the suitability of TCP to your circumstances, please see our white paper and our full disclosures.

2All of this is very simplified, actually. Reality is far more complex, and TCP’s algorithms manage that complexity. If you want the whole story, you’ll have to read our white paper.

All return examples and return figures mentioned above are for illustrative purposes only. For much more on our TCP research, including additional considerations on the suitability of TCP to your circumstances, please see our white paper. For more information on our estimates and Tax Coordination generally, see full disclosure.

When deciding whether to roll over a retirement account, you should carefully consider your personal situation and preferences. The information on this page is being provided for general informational purposes and is not intended to be an individualized recommendation that you take any particular action.

Factors that you should consider in evaluating a potential rollover include: available investment options, fees and expenses, services, withdrawal penalties, protections from creditors and legal judgments, required minimum distributions, and treatment of employer stock. Before deciding to roll over, you should research the details of your current retirement account and consult tax and other advisors with any questions about your personal situation.

Betterment’s Tax Coordination feature can help shelter retirement investment growth from some taxes.

28279 2016-09-27 08:40:15 2016-09-27 12:40:15 2021-07-26 12:57:19 2021-07-26 16:57:19 introducing-tax-coordinated-portfolio boriskhentov">boris product-news">Product News Betterment’s Tax Coordination feature can help shelter retirement investment growth from some taxes. How We Engineered Betterment’s Tax Coordination Feature Tue, 27 Sep 2016 12:40:12 +0000 egonzalez Tax efficiency is a key consideration of Betterment’s portfolio management philosophy.

With our new Tax Coordination feature, we’re continuing the mission to help our customers’ portfolios become as tax efficient as possible.

While new products can often be achieved using our existing engineering abstractions, TCP brought the engineering team a new level of complexity that required us to rethink how parts of our portfolio management system were built.


Here’s how we did it.

A Primer on Tax Coordination

Betterment’s TCP feature is our very own, fully automated version of an investment strategy known as asset location.

If you’re not familiar with asset location, it is a strategy designed to optimize after-tax returns by placing tax-inefficient securities into more tax-advantaged accounts, such as 401(k)s and Individual Retirement Accounts (IRAs).

Before we built TCP, Betterment customers had each account managed as a separate, standalone portfolio.

For example, customers could set up a Roth IRA with a portfolio of 90% stocks and 10% bonds to save for retirement.

Separately, they could set up a taxable retirement account invested likewise in 90% stocks and 10% bonds.

Now, Betterment customers can turn on TCP in their accounts, and their holdings in multiple investment accounts will be managed as a single portfolio allocation, but rearranged in such a way that the holdings across those accounts seek to maximize the overall portfolio’s after-tax returns.

To illustrate, let’s suppose you’re a Betterment customer with three different accounts: a Roth IRA, a traditional IRA, and a taxable retirement account.

Let’s say that each account holds $50,000, for a total of $150,000 in investments.

Now assume that the $50,000 in each account is invested into a portfolio of 70% stocks and 30% bonds.

For reference, consider the diagram. The circles represent various asset classes, and the bar shows the allocation for all the accounts, if added together.


Each account has a 70/30 allocation, and the accounts will add up to 70/30 in the aggregate, but we can do better when it comes to maximizing after-tax returns.

We can maintain the aggregate 70/30 asset allocation, but use the available balances of $50,000 each, to rearrange the securities in such a way that places the most tax-efficient holdings into a taxable account, and the most tax-inefficient ones into IRAs. Here’s a simple animation solely for illustrative purposes:

Asset Location in Action


The result is the same 70/30 allocation overall, except TCP has now redistributed the assets unevenly, to reduce future taxes.


How We Modeled the Problem

The fundamental questions the engineering team tried to answer were: How do we get our customers to this optimal state, and how do we maintain it in the presence of daily account activity?

We could have attempted to construct a procedural-style heuristic solution to this, but the complexity of the problem led us to believe this approach would be hard to implement and challenging to maintain.

Instead, we opted to model our problem as a linear program. This made the problem provably solvable and quick to compute—on the order of milliseconds per customer. Let’s consider a hypothetical customer account example.

Meet Joe

Joe is a hypothetical Betterment customer. When he signed up for Betterment, he opened a Roth IRA account.

As an avid saver, Joe quickly reached his annual Roth IRA contribution limit of $5,500. Wanting to save more for his retirement, he decided to open up a Betterment taxable account, which he funded with an additional $11,000.

Note that the contribution limits mentioned in this example are as of the time this article was published. Limits are subject to change from year to year, so please defer to IRS guidelines for current limits. See IRA limits here and 401(k) limits.

Joe isn’t one to take huge risks, so he opted for a moderate asset allocation of 50% stocks and 50% bonds in both his Roth IRA and taxable accounts.

To make things simple, let’s assume that both portfolios are only invested in two asset classes: U.S. total market stocks and emerging markets bonds.

In his taxable account, Joe holds $5,500 worth of U.S. total market stocks in VTI (Vanguard Total Stock Market ETF), and $5,500 worth of emerging markets bonds in VWOB (Vanguard Emerging Markets Bond ETF).

Let’s say that his Roth IRA holds $2,750 of VTI, and $2,750 of VWOB.

Below is a table summarizing Joe’s holdings:

Account Type: VTI (U.S. Total Market) VWOB (Emerging Markets Bonds) Account Total
Taxable $5,500 $5,500 $11,000
Roth $2,750 $2,750 $5,500
Asset Class Total $8,250 $8,250 $16,500

To begin to construct our model for an optimal asset location strategy, we need to consider the relative value of each fund in both accounts. A number of factors are used to determine this, but most importantly each fund’s tax efficiency and expected returns.

Let’s assume we already know that VTI has a higher expected value in Joe’s taxable account, and that VWOB has a higher expected value in his Roth IRA. To be more concrete about this, let’s define some variables.

latex equation 1


Each variable represents the expected value of holding a particular fund in a particular account.

For example, we’re representing the expected value of holding VTI in your Taxable as

latex equation 2

which we’ve defined to be 0.07. More generally, Let’s let

latex equation 3

be the expected value of holding fund F in account A. Circling back to the original problem, we want to rearrange the holdings in Joe’s accounts in a way that’s maximally valuable in the future.

Linear programs try to optimize the value of an objective function. In this example, we want to maximize the expected value of the holdings in Joe’s accounts. The overall value of Joe’s holdings are a function of the specific funds in which he has investments. Let’s define that objective function.

latex equation 3


You’ll notice the familiar

latex equation 4

terms—measuring the expected value of holding each fund in each account, but also you’ll notice variables of the form

latex equation 5

Precisely, this variable represents the balance of fund F in account A. These are our decision variables—variables that we’re trying to solve for. Let’s plug in some balances to see what the expected value of V is with Joe’s current holdings:



Certainly, we can do better. We cannot just assign arbitrarily large values to the decision variables due to two restrictions which cannot be violated:

Joe must maintain $11,000 in his taxable account and $5,500 in his Roth IRA. We cannot assign Joe more money than he already has, nor can we move money between his Roth IRA and taxable accounts. Joe’s overall portfolio must also maintain its allocation of 50% stocks and 50% bonds—the risk profile he selected. We don’t want to invest all of his money into a single fund.

Mathematically, it’s straightforward to represent the first restriction as two linear constraints.

latex equation 6

Simply put, we’ve asserted that the sum of the balances of every fund in Joe’s taxable account must remain at $11,000. Similarly, the sum of the balances of every fund in his Roth IRA must remain at $5,500.

The second restriction—maintaining the portfolio allocation of 50% stocks and 50% bonds—might seem straightforward, but there’s a catch. You might guess that you can express it as follows:

latex equation 7

The above statements assert that the sum of the balances of VTI across Joe’s accounts must be equal to half of his total balance. Similarly, we’re also asserting that the sum of the balances of VWOB across Joe’s accounts must be equal to the remaining half of his total balance.

While this will certainly work for this particular example, enforcing that the portfolio allocation is exactly on target when determining optimality turns out to be too restrictive.

In certain scenarios, it’s undesirable to buy or to sell a specific fund because of tax consequences. These restrictions require us to allow for some portfolio drift—some deviation from the target allocation.

We made the decision to maximize the expected after-tax value of a customer’s holdings after having achieved the minimum possible drift. To accomplish this, we need to define new decision variables. Let’s add them to our objective function:

latex equation 8

latex equation 9

is the dollar amount above the target balance in asset class AC.


latex equation 10

is the dollar amount below the target balance in asset class AC.

For instance,

latex equation 11

is the dollar amount above the target balance in emerging markets bonds—the asset class to where VWOB belongs.

We still want to maximize our objective function V. However, with the introduction of the drift terms, we want every dollar allocated toward a single fund to incur a penalty if it moves the target balance for that fund’s asset class below or above its target amount. To do this, we can relate the

latex equation 5

terms with the

latext equation 12

terms using linear constraints.

latex equation 13


As shown above, we’ve asserted that the sum of the balances in funds including U.S. total market stocks (in this case, only VTI), plus some net drift amount in that asset class, must be equal to the target balance of that asset class in the portfolio (which in this case, is 50% of Joe’s total holdings). Similarly, we’ve also done this for emerging markets bonds. This way, if we can’t achieve perfect allocation, we have a buffer that we can fill—albeit at a penalty.

Now that we have our objective function and constraints set up, we just need to solve these equations. For this we can use a mathematical programming solver. Here’s the optimal solution:

latex equation 14

Managing Engineering Complexity

Reaching the optimal balances would require our system to buy and sell securities in Joe’s investment accounts. It’s not always free for Joe to go from his current holdings to optimal ones because buying and selling securities can have tax consequences.

For example, if our system sold something at a short-term capital gain in Joe’s taxable account, or bought a security in his Roth IRA that was sold at a loss in the last 30 days—triggering the wash-sale rule, we would be negatively impacting his after-tax return.

In the simple example above with two accounts and two funds, there are a total of four constraints. Our production model is orders of magnitude more complex, and considers each Betterment customer’s individual tax lots, which introduces hundreds of individual constraints to our model.

Generating these constraints that ultimately determine buying and selling decisions can often involve tricky business logic that examines a variety of data in our system. In addition, we knew that as our work on TCP progressed, we were going to need to iterate on our mathematical model. Before diving head first into the code, we made it a priority to be cognizant of the engineering challenges we would face.

Key Principles for Using Tax Coordination on a Retirement Goal

As a result, we wanted to make sure that the software we built respected four key principles, which are:

  1. Isolation from third-party solver APIs.
  2. Ability to keep pace with changes to the mathematical model, e.g., adding, removing, and changing the constraints and the objective function must be quick and painless.
  3. Separation of concerns between how we accessed data in our system and the business logic defining algorithmic behavior.
  4. Easy and comprehensive testing.

We built our own internal framework for modeling mathematical programs that was not tied to our trading system’s domain-specific business logic. This gave us the flexibility to switch easily between a variety of third-party mathematical programming solvers.

Our business logic that generates the model knows only about objects defined by our framework, and not about third-party APIs. To incorporate a third-party solver into our system, we built a translation layer that received our system-generated constraints and objective function as inputs, and utilized those inputs to solve the model using a third-party API. Switching between third-party solvers simply meant switching implementations of the interface below.

Screen Shot 2016-09-26 at 3.11.05 PM

We wanted that same level of flexibility in changing our mathematical model. Changing the objective function and adding new constraints needed to be easy to do. We did this by providing well-defined interfaces that give engineers access to core system data needed to generate our model. This means that an engineer implementing a change to the model would only need to worry about implementing algorithmic behavior, and not about how to retrieve the data needed to do that.

To add a new set of constraints, engineers simply provide an implementation of a TradingConstraintGenerator. Each TradingConstraintGenerator knows about all of the system related data it needs to generate constraints. Through dependency injection, the new generator is included among the set of generators used to generate constraints. The sample code below illustrates how we generated the constraints for our model.

Screen Shot 2016-09-26 at 4.19.18 PM

With hundreds of constraints and hundreds of thousands of unique tax profiles across our customer base, we needed to be confident that our system made the right decisions in the right situations. For us, that meant having clear, readable tests that were a joy to write.

Below is a test written in Groovy, which sets up fixture data that mimics the exact situation in our “Meet Joe” example. Screen Shot 2016-09-26 at 2.44.22 PM

We not only had unit tests such as the one above to test simple scenarios where a human could calculate the outcome, but we also ran the optimizer in a simulated production-like environment, through hundreds of thousands of scenarios that closely resembled real ones. During testing, we often ran into scenarios where our model had no feasible solution—usually due to a bug we had introduced. As soon as the bug was fixed, we wanted to ensure that we had automated tests to handle a similar issue in the future. However, with so many sources of input affecting the optimized result, writing tests to cover these cases was very labor-intensive. Instead, we automated the test setup by building tools that could snapshot our input data as of the time the error occurred. The input data was serialized and automatically fed back into our test fixtures.

Striving for Simplicity

At Betterment, we aim to build products that help our customers reach their financial goals.

Building new products can often be done using our existing engineering abstractions. However, TCP brought a new level of complexity that required us to rethink the way parts of our trading system were built.

Modeling and implementing our portfolio management algorithms using linear programming was not easy, but it ultimately resulted in the simplest possible system needed to reliably pursue optimal after-tax returns.

To learn more about engineering at Betterment, visit the engineering page on the Betterment Resource Center.

All return examples and return figures mentioned above are for illustrative purposes only. For much more on our TCP research, including additional considerations on the suitability of TCP to your circumstances, please see our white paper. See full disclosure for our estimates and Tax Coordination in general.