< Back to Research


Raphael Fiorentino
5th September 2020 - 7 min read

When research, data science and technology come together to deliver complex bespoke investment solutions fast and without the need for large budgets.

A client with leading-edge bottom-up research on the “Value at Climate Transition Risk” (VaCTR) of individual European equities, wanted to create a hedging instrument for its institutional clients, as well as streamline certain aspects of the corresponding valuation process. To that effect, Butterwire developed bespoke features, available exclusively to the client on the Butterwire application, that:

  1. Integrated and expanded the client’s VaCTR research, as well as shortened valuation cycles.
  2. Computed the daily value of a European Climate Transition Index (EU-CTI), proprietary to the client, based on the VaCTRs of the Europe’s 500 largest free-float market capitalisations.
  3. Constructed and dynamically managed the holdings of an ETF that tracked the EU-CTI with minimum (downside) tracking error and trading costs for the targeted number of holdings.

All the client-specific data integration and bespoke feature development was delivered in under 4 months with 3 staff: one focused on investment research and data analytics and two on technical development and data integration.


This note focuses on the two latter points above to illustrate Butterwire’s core expertise in delivering complex bespoke solutions that require close integration of research, data science and technology efforts, and for a fraction of the cost and time typically expected of both internal and third-party alternatives.

Prêt-à-Indexer: a most time and cost-efficient way to get your proprietary indices up and running

With client data securely hosted on AWS and made exclusively available to assigned client staff, Butterwire users can get their own bespoke index or indices tracked on and downloadable from the Butterwire application, whether favourite stocks derived from internal thematic/bottom-up/macro research, portfolio benchmarks, custom stock screens, investible stock universes, etc.

Butterwire already computes over a hundred indices, be they at the regional (e.g. Asia ex-Japan), regional sector (e.g. EM Banks), or country (e.g. Taiwan) level, or composite ones that mix regional/industry characteristics with fundamental/proprietary ones (e.g. Large Cap Short Candidates Indices). The broadest index covered is the global one, composed of 2,000 stocks, which closely replicates MSCI ACWI, and aggregates the 500 constituents of Butterwire’s European index, the 700 of the North American one, the 600 of the Emerging Markets one, and the 200 of the Japanese one. The weight of all of Butterwire indices are derived from stocks’ free-float market capitalisations and are automatically rebalanced on the last day of each month (i.e. new number of shares set based on a stock’s free-float market capitalisation as a percentage of the index total).

In the case of the Climate Transition Index, VaCTRs were used to adjust each stock’s market cap in a way that reflected the equity value impact of a transition to a “below 2 degree” vs. a “business as usual” scenario.


Because the infrastructure already exists to compute indices and derive their fundamentals from the bottom-up, the marginal cost of handling an extra index is small. All it takes is to code the conditions for stock inclusion in the index and/or the stock weight adjustment method.

Prêt-à-Tracker: robust design and systematic management of funds that track your indices

While indices are useful as benchmarks, bringing them into the real world as fully replicating, fully matching portfolio of holdings is typically too costly and cumbersome to contemplate (high number of holdings to deal with, crippling transaction costs at fixed rebalancing points and with fluctuating AUMs, etc.).


Butterwire developed a feature that designs and manages (ETF) trackers of indices with minimum tracking errors based on pre-set targets (e.g. number of holdings, maximum turnover). Consistent with our ethos, we set out to design this feature with computational efficiency (to maximise speed of outputs and operational integrity) and methodological robustness (to minimise output instabilities and hence portfolio turnover) in mind.

This led us to rule out the use of (laborious) linear programming and (unstable) mean variance optimisation. We instead developed a custom approach consisting of the following steps:

  1. Allocate the index constituent universe to “N” homogeneous groups of 50-100 stocks, e.g. 8 groups for a European Climate Transition index (500 stocks) = 2 sub-regions (Eurozone vs. Non-Eurozone) x 4 sector themes (Consumption, Production, Innovation, Transaction).
  2. Calculate the covariance matrix of each group using 2-year worth of daily EWMA total relative stock returns as inputs and re-organise (i.e. seriate) it by “proximity” of covariances between stocks.

    Example of seriated covariance matrix (non-eurozone transaction stocks)


  3. Calculate the weight1 of each stock within each group in a way that reflects its (covariance) “proximity” to neighbouring stocks and the contribution of each neighbourhood to the group’s overall tracking error contribution.

    Example of stock weight allocation within group (non-eurozone production stocks)


  4. Elect “K” neighbourhood representatives with K set as the target number of holdings in the tracker. For instance, if non-eurozone production represents 10% of the index and the tracker consists of 100 holdings then we look for 10 reps. The election process consists of focusing on the 10 most important neighbourhoods (in weight) and pick the stock with the highest selection value. The selection value reflects the stock’s relative index and neighbourhood weights and also a tilt factor set by the client (whether recession-resilience, value, growth, volatility, etc. metrics) to help minimise the risk of adverse selection within neighbourhoods (works as a sort of tie-breaker to make sure that when the rep election is a close call, the one with the best tilt factor gets picked).

    Example of tracker holding selection within group (non-eurozone production)


  5. Back-test the resulting tracker to get a sense for the adequacy of the number of holdings included in the tracker with the relative performance deviation that can be tolerated (too high a downside tracking error might require adding more holdings to the tracker).

    EU Climate Transition ETF simulation with fixed (quarterly) rebalancing to help determine an adequate dynamic rebalancing trigger (in this case probably ca. 2.0-2.2% rolling downside tracking error)


  6. Save tracker selection and start running as a live portfolio.


  1. Rebalance tracker holdings and weights (dynamically based on tracking error drift, or on-demand). Because each holding belongs to a specific neighbourhood, rebalancing can be dealt with conditional logic by focusing on each neighbourhood (i.e. replace holdings that no longer constitute adequate neighbourhood reps, resize a neighbourhood whose construct has materially shifted, etc.) rather than using a linear program that is certain to upset the entire portfolio construction. The list of trading tickets corresponding to any given set of constraints can thus be determined very rapidly, e.g.:

    • Capital: allocate new vs. release vs. keep invested capital constant
    • Turnover: maximum turnover or transaction cost as a % of capital invested
    • Trade: minimum (bps) trade per individual security
    • Tilt: marginal investment preference function to help minimise the risk of adverse selection


The approach satisfied our efficiency and robustness objectives:

  • The heavy lifting (covariance matrices, neighbourhoods, back-testing, etc) can be done overnight by the engine while the “live” rebalancing code that draws on it is simple enough to be performed in real-time by clients in the web-app itself (if they so wish).
  • The construction of the tracker both precludes concentration (e.g. maximum weight for the 100-holding tracker shown above of 1.5% vs. 4% for the underlying index with 500 constituents) and absorbs upsets (if a holding blows up, the slack is taken by the next fittest candidate from its neighbourhood without requiring the reshuffling of the entire portfolio).
  • With users able to rapidly run simulations directly on the app and us able to easily tune engine parameters accordingly, maximum client ownership is achieved in minimum time.

The result is a versatile and responsive tracker design feature that delivers minimum tracking error for significantly less turnover and instabilities than, say, one based on mean variance optimisation, while allowing for consistent alpha capture.

Example of EU-CTI tracker “back-casting”: total tracker return relative to EU-CTI (150 holdings, fixed quarterly rebalancing, “recession-resilience” tilt)