Applying tilts and filters to Direct Indexing can improve ESG scores
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 changing the weights of certain stocks
vs. their normal target in their index, or excluding some stocks altogether.
For more general background on DI, including this scenario's parameters, see
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 and alcohol companies.
Some common terms:
We interpret a tilt of e.g. 0.8 to mean "use 80% of the target weight". Tilts can be below / above 1 for undesirable / desirable stocks, respectively.
For example, if PM (Philip Morris) would normally have a weight of 0.5% in the index, the tilt would have us use a weight of 0.4% (80% of 0.5%) instead.
Because applying tilts on individual stocks will result in the new totals not adding up to 100%, we normalize all weights to add up to 100% as a final step.
ESG (exclusion) filters: This is effectively a tilt of 0.
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 can read ESG data from any provider - possibly multiple ones at the same time - as long as we do a simple conversion to our common format.
This allows us to apply tilts and exclusion filters on any combination of ESG factors across data from different ESG providers.
Test Example Methodology
Artificial ESG data:
Our software takes such data as an input, but in this test, we created our own ESG data to avoid copyright issues.
Our test ESG data has an artificial 'sinfulness' property of stocks which only has positive values for about 20 stocks out of the 311 in our stock index.
ESG data are the same on each day:
Our software applies such weights separately for every day in the backtest.
For example, if a company's carbon footprint score suddenly improves,
we may not need to tilt its weight down, or change it at all.
This decision is based on the client's instructions, which are inputs to the system.
For simplicity, however, we use the same ESG data for each day in the backtest.
Gradual strengthening of tilts: We ran 5 backtests. The first used no tilts or exclusions.
The other 4 used gradually stronger tilts. In this example, 'sinfulness' ranges from 0 (perfect stock) to 10 (most 'sinful').
We pass in instructions to only tilt down stocks with a 'sinfulness' of 2 to 10,
i.e. we do not touch stocks that are 'only slightly sinful' (score below 2).
The tilts become gradually stronger as 'sinfulness' moves up from 2 to 10, so 'very sinful' stocks get tilted down more than 'moderately sinful' ones.
The one thing that varies between these 4 tests is the tilt multiplier we assign to a 'maximally sinful' score of 10.
Custom scoring: our implementation allows us to specify a custom scoring mechanism -
separately from how we generate tilts - so that we can generate aggregate metrics and daily charts for
any ESG factor, such as the total 'sinfulness' of the portfolio.
Scoring is straightforward for numeric ESG factors (e.g. a 'sinfulness' score of 0 to 10);
in such cases, we can just take the average of the 'sinfulness' scores
of the individual stocks held, weighted by their corresponding percentages in the portfolio.
However, we use scores so as to be general and handle:
non-numeric ESG factors.
Assume there is a "cybersecurity policy" ESG factor with 3 possible values of "Has policy", "Preparing policy", "No policy".
Reasonable scores could be 10, 5, 0.
However, perhaps being in the process of preparing a policy is almost like actually having a policy,
in case what matters is the perception that the company cares; if so, a score of 8 is better than 5.
Or, perhaps it is very similar to having no policy, if it means it exposes the company to lawsuits in the EU,
so a score of 1 or 2 is more appropriate than 5.
Our system allows a general scoring mechanism that gives the user the freedom to specify such subjective matters.
stocks with missing ESG values in the ESG data.
We could interpret an empty value in 'cybersecurity' as 'no policy' and give it a score of 0.
Alternatively, it could mean it is just as likely to be any of the three, in which case we should treat it as 'Preparing policy'.
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 tilts results in holding less of the sinful stocks, just as expected.
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:
Our software can incorporate custom tilts and exclusion filters to improve the ESG aspect of a portfolio,
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.