Rowboat Advisors logo

Direct Indexing can increase returns in taxable accounts


With Direct Indexing (DI), instead of buying a fund that tracks a stock index, we buy the individual stocks. DI can increase after-tax returns through tax loss harvesting.

Our backtests show an annualized improvement of 0.97% pre-tax and 0.56% after-tax. These are conservative, because the backtest period was a bull market, when DI has the fewest opportunities for loss harvesting.

Our DI implementation was written by the software developer who also wrote the code for the first mass-market, fully automated DI for a leading robo-advisor.


The following assumes DI on a large-cap US equities stock index for a $1,000,000 account. The two largest constituents are AAPL at 4% and MSFT at 3% [Note: these are based on prices at a single point in time, because stock indexes are published in terms of shares, not dollar percentages, which change over time].

On day 1, we just buy each index constituent: $40,000 of AAPL, $30,000 of MSFT, etc. [Note: this gets more complicated in the presence of held-away assets.]

On subsequent days:

  1. We generate tax loss harvesting sell orders: for each stock holding, we look at the lossy portion. If the average tax loss of the lossy tax lots exceeds a threshold (e.g. 1%), then we sell them. DI optionally creates a 'collar' of valid percentages of the total. Example: MSFT can be restricted to be within 1% of its 3% target, i.e. between 2% and 4%. Therefore, if MSFT is at 3.2% of the portfolio, and half of that is at a loss, we will only sell down to 2%, not to 1.6%.
  2. Buy other stocks in the index, using the cash generated from the sells (or any other available cash from dividends, deposits, etc.) DI is different than plain TLH, because there is no notion of equivalent securities to replace the ones we sold: unlike ETFs where one can often find two that are very similar (e.g. with large cap equities), individual stocks will always be different enough to due idiosyncratic risk. However, even if that dissimilarity were acceptable, grouping index constituent stocks this way would be a tedious, manual, and subjective task. Instead, there are two main ways this can be done: In step #2, we allow rebalancing (instead of buying only), because we may end up over-/underweight stocks for other reasons.

Scenario parameters



We calculate portfolio totals using three sets of liquidation assumptions, which are labeled in the charts as follows:

  1. Held by us: unrealized tax never has to be paid (e.g. charitable contributions, or step-up basis upon inheritance)
  2. Held by us (liq. tax): the tax that would be owed at any given point in time gets if the portfolio were liquidated is subtracted from the portfolio value.
  3. Held by us (liq. tax; ST taxed LT): long-term tax rates are applied even to short-term gains / losses. This metric is less realistic; however, we prefer it, because it avoids abrupt value changes around the days when short-term tax lots become long-term, such as one year after a large investment.

The fairest way to compare the results with vs. without DI is to look at the after-tax liquidation values. TLH strategies work by realizing losses today at the expense of postponing tax payments for later. Therefore, ignoring the fact that tax would have to be paid at some point would overstate the tax benefit of DI. However, pre-tax values can be useful as well. We can look at both; our software generates charts automatically, by running backtests over a multi-year period. Click on the following screenshots for an interactive version.

This shows portfolio values:

Portfolio values, before and after tax, with and without DI Note how the darker lines (DI) are higher than the lighter ones (no DI), regardless of liquidation assumptions. This means that DI (in this particular scenario, at least) increases returns. In the more realistic case where tax is eventually due - labeled Held by us (liq. tax; ST taxed LT) - the lines are closer together, as expected.

The improvement in pre-tax returns is the difference between the pair of solid lines above. Likewise for after-tax and the dashed lines. Those differences are easier to see when plotted separately: DI improvement, before and after tax

These charts show that even the after-tax portfolio returns are higher with DI, not just the pre-tax returns. Note that the backtest period was mostly an up market; the benefit would have been considerably higher otherwise.

We can quantify the improvement. If we look for money-weighted returns in the data grids (the Summary button on the top left) for DI disabled vs. enabled, we can see the annualized difference is about 97 bps (1605.8 - 1509.2 bps) for pre-tax and 56 bps (1214.2 - 1157.9 bps) for after-tax returns, in this particular example.

Net Tax Owed

It is also interesting to compare Net tax owed: Net tax owed, with proper netting of short- and long-term tax, with and without DI

You can view the difference more clearly here:

Extra net tax owed by DI, with proper netting of short- and long-term tax .

DI results in more embedded gains over time. The charts indicate that DI has paid less in taxes, since more taxes have been deferred. Of course, all else being equal, it is better to owe less tax than more. However, in this case, more tax owed is a worthwhile price to pay, because the increased portfolio returns more than make up for it.

Tracking error

We can search for daily tracking error (standard deviation of period return diff), weighted by portfolio value, in bps in the data grids for DI. To convert to annualized numbers, we can multiply by 16 (approximate square root of number of trading days in a year).

With DI disabled, we buy an ETF that tracks the stock index perfectly, so the tiny tracking error we see (16 * 0.02 = 0.32 bps) is likely due to the cash drag from postponing the investment of any cash dividends, because we wait until there is enough cash in order to invest.

With DI enabled, annualized tracking error is 1.67 * 16 ~= 27 bps. This is a worthwhile price to pay given how much the returns improve. [Note: 27 bps is a measure of tracking variability, whereas the money-weighted returns improvement of 97 bps is a measure of performance. Therefore, the two are not directly comparable.]

Benefits of our technology

This is just a subset.


DI can increase after-tax returns in managed accounts while incurring fairly modest tracking error.


Why DI?

Advantages, in descending importance:

Why does DI increase after-tax returns?

Just like plain TLH, after-tax returns are (on average) higher, because it is almost always better to postpone tax payments for later:

[Note: Things get more complicated due to an annual limit of tax losses that can be claimed against ordinary income, but there are often enough capital gains in high-end accounts from other sources that the full amount of harvested losses can be used to reduce tax liability.]

Prerequisites for the index constituents

When does DI improve after-tax returns the most?