Rowboat Advisors logo

Optimization weighs ESG vs. tracking, tax, transaction cost, and holding cost


With Direct Indexing (DI), instead of buying an ETF that tracks a stock index, we buy the individual stocks. This makes it easy to customize the portfolio by preferencing holdings of stocks with a better ESG score.

Our proprietary portfolio optimizer targets ESG scores directly, by letting clients specify how much they care about ESG vs. other portfolio goals, such as expected tracking error and tax efficiency. This is better than the industry standard approach of doing so indirectly via portfolio tilts, although we support those as well. We also support hard constraints, such as "environmental score must be at least 8 / 10".

This enables tax-efficient migration into an ESG-friendly portfolio, by weighing tax realized upfront against improved ESG scores.


For more general background on DI, including this scenario's parameters, see here.

One reason to deviate from the index is Environmental-Social-Governance (ESG) concerns. For example, a client may want to reduce the weights of stocks whose companies do not have good cybersecurity. Socially Responsible Investing (SRI) is similar, but based more on personal values: e.g. reducing the weights of tobacco companies.

Several companies specialize in creating ESG data. It is not an easy task; e.g. how do you compute a single numeric score for a company's carbon footprint? Our software does not generate ESG data, but it can read ESG data from any provider - possibly multiple ones at the same time - after a simple conversion to our common format. We use that data to improve or constrain any combination of ESG factors across data from different ESG providers. We cover this functionality in this demo. Please refer to the "Test Example Methodology" section; except for the section labeled "Gradual strengthening of tilts", the rest applies here as well.

Ways to improve ESG scores

  1. Tilts: change the weight of every stock - relative to its weight in the stock index being tracked - based on how (un)desirable the stock is, as per its ESG score. E.g. a stock with a normal target of 4% could have a target of 3% if somewhat undesirable, 2% if very undesirable, 5% if somewhat more desirable than average, etc.
  2. Explicitly minimize / maximize ESG: Tell the system how much we care about improving ESG vs. other portfolio goals (currently: expected tracking error, tax efficiency, transaction cost, and ongoing holding cost of securities). Normally, we want to minimize ESG factors denoting something bad (such as carbon footprint), and maximize ESG factors denoting something good, such an environmental responsibility score.
  3. Hard constraints: e.g. "environmental score must be at least 8 / 10".

#1 is easy to implement and the industry standard, and our software supports it as well. However, #2 (possibly combined with #3) is a better approach. We explain why in this blog post; in short, optimization will always try to make the portfolio better, whereas tilts can sometimes make it worse.

Hard constraints (#3) are easy to understand and to explain, and our software supports them. However, they cannot work by themselves. In our example, a (better) portfolio with an ESG score of 10 / 10 would be treated the same as a 8 / 10, since both satisfy the constraint. Also, in practice, a portfolio with a score of 7.9 (lower than the constraint) may be better overall (due to other aspects, such as tax efficiency) than a portfolio with an ESG score of 8.1.


Our backtests record detailed daily information, including ESG factor exposure. In this case, we are less interested in how the portfolio-wide value of the interesting ESG factor moves over time (x axis). Instead, what is interesting here is that we can validate that using gradually stronger weights for the ESG portfolio goal results in holding less of the undesired stocks, just as expected.

The weights in these backtests go from 0% (no ESG) to 100% of the maximum. We made up our own ESG factor so as to avoid data licensing issues.

The following chart is automatically generated at the end of a set of backtests, so it could also be shown on a live client- or advisor-facing website. Click on the screenshot to open an interactive chart:

Total 'ESG' score at various ESG portfolio goal weights


Our software can improve the ESG aspect of a portfolio in three ways: ESG tilts / exclusion filters, hard constraints on portfolio-wide ESG scores, and by weighing the ESG score of a portfolio against other measures of portfolio quality. We do these while at the same time combining the other benefits of DI, such as tax-loss harvesting, and our ability to consider held away assets intelligently. Moreover, we can create custom numeric ESG scores and automatically compute and display their values throughout the backtest.